Author: ngn
Date: Wed May  5 10:09:27 2010
New Revision: 941229

URL: http://svn.apache.org/viewvc?rev=941229&view=rev
Log:
Fix NPE when characters sent outside of stanza
Allow XML declaration for restarting XML streams

Modified:
    
mina/vysper/trunk/nbxml/src/main/java/org/apache/vysper/xml/decoder/XMPPContentHandler.java
    
mina/vysper/trunk/nbxml/src/main/java/org/apache/vysper/xml/decoder/XMPPDecoder.java

Modified: 
mina/vysper/trunk/nbxml/src/main/java/org/apache/vysper/xml/decoder/XMPPContentHandler.java
URL: 
http://svn.apache.org/viewvc/mina/vysper/trunk/nbxml/src/main/java/org/apache/vysper/xml/decoder/XMPPContentHandler.java?rev=941229&r1=941228&r2=941229&view=diff
==============================================================================
--- 
mina/vysper/trunk/nbxml/src/main/java/org/apache/vysper/xml/decoder/XMPPContentHandler.java
 (original)
+++ 
mina/vysper/trunk/nbxml/src/main/java/org/apache/vysper/xml/decoder/XMPPContentHandler.java
 Wed May  5 10:09:27 2010
@@ -76,7 +76,9 @@ public class XMPPContentHandler implemen
        public void characters(char[] ch, int start, int length)
                        throws SAXException {
                // TODO handle start and length
-               builder.addText(new String(ch));
+               if(builder != null) {
+                       builder.addText(new String(ch));
+               }
                
        }
 
@@ -90,7 +92,7 @@ public class XMPPContentHandler implemen
                        // complete stanza, emit
                        emitStanza();
                } else if(depth == 0) {
-                       // end stanza:stanza element
+                       // end stream:stream element
                        // TODO handle
                } else {
                        builder.endInnerElement();

Modified: 
mina/vysper/trunk/nbxml/src/main/java/org/apache/vysper/xml/decoder/XMPPDecoder.java
URL: 
http://svn.apache.org/viewvc/mina/vysper/trunk/nbxml/src/main/java/org/apache/vysper/xml/decoder/XMPPDecoder.java?rev=941229&r1=941228&r2=941229&view=diff
==============================================================================
--- 
mina/vysper/trunk/nbxml/src/main/java/org/apache/vysper/xml/decoder/XMPPDecoder.java
 (original)
+++ 
mina/vysper/trunk/nbxml/src/main/java/org/apache/vysper/xml/decoder/XMPPDecoder.java
 Wed May  5 10:09:27 2010
@@ -36,6 +36,7 @@ import org.apache.vysper.xml.sax.impl.De
  */
 public class XMPPDecoder extends CumulativeProtocolDecoder {
 
+       private static final String XML_DECL = "<?xml";
     private static final String STREAM_STREAM = "<stream:stream";
 
        public static final String SESSION_ATTRIBUTE_NAME = "xmppParser";
@@ -80,7 +81,7 @@ public class XMPPDecoder extends Cumulat
        String peek = in.getString(14, CharsetUtil.UTF8_DECODER);
        in.reset();
 
-       if (reader == null || STREAM_STREAM.equals(peek)) {
+       if (reader == null || STREAM_STREAM.equals(peek) || (peek != null && 
peek.startsWith(XML_DECL))) {
                reader = new DefaultNonBlockingXMLReader();
                
                // we need to check the jabber:client/jabber:server NS 
declarations


Reply via email to