Author: bodewig
Date: Tue Aug  4 05:38:43 2009
New Revision: 800678

URL: http://svn.apache.org/viewvc?rev=800678&view=rev
Log:
fix NPE when logging an exception without message.  PR 47623.

Modified:
    ant/core/trunk/WHATSNEW
    ant/core/trunk/src/main/org/apache/tools/ant/Project.java
    ant/core/trunk/src/tests/junit/org/apache/tools/ant/ProjectTest.java

Modified: ant/core/trunk/WHATSNEW
URL: 
http://svn.apache.org/viewvc/ant/core/trunk/WHATSNEW?rev=800678&r1=800677&r2=800678&view=diff
==============================================================================
--- ant/core/trunk/WHATSNEW (original)
+++ ant/core/trunk/WHATSNEW Tue Aug  4 05:38:43 2009
@@ -420,6 +420,10 @@
    failed to load.
    Bugzilla Report 44103.
 
+ * Logging exceptions without a message would cause a
+   NullPointerException.
+   Bugzilla Report 47623.
+
 Other changes:
 --------------
  * The get task now also follows redirects from http to https

Modified: ant/core/trunk/src/main/org/apache/tools/ant/Project.java
URL: 
http://svn.apache.org/viewvc/ant/core/trunk/src/main/org/apache/tools/ant/Project.java?rev=800678&r1=800677&r2=800678&view=diff
==============================================================================
--- ant/core/trunk/src/main/org/apache/tools/ant/Project.java (original)
+++ ant/core/trunk/src/main/org/apache/tools/ant/Project.java Tue Aug  4 
05:38:43 2009
@@ -2171,6 +2171,9 @@
     private void fireMessageLoggedEvent(BuildEvent event, String message,
                                         int priority) {
 
+        if (message == null) {
+            message = String.valueOf(message);
+        }
         if (message.endsWith(StringUtils.LINE_SEP)) {
             int endIndex = message.length() - StringUtils.LINE_SEP.length();
             event.setMessage(message.substring(0, endIndex), priority);

Modified: ant/core/trunk/src/tests/junit/org/apache/tools/ant/ProjectTest.java
URL: 
http://svn.apache.org/viewvc/ant/core/trunk/src/tests/junit/org/apache/tools/ant/ProjectTest.java?rev=800678&r1=800677&r2=800678&view=diff
==============================================================================
--- ant/core/trunk/src/tests/junit/org/apache/tools/ant/ProjectTest.java 
(original)
+++ ant/core/trunk/src/tests/junit/org/apache/tools/ant/ProjectTest.java Tue 
Aug  4 05:38:43 2009
@@ -276,6 +276,14 @@
         assertTrue("Expected logging thread to finish successfully", done[0]);
     }
 
+    /**
+     * @see https://issues.apache.org/bugzilla/show_bug.cgi?id=47623
+     */
+    public void testNullThrowableMessageLog() {
+        p.log(new Task() {}, null, new Throwable(), Project.MSG_ERR);
+        // be content if no exception has been thrown
+    }
+
     private class DummyTaskPrivate extends Task {
         public DummyTaskPrivate() {}
         public void execute() {}


Reply via email to