You are viewing a plain text version of this content. The canonical link for it is here.
Posted to wss4j-dev@ws.apache.org by dk...@apache.org on 2009/04/14 17:15:11 UTC

svn commit: r764823 - in /webservices/wss4j/branches/1_5_x-fixes/src/org/apache/ws/security: WSSConfig.java util/UUIDGenerator.java

Author: dkulp
Date: Tue Apr 14 15:15:09 2009
New Revision: 764823

URL: http://svn.apache.org/viewvc?rev=764823&view=rev
Log:
Make the default wsu:Id allocator a static so changes to interceptors/handlers won't be needed if they are chained .

Modified:
    webservices/wss4j/branches/1_5_x-fixes/src/org/apache/ws/security/WSSConfig.java
    webservices/wss4j/branches/1_5_x-fixes/src/org/apache/ws/security/util/UUIDGenerator.java

Modified: webservices/wss4j/branches/1_5_x-fixes/src/org/apache/ws/security/WSSConfig.java
URL: http://svn.apache.org/viewvc/webservices/wss4j/branches/1_5_x-fixes/src/org/apache/ws/security/WSSConfig.java?rev=764823&r1=764822&r2=764823&view=diff
==============================================================================
--- webservices/wss4j/branches/1_5_x-fixes/src/org/apache/ws/security/WSSConfig.java (original)
+++ webservices/wss4j/branches/1_5_x-fixes/src/org/apache/ws/security/WSSConfig.java Tue Apr 14 15:15:09 2009
@@ -196,7 +196,12 @@
      */
     protected boolean handleCustomPasswordTypes = false;
     
-    protected WsuIdAllocator idAllocator = new WsuIdAllocator() {
+    
+    /**
+     * The default wsu:Id allocator is a simple "start at 1 and increment up"
+     * thing that is very fast.
+     */
+    public static WsuIdAllocator DEFAULT_ID_ALLOCATOR = new WsuIdAllocator() {
         int i;
         private synchronized String next() {
             return Integer.toString(++i);
@@ -215,7 +220,8 @@
             return prefix + UUIDGenerator.getUUID();
         }
     };
-
+    protected WsuIdAllocator idAllocator = DEFAULT_ID_ALLOCATOR;
+    
     protected HashMap jceProvider = new HashMap(10);
 
     /**

Modified: webservices/wss4j/branches/1_5_x-fixes/src/org/apache/ws/security/util/UUIDGenerator.java
URL: http://svn.apache.org/viewvc/webservices/wss4j/branches/1_5_x-fixes/src/org/apache/ws/security/util/UUIDGenerator.java?rev=764823&r1=764822&r2=764823&view=diff
==============================================================================
--- webservices/wss4j/branches/1_5_x-fixes/src/org/apache/ws/security/util/UUIDGenerator.java (original)
+++ webservices/wss4j/branches/1_5_x-fixes/src/org/apache/ws/security/util/UUIDGenerator.java Tue Apr 14 15:15:09 2009
@@ -46,7 +46,7 @@
      */
     public static String getUUID() {
         if (baseUUID == null) {
-            baseUUID = getInitialUUID();
+            getInitialUUID();
         }
         long i = ++incrementingValue;
         if(i >= Long.MAX_VALUE || i < 0){
@@ -56,7 +56,10 @@
         return baseUUID + System.currentTimeMillis() + i;
     }
 
-    protected static String getInitialUUID() {
+    protected static synchronized void getInitialUUID() {
+        if (baseUUID != null) {
+            return;
+        }
         if (myRand == null) {
             myRand = new Random();
         }
@@ -90,7 +93,7 @@
         int begin = myRand.nextInt();
         if (begin < 0) begin = begin * -1;
         begin = begin % 8;
-        return sb2.toString().substring(begin, begin + 18).toUpperCase();
+        baseUUID = sb2.toString().substring(begin, begin + 18).toUpperCase();
     }
 
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: wss4j-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: wss4j-dev-help@ws.apache.org