You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by oh...@apache.org on 2018/03/24 19:57:23 UTC

svn commit: r1827667 - in /commons/proper/configuration/trunk/src: main/java/org/apache/commons/configuration2/AbstractConfiguration.java test/java/org/apache/commons/configuration2/TestDataConfiguration.java

Author: oheger
Date: Sat Mar 24 19:57:23 2018
New Revision: 1827667

URL: http://svn.apache.org/viewvc?rev=1827667&view=rev
Log:
CONFIGURATION-692: The cause of conversion exceptions is retained.

ConversionExceptions thrown when accessing properties are caught and
rethrown with an improved error message. Now the new exception
contains the cause of the original one.

Modified:
    commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration2/AbstractConfiguration.java
    commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration2/TestDataConfiguration.java

Modified: commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration2/AbstractConfiguration.java
URL: http://svn.apache.org/viewvc/commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration2/AbstractConfiguration.java?rev=1827667&r1=1827666&r2=1827667&view=diff
==============================================================================
--- commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration2/AbstractConfiguration.java (original)
+++ commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration2/AbstractConfiguration.java Sat Mar 24 19:57:23 2018
@@ -1769,7 +1769,7 @@ public abstract class AbstractConfigurat
             throw new ConversionException(
                     String.format(
                             "Key '%s' cannot be converted to class %s. Value is: '%s'.",
-                            key, cls.getName(), String.valueOf(value)));
+                            key, cls.getName(), String.valueOf(value)), cex.getCause());
         }
     }
 

Modified: commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration2/TestDataConfiguration.java
URL: http://svn.apache.org/viewvc/commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration2/TestDataConfiguration.java?rev=1827667&r1=1827666&r2=1827667&view=diff
==============================================================================
--- commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration2/TestDataConfiguration.java (original)
+++ commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration2/TestDataConfiguration.java Sat Mar 24 19:57:23 2018
@@ -2598,4 +2598,22 @@ public class TestDataConfiguration
         conf.clearPropertyDirect(key);
         EasyMock.verify(wrapped);
     }
+
+    /**
+     * Tests that the cause of a conversion exception is kept.
+     */
+    @Test
+    public void testConversionExceptionCause()
+    {
+        try
+        {
+            conf.get(Integer.TYPE, "uri.string");
+            fail("No conversion exception thrown!");
+        }
+        catch (ConversionException cex)
+        {
+            assertTrue("Wrong cause",
+                    cex.getCause() instanceof NumberFormatException);
+        }
+    }
 }