GUACAMOLE-38: Make connection ID incrementing thread-safe.

Project: http://git-wip-us.apache.org/repos/asf/guacamole-client/repo
Commit: http://git-wip-us.apache.org/repos/asf/guacamole-client/commit/8fa0cea7
Tree: http://git-wip-us.apache.org/repos/asf/guacamole-client/tree/8fa0cea7
Diff: http://git-wip-us.apache.org/repos/asf/guacamole-client/diff/8fa0cea7

Branch: refs/heads/master
Commit: 8fa0cea7936a5740cebf464902f8445dc30120c4
Parents: a3d8512
Author: Nick Couchman <vn...@apache.org>
Authored: Sun Mar 18 20:42:37 2018 -0400
Committer: Nick Couchman <vn...@apache.org>
Committed: Fri Jun 1 13:40:50 2018 -0400

----------------------------------------------------------------------
 .../auth/quickconnect/QuickConnectDirectory.java        | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/8fa0cea7/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectDirectory.java
----------------------------------------------------------------------
diff --git 
a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectDirectory.java
 
b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectDirectory.java
index 00c5044..2e19870 100644
--- 
a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectDirectory.java
+++ 
b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectDirectory.java
@@ -20,6 +20,7 @@
 package org.apache.guacamole.auth.quickconnect;
 
 import java.util.Collection;
+import java.util.concurrent.atomic.AtomicInteger;
 import org.apache.guacamole.GuacamoleException;
 import org.apache.guacamole.auth.quickconnect.utility.QCParser;
 import org.apache.guacamole.net.auth.ConnectionGroup;
@@ -46,7 +47,7 @@ public class QuickConnectDirectory extends 
SimpleConnectionDirectory {
     /**
      * The internal counter for connection IDs.
      */
-    private int CONNECTION_ID = 0;
+    private AtomicInteger connectionId;
 
     /**
      * Creates a new QuickConnectDirectory which provides access to the
@@ -61,6 +62,7 @@ public class QuickConnectDirectory extends 
SimpleConnectionDirectory {
     public QuickConnectDirectory(Collection<Connection> connections, 
ConnectionGroup rootGroup) {
         super(connections);
         this.rootGroup = (QuickConnectConnectionGroup)rootGroup;
+        this.connectionId = new AtomicInteger();
     }
 
     /**
@@ -70,8 +72,8 @@ public class QuickConnectDirectory extends 
SimpleConnectionDirectory {
      *     An Integer representing the next available connection
      *     ID to get used when adding connections.
      */
-    private Integer getNextConnectionID() {
-        return CONNECTION_ID++;
+    private int getNextConnectionID() {
+        return connectionId.getAndIncrement();
     }
 
     @Override
@@ -99,7 +101,7 @@ public class QuickConnectDirectory extends 
SimpleConnectionDirectory {
     public String put(QuickConnection connection) throws GuacamoleException {
 
         // Get the next connection ID.
-        String connectionId = getNextConnectionID().toString();
+        String connectionId = Integer.toString(getNextConnectionID());
 
         // Set up identifier and parent on object.
         connection.setIdentifier(connectionId);
@@ -132,7 +134,7 @@ public class QuickConnectDirectory extends 
SimpleConnectionDirectory {
     public String create(GuacamoleConfiguration config) throws 
GuacamoleException {
 
         // Get the next connection ID
-        String connectionId = getNextConnectionID().toString();
+        String connectionId = Integer.toString(getNextConnectionID());
 
         // Generate a name for the configuration
         String name = QCParser.getName(config);

Reply via email to