Examples of PacketError


Examples of org.xmpp.packet.PacketError

            else {
                IQ reply = IQ.createResultIQ(packet);
                if (packet.getChildElement() != null) {
                    reply.setChildElement(packet.getChildElement().createCopy());
                }
                reply.setError(new PacketError(PacketError.Condition.bad_request));
                workgroup.send(reply);
            }
        }
        catch (Exception e) {
            Log.error(e.getMessage(), e);
            IQ reply = IQ.createResultIQ(packet);
            if (packet.getChildElement() != null) {
                reply.setChildElement(packet.getChildElement().createCopy());
            }
            reply.setError(new PacketError(PacketError.Condition.internal_server_error));
            workgroup.send(reply);
        }
    }
View Full Code Here

Examples of org.xmpp.packet.PacketError

                // Let the workgroup process the new request
                if (!workgroup.queueRequest(request)) {
                    // It was not possible to add the request to a queue so answer that the
                    // workgroup is not accepting new join-queue requests
                    reply.setChildElement(packet.getChildElement().createCopy());
                    reply.setError(new PacketError(PacketError.Condition.service_unavailable));
                }
                interceptorManager.invokeInterceptors(workgroup.getJID().toBareJID(), packet, true,
                        true);
            }
            catch (PacketRejectedException e) {
                workgroup.rejectPacket(packet, e);
                reply = null;
            }
        }
        else if ("depart-queue".equals(queryName)) {
            // Visitor is departing queue
            try {
                Request request = UserRequest.getRequest(workgroup, sender);
                InterceptorManager interceptorManager = QueueInterceptorManager.getInstance();
                try {
                    interceptorManager.invokeInterceptors(workgroup.getJID().toBareJID(), packet,
                            true, false);
                    request.cancel(Request.CancelType.DEPART);
                    iq.add(request.getSessionElement());
                    interceptorManager.invokeInterceptors(workgroup.getJID().toBareJID(), packet,
                            true, true);
                }
                catch (PacketRejectedException e) {
                    workgroup.rejectPacket(packet, e);
                    reply = null;
                }
            }
            catch (NotFoundException e) {
                reply.setChildElement(packet.getChildElement().createCopy());
                reply.setError(new PacketError(PacketError.Condition.item_not_found));
                Log.debug("Request not found" +
                        " while departing queue:", e);
            }
        }
        else if ("offer-accept".equals(queryName)) {
            try {
                InterceptorManager interceptorManager = OfferInterceptorManager.getInstance();
                String id = iq.attributeValue("id");
                String jid = iq.attributeValue("jid");
                if (id != null || jid  != null) {
                    Request request;
                    if (id != null) {
                        // Search request by its unique ID
                        request = Request.getRequest(id);
                    }
                    else  {
                        // Old version of FP refers to requests by the user's jid. This old version
                        // implements transfers and invitations on the client and not the server side.
                        // Therefore, for each user's jid there is always a unique Request
                        request = UserRequest.getRequest(workgroup, new JID(jid));
                    }
                    Offer offer = request.getOffer();
                    if (offer != null && offer.isOutstanding()) {
                        AgentSession agentSession = agentManager.getAgentSession(packet.getFrom());
                        if (agentSession == null) {
                            reply.setChildElement(packet.getChildElement().createCopy());
                            reply.setError(new PacketError(PacketError.Condition.item_not_found));
                            Log
                                    .debug("Agent not found while accepting offer");
                        }
                        else {
                            try {
                                interceptorManager.invokeInterceptors(workgroup.getJID().toBareJID(),
                                        packet, true, false);
                                offer.accept(agentSession);
                                interceptorManager.invokeInterceptors(workgroup.getJID().toBareJID(),
                                        packet, true, true);
                            }
                            catch (PacketRejectedException e) {
                                workgroup.rejectPacket(packet, e);
                                reply = null;
                            }
                        }
                    }
                    else {
                        reply.setChildElement(packet.getChildElement().createCopy());
                        reply.setError(new PacketError(PacketError.Condition.not_acceptable));
                    }
                }
            }
            catch (NotFoundException e) {
                reply.setChildElement(packet.getChildElement().createCopy());
                reply.setError(new PacketError(PacketError.Condition.item_not_found));
                Log.debug("Request not found " +
                        "while accepting offer: ", e);
            }
            catch (AgentNotFoundException e) {
                reply.setChildElement(packet.getChildElement().createCopy());
                reply.setError(new PacketError(PacketError.Condition.item_not_found));
                Log.debug("Agent not found " +
                        "while accepting offer: ", e);
            }
        }
        else if ("offer-reject".equals(queryName)) {
            try {
                InterceptorManager interceptorManager = OfferInterceptorManager.getInstance();
                String id = iq.attributeValue("id");
                String jid = iq.attributeValue("jid");
                if (id != null || jid  != null) {
                    Request request;
                    if (id != null) {
                        // Search request by its unique ID
                        request = Request.getRequest(id);
                    }
                    else  {
                        // Old version of FP refers to requests by the user's jid. This old version
                        // implements transfers and invitations on the client and not the server side.
                        // Therefore, for each user's jid there is always a unique Request
                        request = UserRequest.getRequest(workgroup, new JID(jid));
                    }
                    Offer offer = request.getOffer();
                    if (offer != null) {
                        AgentSession agentSession = agentManager.getAgentSession(packet.getFrom());
                        if (agentSession == null) {
                            reply.setChildElement(packet.getChildElement().createCopy());
                            reply.setError(new PacketError(PacketError.Condition.item_not_found));
                            Log
                                    .debug("Agent not found while accepting offer");
                        }
                        else {
                            try {
                                interceptorManager.invokeInterceptors(workgroup.getJID().toBareJID(),
                                        packet, true, false);
                                offer.reject(agentSession);
                                interceptorManager.invokeInterceptors(workgroup.getJID().toBareJID(),
                                        packet, true, true);
                            }
                            catch (PacketRejectedException e) {
                                workgroup.rejectPacket(packet, e);
                                reply = null;
                            }
                        }
                    }
                }
            }
            catch (NotFoundException e) {
                reply.setChildElement(packet.getChildElement().createCopy());
                reply.setError(new PacketError(PacketError.Condition.item_not_found));
                Log.debug("Request not found " +
                        "while rejecting offer: ", e);
            }
            catch (AgentNotFoundException e) {
                reply.setChildElement(packet.getChildElement().createCopy());
                reply.setError(new PacketError(PacketError.Condition.item_not_found));
                Log.debug("Agent not found " +
                        "while accepting offer: ", e);
            }
        }
        else if ("invite".equals(queryName)) {
            // Get the type of inviation (i.e. entity type is being invited)
            InvitationRequest request = new InvitationRequest(packet, workgroup);
            workgroup.processInvitation(request, packet);
            reply = null;
        }
        else if ("transfer".equals(queryName)) {
            // Get the type of transfer (i.e. entity type is going to get the transfer offer)
            TransferRequest request = new TransferRequest(packet, workgroup);
            workgroup.processTransfer(request, packet);
            reply = null;
        }
        else if ("jabber:iq:private".equals(queryNamespace)) {
            // IQ private for agents global macro storage
            setIQPrivate(packet);
        }
        else if ("agent-info".equals(queryName)) {
            if (!JiveGlobals.getBooleanProperty("xmpp.live.agent.change-properties", true)) {
                // Answer that agents are not allowed to change their properties (feature disabled)
                reply = IQ.createResultIQ(packet);
                reply.setChildElement(packet.getChildElement().createCopy());
                reply.setError(new PacketError(PacketError.Condition.service_unavailable));
            }
            else {
                try {
                    AgentSession agentSession = agentManager.getAgentSession(packet.getFrom());
                    if (agentSession == null) {
                        reply = IQ.createResultIQ(packet);
                        reply.setChildElement(packet.getChildElement().createCopy());
                        reply.setError(new PacketError(PacketError.Condition.item_not_found));
                    }
                    else {
                        String allowsToChange = agentSession.getAgent().getProperties().getProperty("change-properties");
                        if (!"false".equals(allowsToChange)) {
                            // Set the new agent's info
                            agentSession.getAgent().updateAgentInfo(packet);
                        }
                        else {
                            // Answer that this agent is not allowed to change his properties
                            reply = IQ.createResultIQ(packet);
                            reply.setChildElement(packet.getChildElement().createCopy());
                            reply.setError(new PacketError(PacketError.Condition.service_unavailable));
                        }
                    }
                }
                catch (AgentNotFoundException e) {
                    reply = IQ.createResultIQ(packet);
                    reply.setChildElement(packet.getChildElement().createCopy());
                    reply.setError(new PacketError(PacketError.Condition.item_not_found));
                }
            }
        }
        else {
            // Check all Workgroup Providers for handling this SET request. If
            // none are found, send bad request error.
            for (WorkgroupProvider provider : providerManager.getWorkgroupProviders()) {
                // Handle packet?
                if (provider.handleSet(packet)) {
                    // If provider accepts responsibility, hand off packet.
                    provider.executeSet(packet, workgroup);
                    return;
                }
            }

            dropPacket(packet);
            reply.setChildElement(packet.getChildElement().createCopy());
            reply.setError(new PacketError(PacketError.Condition.bad_request));
        }

        if (reply != null) {
            workgroup.send(reply);
        }
