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);
}
|