Author: ngn
Date: Tue May  4 18:53:32 2010
New Revision: 940999

URL: http://svn.apache.org/viewvc?rev=940999&view=rev
Log:
Fix bug where whitespace was not allowed after XML declaration

Modified:
    
mina/vysper/trunk/nbxml/src/main/java/org/apache/vysper/xml/sax/impl/XMLParser.java
    
mina/vysper/trunk/nbxml/src/test/java/org/apache/vysper/xml/sax/impl/AbstractAsyncXMLReaderTestCase.java
    
mina/vysper/trunk/nbxml/src/test/java/org/apache/vysper/xml/sax/impl/ParseXmlDeclarationTestCase.java

Modified: 
mina/vysper/trunk/nbxml/src/main/java/org/apache/vysper/xml/sax/impl/XMLParser.java
URL: 
http://svn.apache.org/viewvc/mina/vysper/trunk/nbxml/src/main/java/org/apache/vysper/xml/sax/impl/XMLParser.java?rev=940999&r1=940998&r2=940999&view=diff
==============================================================================
--- 
mina/vysper/trunk/nbxml/src/main/java/org/apache/vysper/xml/sax/impl/XMLParser.java
 (original)
+++ 
mina/vysper/trunk/nbxml/src/main/java/org/apache/vysper/xml/sax/impl/XMLParser.java
 Tue May  4 18:53:32 2010
@@ -304,10 +304,13 @@ public class XMLParser implements TokenL
                        String unescaped = unescape(s);
                        log.trace("Parser emitting characters \"{}\"", 
unescaped);
                        contentHandler.characters(unescaped.toCharArray(), 0, 
unescaped.length());
-               } else {
+               } else if (s.trim().length() > 0) {
                        // must start document, even that document is not 
wellformed
                        startDocument();
                        fatalError("Text only allowed in element");
+               } else {
+                       // ignorable whitespace
+                       startDocument();
                }
        }
        

Modified: 
mina/vysper/trunk/nbxml/src/test/java/org/apache/vysper/xml/sax/impl/AbstractAsyncXMLReaderTestCase.java
URL: 
http://svn.apache.org/viewvc/mina/vysper/trunk/nbxml/src/test/java/org/apache/vysper/xml/sax/impl/AbstractAsyncXMLReaderTestCase.java?rev=940999&r1=940998&r2=940999&view=diff
==============================================================================
--- 
mina/vysper/trunk/nbxml/src/test/java/org/apache/vysper/xml/sax/impl/AbstractAsyncXMLReaderTestCase.java
 (original)
+++ 
mina/vysper/trunk/nbxml/src/test/java/org/apache/vysper/xml/sax/impl/AbstractAsyncXMLReaderTestCase.java
 Tue May  4 18:53:32 2010
@@ -62,6 +62,7 @@ public abstract class AbstractAsyncXMLRe
        
        protected void assertStartElement(String expectedUri, String 
expectedLocalName, String expectedQName, Attributes expectedAttributes, 
                        TestEvent actual) {
+               printIfFatal(actual);
                if(!(actual instanceof StartElementEvent)) fail("Event must be 
StartElementEvent but was " + actual.getClass());
                StartElementEvent startElementEvent = (StartElementEvent) 
actual;
                assertEquals("URI", expectedUri, startElementEvent.getURI());
@@ -69,6 +70,13 @@ public abstract class AbstractAsyncXMLRe
                assertEquals("qName", expectedQName, 
startElementEvent.getQName());
                assertAttributes(expectedAttributes, 
startElementEvent.getAtts());
        }
+       
+       private void printIfFatal(TestEvent actual) {
+               if(actual instanceof FatalErrorEvent) {
+                       
((FatalErrorEvent)actual).getException().printStackTrace();
+               }
+               
+       }
 
        protected void assertAttributes(Attributes expectedAttrs, Attributes 
actualAttrs) {
                assertEquals("Attribute count", expectedAttrs.getLength(), 
actualAttrs.getLength());
@@ -83,6 +91,7 @@ public abstract class AbstractAsyncXMLRe
        
        protected void assertEndElement(String expectedUri, String 
expectedLocalName, String expectedQName, 
                        TestEvent actual) {
+               printIfFatal(actual);
                if(!(actual instanceof EndElementEvent)) fail("Event must be 
EndElementEvent");
                EndElementEvent endElementEvent = (EndElementEvent) actual;
                assertEquals("URI", expectedUri, endElementEvent.getURI());
@@ -91,14 +100,17 @@ public abstract class AbstractAsyncXMLRe
        }
 
        protected void assertStartDocument(TestEvent actual) {
+               printIfFatal(actual);
                if(!(actual instanceof StartDocumentEvent)) fail("Event must be 
StartDocumentEvent but is " + actual.getClass());
        }
 
        protected void assertEndDocument(TestEvent actual) {
+               printIfFatal(actual);
                if(!(actual instanceof EndDocumentEvent)) fail("Event must be 
EndDocumentEvent");
        }
 
        protected void assertText(String expected, TestEvent actual) {
+               printIfFatal(actual);
                if(!(actual instanceof CharacterEvent)) fail("Event must be 
CharacterEvent");
                
                assertEquals(expected, 
((CharacterEvent)actual).getCharacters());

Modified: 
mina/vysper/trunk/nbxml/src/test/java/org/apache/vysper/xml/sax/impl/ParseXmlDeclarationTestCase.java
URL: 
http://svn.apache.org/viewvc/mina/vysper/trunk/nbxml/src/test/java/org/apache/vysper/xml/sax/impl/ParseXmlDeclarationTestCase.java?rev=940999&r1=940998&r2=940999&view=diff
==============================================================================
--- 
mina/vysper/trunk/nbxml/src/test/java/org/apache/vysper/xml/sax/impl/ParseXmlDeclarationTestCase.java
 (original)
+++ 
mina/vysper/trunk/nbxml/src/test/java/org/apache/vysper/xml/sax/impl/ParseXmlDeclarationTestCase.java
 Tue May  4 18:53:32 2010
@@ -30,7 +30,7 @@ import org.apache.vysper.xml.sax.impl.Te
 public class ParseXmlDeclarationTestCase extends 
AbstractAsyncXMLReaderTestCase {
 
        public void testEmptyElement() throws Exception {
-               Iterator<TestEvent> events = parse("<?xml 
version=\"1.0\"?><root />").iterator();
+               Iterator<TestEvent> events = parse("<?xml version=\"1.0\"?>\n 
<root />").iterator();
 
                assertStartDocument(events.next());
                // no event for the declaration


Reply via email to