Quantcast
Channel: Ignite Realtime: Message List
Viewing all articles
Browse latest Browse all 11413

Re: message body is null, raw received packets has the data

$
0
0

This is the method in PacketParserUtils.java

 

public static PacketExtension parsePacketExtension(String elementName, String namespace, XmlPullParser parser)

            throws Exception

    {

        // See if a provider is registered to handle the extension.

        Object provider = ProviderManager.getInstance().getExtensionProvider(elementName, namespace);

        if (provider != null) {

            if (provider instanceof PacketExtensionProvider) {

                return ((PacketExtensionProvider)provider).parseExtension(parser);

            }

            else if (provider instanceof Class) {

                return (PacketExtension)parseWithIntrospection(

                        elementName, (Class<?>)provider, parser);

            }

        }

        // No providers registered, so use a default extension.

        DefaultPacketExtension extension = new DefaultPacketExtension(elementName, namespace);

        boolean done = false;

        while (!done) {

            int eventType = parser.next();

            if (eventType == XmlPullParser.START_TAG) {

                String name = parser.getName();

                // If an empty element, set the value with the empty string.

                if (parser.isEmptyElementTag()) {

                    extension.setValue(name,"");

                }

                // Otherwise, get the the element text.

                else {

                    eventType = parser.next();

                    if (eventType == XmlPullParser.TEXT) {

                        String value = parser.getText();

                        extension.setValue(name, value);

                    }

                }

            }

            else if (eventType == XmlPullParser.END_TAG) {

                if (parser.getName().equals(elementName)) {

                    done = true;

                }

            }

        }

        return extension;

    }

 

parser.next() is invoked twice, due to which you will skip reading the text


Viewing all articles
Browse latest Browse all 11413

Trending Articles