Parsing exception when receiving ad-hoc command answer

Issue #116 invalid
jjoannes created an issue

Hi Christian,

Using ad-hoc commands to get some information from my XMPP server I faced an XML parsing issue. The command which is sent is:

11:52:34.225 [WebSocket send thread] DEBUG c.a.c.c.babbler.XmppTrafficLogger - OUT: <iq xmlns="jabber:client" id="8f849dde-f4f1-46db-82c7-34e13988f1ab" to="sess-man@dc.ale-international.com" type="set"><command xmlns="http://jabber.org/protocol/commands" action="execute" node="http://jabber.org/protocol/admin#get-active-users-num" sessionid="get-active-users-num">
<x xmlns="jabber:x:data" type="submit">
<field type="hidden" var="FORM_TYPE"><value>http://jabber.org/protocol/admin</value></field>
<field type="list-single" var="domainjid"><value>dc.ale-international.com</value></field></x></command></iq>

The answer from the server is:

<iq to="admin@dc.ale-international.com/2145852718-tigase-116151" type="result" from="sess-man@dc.ale-international.com" id="669d3b2b-99eb-4ecd-b42c-3285c23fc423"><command status="completed" xmlns="http://jabber.org/protocol/commands" node="http://jabber.org/protocol/admin#get-active-users-num"><x xmlns="jabber:x:data" type="result"><field var="activeusersnum" type="fixed" label="The number of active users"><value>1</value></field></x></command></iq>

This answer raises an exception:

12:08:07.068 [ tyrus-jdk-client-3] ERROR c.a.c.client.babbler.LoginExecutor - Session error
javax.xml.bind.UnmarshalException: élément inattendu (URI : "", local : "iq"). Les éléments attendus sont <{urn:xmpp:sm:3}a>,<{urn:ietf:params:xml:ns:xmpp-sasl}abort>,<
[snip...]
    at com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallingContext.handleEvent(UnmarshallingContext.java:726) ~[na:1.8.0_121]
    at com.sun.xml.internal.bind.v2.runtime.unmarshaller.Loader.reportError(Loader.java:247) ~[na:1.8.0_121]
    at com.sun.xml.internal.bind.v2.runtime.unmarshaller.Loader.reportError(Loader.java:242) ~[na:1.8.0_121]
    at com.sun.xml.internal.bind.v2.runtime.unmarshaller.Loader.reportUnexpectedChildElement(Loader.java:109) ~[na:1.8.0_121]
    at com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallingContext$DefaultRootLoader.childElement(UnmarshallingContext.java:1131) ~[na:1.8.0_121]
    at com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallingContext._startElement(UnmarshallingContext.java:556) ~[na:1.8.0_121]
    at com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallingContext.startElement(UnmarshallingContext.java:538) ~[na:1.8.0_121]
    at com.sun.xml.internal.bind.v2.runtime.unmarshaller.SAXConnector.startElement(SAXConnector.java:153) ~[na:1.8.0_121]
    at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(AbstractSAXParser.java:509) ~[na:1.8.0_121]
    at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.java:374) ~[na:1.8.0_121]
    at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl$NSContentDriver.scanRootElementHook(XMLNSDocumentScannerImpl.java:613) ~[na:1.8.0_121]
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:3132) ~[na:1.8.0_121]
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$PrologDriver.next(XMLDocumentScannerImpl.java:852) ~[na:1.8.0_121]
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:602) ~[na:1.8.0_121]
    at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:112) ~[na:1.8.0_121]
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:505) ~[na:1.8.0_121]
    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:841) ~[na:1.8.0_121]
    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:770) ~[na:1.8.0_121]
    at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141) ~[na:1.8.0_121]
    at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1213) ~[na:1.8.0_121]
    at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:643) ~[na:1.8.0_121]
    at com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:243) ~[na:1.8.0_121]
    at com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:214) ~[na:1.8.0_121]
    at javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(AbstractUnmarshallerImpl.java:157) ~[na:1.8.0_121]
    at javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(AbstractUnmarshallerImpl.java:214) ~[na:1.8.0_121]
    at rocks.xmpp.websocket.WebSocketConnection$2.lambda$onOpen$3(WebSocketConnection.java:337) ~[xmpp-websocket-0.7.5-SNAPSHOT.jar:na]
    at org.glassfish.tyrus.core.TyrusSession.notifyMessageHandlers(TyrusSession.java:576) ~[tyrus-core-1.12.jar:na]

The (approximate) English translation for [élément inattendu (URI : "", local : "iq"). Les éléments attendus sont] is [unexpected item (URI : "", local : "iq"). The expected items are].

Jacques

Comments (3)

  1. Log in to comment