diff options
author | Mathieu Arnold <mat@FreeBSD.org> | 2014-01-04 14:33:12 +0000 |
---|---|---|
committer | Mathieu Arnold <mat@FreeBSD.org> | 2014-01-04 14:33:12 +0000 |
commit | f9902a1f64a1ea967e3213ab2856b11fac23c03d (patch) | |
tree | b805f49f10b326276206fe3fe63fa9178c6758f1 /java/openjdk6/files/icedtea/openjdk/8014987-augment_serialization.patch | |
parent | - Fix packaging of examples after move to PYDISTUTILS_AUTOPLIST (diff) |
Revert lang/openjdk6 to b28.
With hat: portmgr-lurker
Diffstat (limited to 'java/openjdk6/files/icedtea/openjdk/8014987-augment_serialization.patch')
-rw-r--r-- | java/openjdk6/files/icedtea/openjdk/8014987-augment_serialization.patch | 100 |
1 files changed, 100 insertions, 0 deletions
diff --git a/java/openjdk6/files/icedtea/openjdk/8014987-augment_serialization.patch b/java/openjdk6/files/icedtea/openjdk/8014987-augment_serialization.patch new file mode 100644 index 000000000000..f8f53a9e9643 --- /dev/null +++ b/java/openjdk6/files/icedtea/openjdk/8014987-augment_serialization.patch @@ -0,0 +1,100 @@ +# HG changeset patch +# User smarks +# Date 1381854512 -3600 +# Tue Oct 15 17:28:32 2013 +0100 +# Node ID a1bc92467cc07e1cb3c93d0b3b629eda4c45238f +# Parent 1e7a5ebc8013b812de73e452e809a3b545dd252f +8014987: Augment serialization handling +Reviewed-by: alanb, coffeys, skoivu + +diff -r 1e7a5ebc8013 -r a1bc92467cc0 src/share/classes/java/io/ObjectInputStream.java +--- jdk/src/share/classes/java/io/ObjectInputStream.java Thu Jul 18 10:12:56 2013 +0200 ++++ jdk/src/share/classes/java/io/ObjectInputStream.java Tue Oct 15 17:28:32 2013 +0100 +@@ -489,11 +489,12 @@ + public void defaultReadObject() + throws IOException, ClassNotFoundException + { +- if (curContext == null) { ++ SerialCallbackContext ctx = curContext; ++ if (ctx == null) { + throw new NotActiveException("not in call to readObject"); + } +- Object curObj = curContext.getObj(); +- ObjectStreamClass curDesc = curContext.getDesc(); ++ Object curObj = ctx.getObj(); ++ ObjectStreamClass curDesc = ctx.getDesc(); + bin.setBlockDataMode(false); + defaultReadFields(curObj, curDesc); + bin.setBlockDataMode(true); +@@ -527,11 +528,12 @@ + public ObjectInputStream.GetField readFields() + throws IOException, ClassNotFoundException + { +- if (curContext == null) { ++ SerialCallbackContext ctx = curContext; ++ if (ctx == null) { + throw new NotActiveException("not in call to readObject"); + } +- Object curObj = curContext.getObj(); +- ObjectStreamClass curDesc = curContext.getDesc(); ++ Object curObj = ctx.getObj(); ++ ObjectStreamClass curDesc = ctx.getDesc(); + bin.setBlockDataMode(false); + GetFieldImpl getField = new GetFieldImpl(curDesc); + getField.readFields(); +@@ -1964,7 +1966,6 @@ + private void defaultReadFields(Object obj, ObjectStreamClass desc) + throws IOException + { +- // REMIND: is isInstance check necessary? + Class cl = desc.forClass(); + if (cl != null && obj != null && !cl.isInstance(obj)) { + throw new ClassCastException(); +diff -r 1e7a5ebc8013 -r a1bc92467cc0 src/share/classes/java/io/ObjectOutputStream.java +--- jdk/src/share/classes/java/io/ObjectOutputStream.java Thu Jul 18 10:12:56 2013 +0200 ++++ jdk/src/share/classes/java/io/ObjectOutputStream.java Tue Oct 15 17:28:32 2013 +0100 +@@ -430,11 +430,12 @@ + * <code>OutputStream</code> + */ + public void defaultWriteObject() throws IOException { +- if ( curContext == null ) { ++ SerialCallbackContext ctx = curContext; ++ if (ctx == null) { + throw new NotActiveException("not in call to writeObject"); + } +- Object curObj = curContext.getObj(); +- ObjectStreamClass curDesc = curContext.getDesc(); ++ Object curObj = ctx.getObj(); ++ ObjectStreamClass curDesc = ctx.getDesc(); + bout.setBlockDataMode(false); + defaultWriteFields(curObj, curDesc); + bout.setBlockDataMode(true); +@@ -452,11 +453,12 @@ + */ + public ObjectOutputStream.PutField putFields() throws IOException { + if (curPut == null) { +- if (curContext == null) { ++ SerialCallbackContext ctx = curContext; ++ if (ctx == null) { + throw new NotActiveException("not in call to writeObject"); + } +- Object curObj = curContext.getObj(); +- ObjectStreamClass curDesc = curContext.getDesc(); ++ Object curObj = ctx.getObj(); ++ ObjectStreamClass curDesc = ctx.getDesc(); + curPut = new PutFieldImpl(curDesc); + } + return curPut; +@@ -1516,7 +1518,11 @@ + private void defaultWriteFields(Object obj, ObjectStreamClass desc) + throws IOException + { +- // REMIND: perform conservative isInstance check here? ++ Class<?> cl = desc.forClass(); ++ if (cl != null && obj != null && !cl.isInstance(obj)) { ++ throw new ClassCastException(); ++ } ++ + desc.checkDefaultSerialize(); + + int primDataSize = desc.getPrimDataSize(); |