Index: src/main/java/java/beans/XMLDecoder.java =================================================================== --- src/main/java/java/beans/XMLDecoder.java (revision 542484) +++ src/main/java/java/beans/XMLDecoder.java (working copy) @@ -36,6 +36,12 @@ private Object owner = null; private ExceptionListener exceptionListener = null; + + private ExceptionListener defaultExceptionListener = new ExceptionListener(){ + public void exceptionThrown(Exception e) { + System.err.println(e); + } + }; private final Vector objects = new Vector(); @@ -91,7 +97,11 @@ } public ExceptionListener getExceptionListener() { - return exceptionListener; + if(exceptionListener != null) { + return exceptionListener; + } else { + return defaultExceptionListener; + } } public void close() { @@ -105,6 +115,8 @@ private void handleException(Exception e) { if (exceptionListener != null) { exceptionListener.exceptionThrown(e); + } else { + defaultExceptionListener.exceptionThrown(e); } } Index: src/test/java/org/apache/harmony/beans/tests/java/beans/XMLDecoderTest.java =================================================================== --- src/test/java/org/apache/harmony/beans/tests/java/beans/XMLDecoderTest.java (revision 542484) +++ src/test/java/org/apache/harmony/beans/tests/java/beans/XMLDecoderTest.java (working copy) @@ -112,6 +112,8 @@ public void testGetExceptionListener() { XMLDecoder dec = new XMLDecoder(new ByteArrayInputStream(xml123bytes)); assertNotNull(dec.getExceptionListener()); + dec = new XMLDecoder(new ByteArrayInputStream(new byte[] {1, 2}), new Double(1), null); + assertNotNull(dec.getExceptionListener()); } public void testGetOwner() {