You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by te...@apache.org on 2010/09/21 22:39:37 UTC
svn commit: r999623 -
/harmony/enhanced/java/trunk/classlib/modules/rmi/src/main/java/java/rmi/server/ObjID.java
Author: tellison
Date: Tue Sep 21 20:39:37 2010
New Revision: 999623
URL: http://svn.apache.org/viewvc?rev=999623&view=rev
Log:
Apply fix for HARMONY-6653 (Use instance lock to protect static share data in ObjID.jav)
Modified:
harmony/enhanced/java/trunk/classlib/modules/rmi/src/main/java/java/rmi/server/ObjID.java
Modified: harmony/enhanced/java/trunk/classlib/modules/rmi/src/main/java/java/rmi/server/ObjID.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/java/trunk/classlib/modules/rmi/src/main/java/java/rmi/server/ObjID.java?rev=999623&r1=999622&r2=999623&view=diff
==============================================================================
--- harmony/enhanced/java/trunk/classlib/modules/rmi/src/main/java/java/rmi/server/ObjID.java (original)
+++ harmony/enhanced/java/trunk/classlib/modules/rmi/src/main/java/java/rmi/server/ObjID.java Tue Sep 21 20:39:37 2010
@@ -133,6 +133,11 @@ public final class ObjID implements Seri
private static class NumberGenerator {
// Counter to be used in case of insecure mode.
static long numCounter = 65536; // 2^16
+
+ private static class RMINumberGeneratorLock {
+ // Used to identify local lock.
+ }
+ private static final Object monitor = new RMINumberGeneratorLock();
// Secure generator.
SecureRandom sGenerator;
@@ -149,8 +154,10 @@ public final class ObjID implements Seri
/*
* Returns next long number.
*/
- synchronized long nextLong() {
- return useRandom ? sGenerator.nextLong() : numCounter++;
+ long nextLong() {
+ synchronized (monitor) {
+ return useRandom ? sGenerator.nextLong() : numCounter++;
+ }
}
}
}