View Full Code Here

Examples of org.xmpp.packet.PacketError

                request.updateQueueStatus(true);
            }
            catch (NotFoundException e) {
                reply = IQ.createResultIQ(packet);
                reply.setChildElement(packet.getChildElement().createCopy());
                reply.setError(new PacketError(PacketError.Condition.item_not_found));
            }
        }
        else if ("transcripts".equals(name)) {
            try {
                // Check if the sender of the packet is a connected Agent to this workgroup.
                // Otherwise return a not_authorized
                if (agentManager.getAgentSession(packet.getFrom()) == null) {
                    reply = IQ.createResultIQ(packet);
                    reply.setChildElement(packet.getChildElement().createCopy());
                    reply.setError(new PacketError(PacketError.Condition.not_authorized));
                }
                else {
                    String userID = iq.attributeValue("userID");
                    stats.getChatTranscripts(packet, userID);
                }
            }
            catch (AgentNotFoundException e) {
                reply = IQ.createResultIQ(packet);
                reply.setChildElement(packet.getChildElement().createCopy());
                reply.setError(new PacketError(PacketError.Condition.not_authorized));
            }
        }
        else if ("transcript".equals(name)) {
            try {
                // Check if the sender of the packet is a connected Agent to this workgroup.
                // Otherwise return a not_authorized
                if (agentManager.getAgentSession(packet.getFrom()) == null) {
                    reply = IQ.createResultIQ(packet);
                    reply.setChildElement(packet.getChildElement().createCopy());
                    reply.setError(new PacketError(PacketError.Condition.not_authorized));
                }
                else {
                    String sessionID = iq.attributeValue("sessionID");
                    stats.getChatTranscript(packet, sessionID);
                }
            }
            catch (AgentNotFoundException e) {
                reply = IQ.createResultIQ(packet);
                reply.setChildElement(packet.getChildElement().createCopy());
                reply.setError(new PacketError(PacketError.Condition.not_authorized));
            }
        }
        else if ("agent-status-request".equals(name)) {
            try {
                AgentSession agentSession = agentManager.getAgentSession(packet.getFrom());
                if (agentSession == null) {
                    reply = IQ.createResultIQ(packet);
                    reply.setChildElement(packet.getChildElement().createCopy());
                    reply.setError(new PacketError(PacketError.Condition.item_not_found));
                }
                else {
                    agentSession.sendAgentsInWorkgroup(packet, workgroup);
                }
            }
            catch (AgentNotFoundException e) {
                reply = IQ.createResultIQ(packet);
                reply.setChildElement(packet.getChildElement().createCopy());
                reply.setError(new PacketError(PacketError.Condition.item_not_found));
            }
        }
        else if ("agent-info".equals(name)) {
            try {
                // Send the agent's info to the session that requested its own information
                AgentSession agentSession = agentManager.getAgentSession(packet.getFrom());
                if (agentSession == null) {
                    reply = IQ.createResultIQ(packet);
                    reply.setChildElement(packet.getChildElement().createCopy());
                    reply.setError(new PacketError(PacketError.Condition.item_not_found));
                }
                else {
                    agentSession.sendAgentInfo(packet);
                }
            }
            catch (AgentNotFoundException e) {
                reply = IQ.createResultIQ(packet);
                reply.setChildElement(packet.getChildElement().createCopy());
                reply.setError(new PacketError(PacketError.Condition.item_not_found));
            }
        }
        else if ("occupants-info".equals(name)) {
            try {
                // Just check that the packet was sent by a logged agent to this workgroup
                AgentSession agentSession = agentManager.getAgentSession(packet.getFrom());
                if (agentSession == null) {
                    reply = IQ.createResultIQ(packet);
                    reply.setChildElement(packet.getChildElement().createCopy());
                    reply.setError(new PacketError(PacketError.Condition.not_authorized));
                }
                else {
                    // Send information about the occupants of the requested room
                    String roomID = iq.attributeValue("roomID");
                    workgroup.sendOccupantsInfo(packet, roomID);
                }
            }
            catch (AgentNotFoundException e) {
                reply = IQ.createResultIQ(packet);
                reply.setChildElement(packet.getChildElement().createCopy());
                reply.setError(new PacketError(PacketError.Condition.not_authorized));
            }
        }
        else if ("chat-settings".equals(name)) {
            ChatSettingsManager chatSettingsManager = ChatSettingsManager.getInstance();
            String key = iq.attributeValue("key");
            String type = iq.attributeValue("type");
            if (ModelUtil.hasLength(key)) {
                chatSettingsManager.getChatSettingByKey(packet, workgroup, key);
            }
            else if (ModelUtil.hasLength(type)) {
                try {
                    int typeInt = Integer.parseInt(type);
                    chatSettingsManager.getChatSettingsByType(packet, workgroup, typeInt);
                }
                catch (NumberFormatException e) {
                  // Bad type.
                }
            }
            else {
                chatSettingsManager.getAllChatSettings(packet, workgroup);
            }
        }
        else if ("jabber:iq:private".equals(namespace)) {
            // IQ private for agents global macro storage
            getIQPrivate(packet);
        }
        else if ("vcard-temp".equals(namespace)) {
            // Return workgroup's VCard
            getVCard(packet);
        }
        else {

            // Check all Workgroup Providers for handling this GET request. If
            // none are found, send bad request error.
            for (WorkgroupProvider provider : providerManager.getWorkgroupProviders()) {
                // Will provider handle the GET
                if (provider.handleGet(packet)) {
                    // Pass off packet
                    provider.executeGet(packet, workgroup);
                    return;
                }
            }

            dropPacket(packet);
            reply = IQ.createResultIQ(packet);
            reply.setChildElement(packet.getChildElement().createCopy());
            reply.setError(new PacketError(PacketError.Condition.bad_request));
        }
        if (reply != null) {
            workgroup.send(reply);
        }
    }
