diff -r 702a66d7e231 -r 885627926ab1 jdk/src/java.base/share/classes/java/io/ObjectInputStream.java --- a/jdk/src/java.base/share/classes/java/io/ObjectInputStream.java Fri Apr 17 15:28:44 2015 +0100 +++ b/jdk/src/java.base/share/classes/java/io/ObjectInputStream.java Fri Apr 17 15:36:32 2015 +0100 @@ -1832,6 +1832,8 @@ throws IOException { SerialCallbackContext oldContext = curContext; + if (oldContext != null) + oldContext.check(); curContext = null; try { boolean blocked = desc.hasBlockExternalData(); @@ -1856,6 +1858,8 @@ skipCustomData(); } } finally { + if (oldContext != null) + oldContext.check(); curContext = oldContext; } /* @@ -1910,7 +1914,8 @@ defaultReadFields(null, slotDesc); // skip field values } else if (slotDesc.hasReadObjectMethod()) { SerialCallbackContext oldContext = curContext; - + if (oldContext != null) + oldContext.check(); try { curContext = new SerialCallbackContext(obj, slotDesc); @@ -1927,6 +1932,8 @@ handles.markException(passHandle, ex); } finally { curContext.setUsed(); + if (oldContext!= null) + oldContext.check(); curContext = oldContext; }