You are viewing a plain text version of this content. The canonical link for it is here.
Posted to svn@forrest.apache.org by th...@apache.org on 2009/10/13 12:37:25 UTC

svn commit: r824680 - /forrest/branches/dispatcher_rewrite/plugins/org.apache.forrest.plugin.internal.dispatcher/src/java/org/apache/forrest/dispatcher/transformation/DispatcherTransformer.java

Author: thorsten
Date: Tue Oct 13 10:37:24 2009
New Revision: 824680

URL: http://svn.apache.org/viewvc?rev=824680&view=rev
Log:
Enhancing error reporting.
When the result of the contract is returning an empty document the dispatcher reported a "com.ctc.wstx.exc.WstxEOFException: Unexpected EOF in prolog". Now we catch this exception and reporting when this normally happens (no forrest:container / forrest:part). 

Modified:
    forrest/branches/dispatcher_rewrite/plugins/org.apache.forrest.plugin.internal.dispatcher/src/java/org/apache/forrest/dispatcher/transformation/DispatcherTransformer.java

Modified: forrest/branches/dispatcher_rewrite/plugins/org.apache.forrest.plugin.internal.dispatcher/src/java/org/apache/forrest/dispatcher/transformation/DispatcherTransformer.java
URL: http://svn.apache.org/viewvc/forrest/branches/dispatcher_rewrite/plugins/org.apache.forrest.plugin.internal.dispatcher/src/java/org/apache/forrest/dispatcher/transformation/DispatcherTransformer.java?rev=824680&r1=824679&r2=824680&view=diff
==============================================================================
--- forrest/branches/dispatcher_rewrite/plugins/org.apache.forrest.plugin.internal.dispatcher/src/java/org/apache/forrest/dispatcher/transformation/DispatcherTransformer.java (original)
+++ forrest/branches/dispatcher_rewrite/plugins/org.apache.forrest.plugin.internal.dispatcher/src/java/org/apache/forrest/dispatcher/transformation/DispatcherTransformer.java Tue Oct 13 10:37:24 2009
@@ -47,6 +47,7 @@
 import org.apache.axiom.om.OMAttribute;
 import org.apache.axiom.om.OMDocument;
 import org.apache.axiom.om.OMElement;
+import org.apache.axiom.om.OMException;
 import org.apache.axiom.om.OMFactory;
 import org.apache.axiom.om.OMNamespace;
 import org.apache.axiom.om.OMNode;
@@ -556,7 +557,18 @@
     // close data stream
     StreamHelper.closeStream(dataStream);
     // add the result of the contract to the overall result set
-    processContractResult(resultStream, pathNode);
+    try {
+      processContractResult(resultStream, pathNode);
+    } catch (OMException e) {
+      String error = DispatcherException.ERROR_500 + "\n"
+      + "component: ContractBean" + "\n"
+      + "message: Could not setup contractBean \"" + contract.getName() + "\". It seems that the result of the contract " +
+      		"is returning an empty document. This normally happens when no forrest:content container is returned or" +
+      		" the container does not contains any forrest:part.\n\n"
+      + "dispatcherErrorStack:\n" + e;
+  getLogger().error(error);
+  throw new ContractException(error);
+    }
     // close the result Stream
     StreamHelper.closeStream(resultStream);
   }