sboag 00/10/06 00:50:14
Modified: java/src/org/apache/xalan/xslt Process.java
Log:
Much improved error reporting, catch clauses consolodated.
Revision Changes Path
1.8 +65 -115 xml-xalan/java/src/org/apache/xalan/xslt/Process.java
Index: Process.java
===================================================================
RCS file: /home/cvs/xml-xalan/java/src/org/apache/xalan/xslt/Process.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- Process.java 2000/10/03 21:41:57 1.7
+++ Process.java 2000/10/06 07:50:12 1.8
@@ -505,135 +505,85 @@
if(doDiag)
diagnosticsWriter.println("\n\n========\nTransform of
"+inFileName+" via "+xslFileName+" took "+millisecondsDuration+" ms");
}
- catch(SAXParseException spe)
+ catch(Throwable throwable)
{
-
diagnosticsWriter.println(XSLMessages.createMessage(XSLTErrorResources.ER_XSLT_ERROR,
null)+": " + spe.getMessage());
- Exception containedException = spe.getException();
- if(null != containedException)
+ while(throwable instanceof
org.apache.xalan.utils.WrappedRuntimeException)
+ throwable =
((org.apache.xalan.utils.WrappedRuntimeException)throwable).getException();
+
+ if((throwable instanceof NullPointerException) ||
+ (throwable instanceof ClassCastException)
+ )
+ doStackDumpOnError = true;
+
+ if(throwable instanceof SAXException)
{
+ SAXException spe = (SAXException)throwable;
if(doStackDumpOnError)
{
- containedException = spe;
- while(containedException instanceof SAXException)
+ Exception containedException = spe.getException();
+ if(null != containedException)
{
- containedException.printStackTrace(dumpWriter);
- containedException =
((SAXException)containedException).getException();
- dumpWriter.println("====================");
+ containedException = spe;
+ while(containedException instanceof SAXException)
+ {
+ containedException.printStackTrace(dumpWriter);
+ containedException =
((SAXException)containedException).getException();
+ dumpWriter.println("====================");
+ }
+ if(null != containedException)
+ {
+ containedException.printStackTrace(dumpWriter);
+ dumpWriter.println("====================");
+ }
+ // else
+ // System.out.println("Error! "+se.getMessage());
+
diagnosticsWriter.println(XSLMessages.createMessage(XSLTErrorResources.ER_NOT_SUCCESSFUL,
null)); //"XSL Process was not successful.");
}
- if(null != containedException)
+ else
{
- containedException.printStackTrace(dumpWriter);
- dumpWriter.println("====================");
- }
+ spe.printStackTrace(dumpWriter);
+ }
}
- // else
- // System.out.println("Error! "+se.getMessage());
-
diagnosticsWriter.println(XSLMessages.createMessage(XSLTErrorResources.ER_NOT_SUCCESSFUL,
null)); //"XSL Process was not successful.");
- }
- else
+ else
+ {
+ Exception e = spe;
+ while(null != e)
+ {
+ if(null != e.getMessage())
+ {
+
diagnosticsWriter.println(XSLMessages.createMessage(XSLTErrorResources.ER_XSLT_ERROR,
null)
+ +" ("+e.getClass().getName()+"): "
+ + e.getMessage());
+ }
+ if(e instanceof SAXParseException)
+ {
+ SAXParseException spe2 = (SAXParseException)e;
+ if(null != spe2.getSystemId())
+ diagnosticsWriter.println(" ID: "+spe2.getSystemId()
+ +" Line #"+spe2.getLineNumber()
+ +" Column
#"+spe2.getColumnNumber());
+ e = spe2.getException();
+ if(e instanceof
org.apache.xalan.utils.WrappedRuntimeException)
+ e =
((org.apache.xalan.utils.WrappedRuntimeException)e).getException();
+ }
+ else
+ e = null;
+ }
+ }
+ }
+ else
{
+
diagnosticsWriter.println(XSLMessages.createMessage(XSLTErrorResources.ER_XSLT_ERROR,
null)
+ +" ("+throwable.getClass().getName()+"):
"
+ + throwable.getMessage());
if(doStackDumpOnError)
- spe.printStackTrace(dumpWriter);
- // else
- // System.out.println("Error! "+se.getMessage());
-
diagnosticsWriter.println(XSLMessages.createMessage(XSLTErrorResources.ER_NOT_SUCCESSFUL,
null) ); //"XSL Process was not successful.");
+ throwable.printStackTrace(dumpWriter);
}
- diagnosticsWriter.println(" ID: "+spe.getSystemId()
- +" Line #"+spe.getLineNumber()
- +" Column #"+spe.getColumnNumber());
- System.exit(-1);
- }
- catch(TooManyListenersException tmle)
- {
-
diagnosticsWriter.println(XSLMessages.createMessage(XSLTErrorResources.ER_XSLT_ERROR,
null)+": " + tmle.getMessage());
- if(doStackDumpOnError)
- tmle.printStackTrace(dumpWriter);
- // else
- // System.out.println("Error! "+se.getMessage());
diagnosticsWriter.println(XSLMessages.createMessage(XSLTErrorResources.ER_NOT_SUCCESSFUL,
null)); //"XSL Process was not successful.");
- System.exit(-1);
- }
-
- catch(SAXException se)
- {
-
diagnosticsWriter.println(XSLMessages.createMessage(XSLTErrorResources.ER_XSLT_ERROR,
null)+": " + se.getMessage());
- Exception containedException = se.getException();
- if(null != containedException)
- {
- if(doStackDumpOnError)
- containedException.printStackTrace(dumpWriter);
- // else
- // System.out.println("Error! "+se.getMessage());
-
diagnosticsWriter.println(XSLMessages.createMessage(XSLTErrorResources.ER_NOT_SUCCESSFUL,
null)); //"XSL Process was not successful.");
- }
- else
+ if(null != dumpFileName)
{
- if(doStackDumpOnError)
- se.printStackTrace(dumpWriter);
- // else
- // System.out.println("Error! "+se.getMessage());
-
diagnosticsWriter.println(XSLMessages.createMessage(XSLTErrorResources.ER_NOT_SUCCESSFUL,
null) ); //"XSL Process was not successful.");
+ dumpWriter.close();
}
- System.exit(-1);
- }
- catch(ClassNotFoundException cnfe)
- {
-
diagnosticsWriter.println(XSLMessages.createMessage(XSLTErrorResources.ER_XSLT_ERROR,
null)+": " + cnfe.getMessage());
- if(doStackDumpOnError)
- cnfe.printStackTrace(dumpWriter);
- else
- System.out.println("Error! "+cnfe.getMessage());
-
diagnosticsWriter.println(XSLMessages.createMessage(XSLTErrorResources.ER_NOT_SUCCESSFUL,
null)); //"XSL Process was not successful.");
- System.exit(-1);
- }
- catch(IOException ioe)
- {
-
diagnosticsWriter.println(XSLMessages.createMessage(XSLTErrorResources.ER_XSLT_ERROR,
null)+": " + ioe.getMessage());
- if(doStackDumpOnError)
- ioe.printStackTrace(dumpWriter);
- else
- System.out.println("Error! "+ioe.getMessage());
-
diagnosticsWriter.println(XSLMessages.createMessage(XSLTErrorResources.ER_NOT_SUCCESSFUL,
null)); //"XSL Process was not successful.");
- System.exit(-1);
- }
- catch(RuntimeException rte)
- {
-
diagnosticsWriter.println(XSLMessages.createMessage(XSLTErrorResources.ER_XSLT_ERROR,
null)+": " + rte.getMessage());
- if(doStackDumpOnError)
- rte.printStackTrace(dumpWriter);
- else
- System.out.println("Error! "+rte.getMessage());
-
diagnosticsWriter.println(XSLMessages.createMessage(XSLTErrorResources.ER_NOT_SUCCESSFUL,
null)); //"XSL Process was not successful.");
- System.exit(-1);
- }
- catch(Exception e)
- {
-
diagnosticsWriter.println(XSLMessages.createMessage(XSLTErrorResources.ER_XSLT_ERROR,
null)+": " + e.getMessage());
- if(doStackDumpOnError)
- e.printStackTrace(dumpWriter);
- else
- System.out.println("Error! "+e.getMessage());
-
diagnosticsWriter.println(XSLMessages.createMessage(XSLTErrorResources.ER_NOT_SUCCESSFUL,
null)); //"XSL Process was not successful.");
- System.exit(-1);
- }
- catch(Error err)
- {
-
diagnosticsWriter.println(XSLMessages.createMessage(XSLTErrorResources.ER_XSLT_ERROR,
null)+": " + err.getMessage());
- if(doStackDumpOnError)
- err.printStackTrace(dumpWriter);
- else
- System.out.println("Error! "+err.getMessage());
-
diagnosticsWriter.println(XSLMessages.createMessage(XSLTErrorResources.ER_NOT_SUCCESSFUL,
null)); //"XSL Process was not successful.");
- System.exit(-1);
- }
- catch(Throwable thr)
- {
-
diagnosticsWriter.println(XSLMessages.createMessage(XSLTErrorResources.ER_XSLT_ERROR,
null)+": " + thr.getMessage());
- if(doStackDumpOnError)
- thr.printStackTrace(dumpWriter);
- else
- System.out.println("Error! "+thr.getMessage());
-
diagnosticsWriter.println(XSLMessages.createMessage(XSLTErrorResources.ER_NOT_SUCCESSFUL,
null)); //"XSL Process was not successful.");
System.exit(-1);
}