You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by py...@apache.org on 2007/04/12 11:40:37 UTC
svn commit: r527857 - in /harmony/enhanced/classlib/trunk/modules/luni/src:
main/java/java/io/ObjectOutputStream.java
test/java/tests/api/java/io/ObjectOutputStreamTest.java
Author: pyang
Date: Thu Apr 12 02:40:36 2007
New Revision: 527857
URL: http://svn.apache.org/viewvc?view=rev&rev=527857
Log:
Apply patch for HARMONY-3610([classlib][luni]java.io.ObjectOutputStream.writeObjectOverride() throws IOException)
Modified:
harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java/io/ObjectOutputStream.java
harmony/enhanced/classlib/trunk/modules/luni/src/test/java/tests/api/java/io/ObjectOutputStreamTest.java
Modified: harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java/io/ObjectOutputStream.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java/io/ObjectOutputStream.java?view=diff&rev=527857&r1=527856&r2=527857
==============================================================================
--- harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java/io/ObjectOutputStream.java (original)
+++ harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java/io/ObjectOutputStream.java Thu Apr 12 02:40:36 2007
@@ -2059,8 +2059,10 @@
* If an IO exception happened when writing the object
*/
protected void writeObjectOverride(Object object) throws IOException {
- // Subclasses must override.
- throw new IOException();
+ if (!subclassOverridingImplementation) {
+ // Subclasses must override.
+ throw new IOException();
+ }
}
/**
Modified: harmony/enhanced/classlib/trunk/modules/luni/src/test/java/tests/api/java/io/ObjectOutputStreamTest.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/luni/src/test/java/tests/api/java/io/ObjectOutputStreamTest.java?view=diff&rev=527857&r1=527856&r2=527857
==============================================================================
--- harmony/enhanced/classlib/trunk/modules/luni/src/test/java/tests/api/java/io/ObjectOutputStreamTest.java (original)
+++ harmony/enhanced/classlib/trunk/modules/luni/src/test/java/tests/api/java/io/ObjectOutputStreamTest.java Thu Apr 12 02:40:36 2007
@@ -498,11 +498,11 @@
protected Object replaceObject(Object obj) throws IOException {
if (obj instanceof NotSerializable) {
return new Long(10);
- } else if (obj instanceof Integer) {
+ }
+ if (obj instanceof Integer) {
return new Long(((Integer) obj).longValue());
- } else {
- return obj;
}
+ return super.replaceObject(obj);
}
}
@@ -518,6 +518,21 @@
return new Long(10);
}
}
+
+ private static class ObjectOutputStreamWriteOverride extends ObjectOutputStream {
+ String test = "test";
+
+ protected ObjectOutputStreamWriteOverride() throws IOException,
+ SecurityException {
+ super();
+ }
+
+ @Override
+ protected void writeObjectOverride(Object object) throws IOException {
+ test = null;
+ super.writeObjectOverride(object);
+ }
+ }
protected static final String MODE_XLOAD = "xload";
@@ -954,6 +969,15 @@
fail("Expected NotSerializableException");
} catch (NotSerializableException e) {}
out.writeObject(new ExternalizableWithReplace());
+ }
+
+ /**
+ * @tests {@link java.io.ObjectOutputStream#writeObjectOverride(Object)}
+ */
+ public void test_writeObject_WriteOverride() throws Exception {
+ ObjectOutputStreamWriteOverride mockOut = new ObjectOutputStreamWriteOverride();
+ mockOut.writeObject(new Object());
+ assertNull(mockOut.test);
}
/**