Author: scheu
Date: Thu Jul 24 11:36:45 2008
New Revision: 679482

URL: http://svn.apache.org/viewvc?rev=679482&view=rev
Log:
Quick change to add more trace

Modified:
    
webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/om/impl/builder/StAXOMBuilder.java

Modified: 
webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/om/impl/builder/StAXOMBuilder.java
URL: 
http://svn.apache.org/viewvc/webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/om/impl/builder/StAXOMBuilder.java?rev=679482&r1=679481&r2=679482&view=diff
==============================================================================
--- 
webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/om/impl/builder/StAXOMBuilder.java
 (original)
+++ 
webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/om/impl/builder/StAXOMBuilder.java
 Thu Jul 24 11:36:45 2008
@@ -162,12 +162,21 @@
             if (!cache) {
                 return token;
             }
+            // Now log the current state of the parser
+            if (doTrace) {
+                logParserState();
+            }
+            
+            int currentParserToken = parser.getEventType();
+            if (currentParserToken != token) {
+                throw new OMException("The current token " + token + 
+                                     " does not match the current event " +
+                                     "reported by the parser token.  The 
parser did not update its state correctly.  " +
+                                     "The parser is " + parser);
+            }
+           
             switch (token) {
                 case XMLStreamConstants.START_ELEMENT:
-                    if (doTrace) {
-                        log.trace(
-                                "START_ELEMENT: " + parser.getName() + ":" + 
parser.getLocalName());
-                    }
                     elementLevel++;
                     lastNode = createNextOMElement();
                     break;
@@ -177,66 +186,34 @@
                     document.setXMLVersion(parser.getVersion());
                     document.setCharsetEncoding(parser.getEncoding());
                     document.setStandalone(parser.isStandalone() ? "yes" : 
"no");
-                    if (doTrace) {
-                        log.trace("START_DOCUMENT: ");
-                    }
                     break;
                 case XMLStreamConstants.CHARACTERS:
-                    if (doTrace) {
-                        log.trace("CHARACTERS: [" + parser.getText() + "]");
-                    }
                     lastNode = createOMText(XMLStreamConstants.CHARACTERS);
                     break;
                 case XMLStreamConstants.CDATA:
-                    if (doTrace) {
-                        log.trace("CDATA: [" + parser.getText() + "]");
-                    }
                     lastNode = createOMText(XMLStreamConstants.CDATA);
                     break;
                 case XMLStreamConstants.END_ELEMENT:
-                    if (doTrace) {
-                        log.trace("END_ELEMENT: " + parser.getName() + ":" + 
parser.getLocalName());
-                    }
                     endElement();
                     elementLevel--;
                     break;
                 case XMLStreamConstants.END_DOCUMENT:
-                    if (doTrace) {
-                        log.trace("END_DOCUMENT: ");
-                    }
                     done = true;
                     ((OMContainerEx) this.document).setComplete(true);
                     break;
                 case XMLStreamConstants.SPACE:
-                    if (doTrace) {
-                        log.trace("SPACE: [" + parser.getText() + "]");
-                    }
                     lastNode = createOMText(XMLStreamConstants.SPACE);
                     break;
                 case XMLStreamConstants.COMMENT:
-                    if (doTrace) {
-                        log.trace("COMMENT: [" + parser.getText() + "]");
-                    }
                     createComment();
                     break;
                 case XMLStreamConstants.DTD:
-                    if (doTrace) {
-                        log.trace("DTD: [" + parser.getText() + "]");
-                    }
                     createDTD();
                     break;
                 case XMLStreamConstants.PROCESSING_INSTRUCTION:
-                    if (doTrace) {
-                        log.trace("PROCESSING_INSTRUCTION: [" + 
parser.getPITarget() + "][" +
-                                parser.getPIData() + "]");
-                    }
                     createPI();
                     break;
                 case XMLStreamConstants.ENTITY_REFERENCE:
-                    if (doTrace) {
-                        log.trace("ENTITY_REFERENCE: " + parser.getLocalName() 
+ "[" +
-                                parser.getText() + "]");
-                    }
                     lastNode = 
createOMText(XMLStreamConstants.ENTITY_REFERENCE);
                     break;
                 default :
@@ -276,8 +253,14 @@
     }
     
     protected OMNode createWithCustomBuilder(CustomBuilder customBuilder, 
OMFactory factory) {
+        
         String namespace = parser.getNamespaceURI();
         String localPart = parser.getLocalName();
+        
+        if (log.isDebugEnabled()) {
+            log.debug("Invoking CustomBuilder, " + customBuilder.toString() + 
+                      ", to the OMNode for {" + namespace + "}" + localPart);
+        }
         OMContainer parent = null;
         if (lastNode != null) {
             if (lastNode.isComplete()) {
@@ -288,8 +271,79 @@
         } else {
             parent = document;
         }
-        return customBuilder.create(namespace, localPart, parent, parser, 
factory);
-        
+        OMNode node = customBuilder.create(namespace, localPart, parent, 
parser, factory);
+        if (log.isDebugEnabled()) {
+            if (node != null) {
+                log.debug("The CustomBuilder, " + customBuilder.toString() + 
+                          "successfully constructed the OMNode for {" + 
namespace + "}" + localPart);
+            } else {
+                log.debug("The CustomBuilder, " + customBuilder.toString() + 
+                          " did not construct an OMNode for {" + namespace + 
"}" + localPart +
+                          ". The OMNode will be constructed using the 
installed stax om builder");
+            }
+            log.debug("The current state of the parser is: ");
+            logParserState();
+        }
+        return node;
+    }
+    
+    /**
+     * Dump the current event of the parser.
+     */
+    protected void logParserState() {
+        if (doTrace) {
+            int currentEvent = parser.getEventType();
+            
+            switch (currentEvent) {
+            case XMLStreamConstants.START_ELEMENT:
+                log.trace("START_ELEMENT: ");
+                log.trace("  QName: " + parser.getName());
+                break;
+            case XMLStreamConstants.START_DOCUMENT:
+                log.trace("START_DOCUMENT: ");
+                break;
+            case XMLStreamConstants.CHARACTERS:
+                log.trace("CHARACTERS: ");
+                log.trace(   "[" + parser.getText() + "]");
+                break;
+            case XMLStreamConstants.CDATA:
+                log.trace("CDATA: ");
+                log.trace(   "[" + parser.getText() + "]");
+                break;
+            case XMLStreamConstants.END_ELEMENT:
+                log.trace("END_ELEMENT: ");
+                log.trace("  QName: " + parser.getName());
+                break;
+            case XMLStreamConstants.END_DOCUMENT:
+                log.trace("END_DOCUMENT: ");
+                break;
+            case XMLStreamConstants.SPACE:
+                log.trace("SPACE: ");
+                log.trace(   "[" + parser.getText() + "]");
+                break;
+            case XMLStreamConstants.COMMENT:
+                log.trace("COMMENT: ");
+                log.trace(   "[" + parser.getText() + "]");
+                break;
+            case XMLStreamConstants.DTD:
+                log.trace("DTD: ");
+                log.trace(   "[" + parser.getText() + "]");
+                break;
+            case XMLStreamConstants.PROCESSING_INSTRUCTION:
+                log.trace("PROCESSING_INSTRUCTION: ");
+                log.trace("   [" + parser.getPITarget() + "][" +
+                            parser.getPIData() + "]");
+                break;
+            case XMLStreamConstants.ENTITY_REFERENCE:
+                log.trace("ENTITY_REFERENCE: ");
+                log.trace("    " + parser.getLocalName() + "[" +
+                            parser.getText() + "]");
+                break;
+            default :
+                log.trace("UNKNOWN_STATE: " + currentEvent);
+            
+            }
+        }
     }
 
     /**
@@ -499,6 +553,10 @@
      */
     private int parserNext() throws XMLStreamException {
         if (lookAheadToken >= 0) {
+            if (log.isDebugEnabled()) {
+                log.debug("Using lookahead start token");
+                log.debug("  QName is " + parser.getName());
+            }
             int token = lookAheadToken;
             lookAheadToken = -1; // Reset
             return token;


Reply via email to