Index: transaction/jts/src/main/java/com/sun/jts/CosTransactions/TopCoordinator.java =================================================================== --- transaction/jts/src/main/java/com/sun/jts/CosTransactions/TopCoordinator.java (revision 35343) +++ transaction/jts/src/main/java/com/sun/jts/CosTransactions/TopCoordinator.java (working copy) @@ -1,7 +1,7 @@ /* * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. * - * Copyright 1997-2009 Sun Microsystems, Inc. All rights reserved. + * Copyright 1997-2010 Sun Microsystems, Inc. All rights reserved. * * The contents of this file are subject to the terms of either the GNU * General Public License Version 2 only ("GPL") or the Common Development @@ -2118,6 +2143,7 @@ // ADDED(Ram J) percolate any system exception // back to the caller. if (exc instanceof INTERNAL) { + tranState.releaseLock(); throw (INTERNAL) exc; } } @@ -2995,6 +3021,7 @@ // tried to set the state to COP_RB twice // in a row which is an error. } else if (exc instanceof INTERNAL) { + tranState.releaseLock(); // ADDED (Ram J) percolate up any system exception. throw (INTERNAL) exc; } // end else if cascade on the exception types Index: transaction/jts/src/main/java/com/sun/jts/CosTransactions/TransactionState.java =================================================================== --- transaction/jts/src/main/java/com/sun/jts/CosTransactions/TransactionState.java (revision 35343) +++ transaction/jts/src/main/java/com/sun/jts/CosTransactions/TransactionState.java (working copy) @@ -1,7 +1,7 @@ /* * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. * - * Copyright 1997-2008 Sun Microsystems, Inc. All rights reserved. + * Copyright 1997-2010 Sun Microsystems, Inc. All rights reserved. * * The contents of this file are subject to the terms of either the GNU * General Public License Version 2 only ("GPL") or the Common Development @@ -898,4 +898,8 @@ return result; } + + void releaseLock() { + freezeLock.releaseReadLock(); + } }