diff -r 18462a19f7bd -r 27d87f0031bf src/share/classes/sun/rmi/rmic/iiop/StubGenerator.java --- a/src/share/classes/sun/rmi/rmic/iiop/StubGenerator.java Thu Sep 20 13:44:07 2012 -0700 +++ b/src/share/classes/sun/rmi/rmic/iiop/StubGenerator.java Fri Oct 05 15:08:10 2012 +0100 @@ -1631,7 +1631,7 @@ // Write data members... p.pln(); - p.pln("private " + getName(theType) + " target = null;"); + p.pln("volatile private " + getName(theType) + " target = null;"); p.pln(); // Write the ids... @@ -1695,6 +1695,10 @@ if (remoteMethods.length > 0) { p.plnI("try {"); + p.pln(getName(theType) + " target = this.target;"); + p.plnI("if (target == null) {"); + p.pln("throw new java.io.IOException();"); + p.pOln("}"); p.plnI(idExtInputStream + " "+in+" = "); p.pln("(" + idExtInputStream + ") "+_in+";"); p.pO();