You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mina.apache.org by ng...@apache.org on 2010/05/05 12:09:27 UTC
svn commit: r941229 - in
/mina/vysper/trunk/nbxml/src/main/java/org/apache/vysper/xml/decoder:
XMPPContentHandler.java XMPPDecoder.java
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