Author: skitching
Date: Sun Feb 13 03:16:08 2005
New Revision: 153618

URL: http://svn.apache.org/viewcvs?view=rev&rev=153618
Log:
Invoke new Context.checkForProblems method at end of a successful parse,
just in case actions have made errors. This will make any bugs in actions
much easier to detect and solve.

Modified:
    
jakarta/commons/proper/digester/branches/digester2/src/java/org/apache/commons/digester2/SAXHandler.java

Modified: 
jakarta/commons/proper/digester/branches/digester2/src/java/org/apache/commons/digester2/SAXHandler.java
URL: 
http://svn.apache.org/viewcvs/jakarta/commons/proper/digester/branches/digester2/src/java/org/apache/commons/digester2/SAXHandler.java?view=diff&r1=153617&r2=153618
==============================================================================
--- 
jakarta/commons/proper/digester/branches/digester2/src/java/org/apache/commons/digester2/SAXHandler.java
 (original)
+++ 
jakarta/commons/proper/digester/branches/digester2/src/java/org/apache/commons/digester2/SAXHandler.java
 Sun Feb 13 03:16:08 2005
@@ -865,13 +865,24 @@
             // And finally for the RuleManager too
             ruleManager.finishParse(context);
         } catch(DigestionException ex) {
-            log.error("finishParse threw exception", ex);
+            log.error("RuleManager.finishParse threw exception", ex);
             throw new NestedSAXException(ex);
         }
 
         // store the root object so the user can access it
         root = context.getRoot();
-        
+
+        // This method verifies that no Actions have misbehaved, leaving the
+        // stacks in a bad state or anything. Of course this is called only
+        // after a parse has successfully completed. It's really a debug method
+        // but as it is pretty quick to check things we leave it in at runtime.
+        try {
+            context.checkForProblems();
+        } catch(ParseException ex) {
+            log.error("Context.checkForProblems threw exception", ex);
+            throw new NestedSAXException(ex);
+        }
+
         // And now we don't need the context any more, so allow it to be
         // reclaimed. Note that in the case where a parse failed, this
         // method is never called, so the user is responsible for calling



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to