View Full Code Here

Examples of org.xmpp.packet.PacketError

            }
        }
        catch (AgentNotFoundException e) {
            IQ reply = IQ.createResultIQ(packet);
            reply.setChildElement(packet.getChildElement().createCopy());
            reply.setError(new PacketError(PacketError.Condition.not_authorized));
            workgroupManager.send(reply);
        }
    }
View Full Code Here

Examples of org.xmpp.packet.PacketError

            Log.error(
                    "There was an error retrieving the following transcript. SessionID = " +
                    sessionID + " Transcript=" + transcriptXML, ex);

            reply.setChildElement(iq.getChildElement().createCopy());
            reply.setError(new PacketError(PacketError.Condition.item_not_found));
            workgroup.send(reply);
        }
    }
View Full Code Here

Examples of org.xmpp.packet.PacketError

        final Element childElement = iq.getChildElement();
        if (childElement == null) {
            replyPacket = IQ.createResultIQ(iq);
            replyPacket
                    .setError(new PacketError(
                            Condition.bad_request,
                            org.xmpp.packet.PacketError.Type.modify,
                            "IQ stanzas of type 'get' and 'set' MUST contain one and only one child element (RFC 3920 section 9.2.3)."));
            return replyPacket;
        }
View Full Code Here

Examples of org.xmpp.packet.PacketError

                    sendWorkgroups(iq, agent);
                }
                catch (AgentNotFoundException e) {
                    IQ reply = IQ.createResultIQ(iq);
                    reply.setChildElement(iq.getChildElement().createCopy());
                    reply.setError(new PacketError(PacketError.Condition.item_not_found));
                    send(reply);
                }
            }
            catch (AgentNotFoundException e) {
                IQ reply = IQ.createResultIQ(iq);
                reply.setChildElement(iq.getChildElement().createCopy());
                reply.setError(new PacketError(PacketError.Condition.not_authorized));
                send(reply);
            }
        }
        else if ("transcript-search".equals(name)) {
            iqChatSearchHandler.handleIQ(iq);
View Full Code Here

Examples of org.xmpp.packet.PacketError

                } else {
                    Message failureMessage = new Message();
                    failureMessage.setTo( packet.getFrom() );
                    failureMessage.setFrom( packet.getTo() );

                    PacketError error = new PacketError(PacketError.Condition.not_acceptable,
                            PacketError.Type.cancel,
                            "Anti-Spim Device: Failed, but you can keep trying.");
                   
                    failureMessage.setError(error);
                   
View Full Code Here

Examples of org.xmpp.packet.PacketError

            String transferPostUrl = "http://"+httpSession.getServerName()+"/fileupload.jsp";

            IQ httpInfoIQ = new IQ(IQ.Type.set);
            httpInfoIQ.setTo(initiator);
            // FIXME this seems like gross misuse of error... make a custom packet extension.
            httpInfoIQ.setError(new PacketError(PacketError.Condition.redirect, PacketError.Type.modify, transferPostUrl) );
           
            throw new FileTransferRejectedException("HTTP client resuming via upload servlet");
           
           
View Full Code Here

Examples of org.xmpp.packet.PacketError

      // Look for error condition and invoke the relevant callback.
      Element element = packet.getElement().element("error");
      if (element != null) {
        LOG.fine("Invoking error callback for: " + packet.getID());
        call.callback.error(toFederationError(new PacketError(element)));
      } else {
        if (call.responseType.equals(packet.getClass())) {
          LOG.fine("Invoking normal callback for: " + packet.getID());
          call.callback.run(packet);
        } else {
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.