Author: bodewig
Date: Tue Oct 28 07:32:23 2008
New Revision: 708584

URL: http://svn.apache.org/viewvc?rev=708584&view=rev
Log:
At least try to log the real reason of an error.  PR 26086

Modified:
    ant/core/trunk/WHATSNEW
    ant/core/trunk/src/main/org/apache/tools/ant/Main.java

Modified: ant/core/trunk/WHATSNEW
URL: 
http://svn.apache.org/viewvc/ant/core/trunk/WHATSNEW?rev=708584&r1=708583&r2=708584&view=diff
==============================================================================
--- ant/core/trunk/WHATSNEW (original)
+++ ant/core/trunk/WHATSNEW Tue Oct 28 07:32:23 2008
@@ -278,6 +278,10 @@
    some setups.
    Bugzilla Report 46063.
 
+ * if an error occurs while logging the buildFinished event, the
+   original error is now logged to System.err.
+   Bugzilla Report 25086.
+
 Other changes:
 --------------
 

Modified: ant/core/trunk/src/main/org/apache/tools/ant/Main.java
URL: 
http://svn.apache.org/viewvc/ant/core/trunk/src/main/org/apache/tools/ant/Main.java?rev=708584&r1=708583&r2=708584&view=diff
==============================================================================
--- ant/core/trunk/src/main/org/apache/tools/ant/Main.java (original)
+++ ant/core/trunk/src/main/org/apache/tools/ant/Main.java Tue Oct 28 07:32:23 
2008
@@ -792,7 +792,21 @@
             throw e;
         } finally {
             if (!projectHelp) {
-                project.fireBuildFinished(error);
+                try {
+                    project.fireBuildFinished(error);
+                } catch (Throwable t) {
+                    // yes, I know it is bad style to catch Throwable,
+                    // but if we don't, we lose valuable information
+                    System.err.println("Caught an exception while logging the"
+                                       + " end of the build.  Exception was:");
+                    t.printStackTrace();
+                    if (error != null) {
+                        System.err.println("There has been an error prior to"
+                                           + " that:");
+                        error.printStackTrace();
+                    }
+                    throw new BuildException(t);
+                }
             } else if (error != null) {
                 project.log(error.toString(), Project.MSG_ERR);
             }


Reply via email to