Repository: jclouds
Updated Branches:
  refs/heads/master 34cfdbe26 -> 46daeae1d


Further FindBugs fixes


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

Branch: refs/heads/master
Commit: 8f8b6dd7ce6d48a1e9d4fb61a205060a4210a412
Parents: 34cfdbe
Author: Andrew Gaul <[email protected]>
Authored: Wed Aug 27 10:16:53 2014 -0700
Committer: Andrew Gaul <[email protected]>
Committed: Tue Sep 2 15:24:33 2014 -0700

----------------------------------------------------------------------
 ...ndSecurityGroupsAsNeededAndReturnRunOptions.java | 16 +++++++---------
 ...curityGroupsAsNeededAndReturnRunOptionsTest.java |  5 +++--
 .../compute/options/GoGridTemplateOptions.java      |  4 ----
 3 files changed, 10 insertions(+), 15 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jclouds/blob/8f8b6dd7/apis/ec2/src/main/java/org/jclouds/ec2/compute/strategy/CreateKeyPairAndSecurityGroupsAsNeededAndReturnRunOptions.java
----------------------------------------------------------------------
diff --git 
a/apis/ec2/src/main/java/org/jclouds/ec2/compute/strategy/CreateKeyPairAndSecurityGroupsAsNeededAndReturnRunOptions.java
 
b/apis/ec2/src/main/java/org/jclouds/ec2/compute/strategy/CreateKeyPairAndSecurityGroupsAsNeededAndReturnRunOptions.java
index 2965efa..833be0e 100644
--- 
a/apis/ec2/src/main/java/org/jclouds/ec2/compute/strategy/CreateKeyPairAndSecurityGroupsAsNeededAndReturnRunOptions.java
+++ 
b/apis/ec2/src/main/java/org/jclouds/ec2/compute/strategy/CreateKeyPairAndSecurityGroupsAsNeededAndReturnRunOptions.java
@@ -147,17 +147,15 @@ public class 
CreateKeyPairAndSecurityGroupsAsNeededAndReturnRunOptions {
    // base EC2 driver currently does not support key import
    protected String createOrImportKeyPair(String region, String group, 
TemplateOptions options) {
       RegionAndName regionAndGroup = new RegionAndName(region, group);
-      KeyPair keyPair;
+      KeyPair keyPair = makeKeyPair.apply(new RegionAndName(region, group));
       // make sure that we don't request multiple keys simultaneously
-      synchronized (credentialsMap) {
-         // if there is already a keypair for the group specified, use it
-         if (credentialsMap.containsKey(regionAndGroup))
-            return credentialsMap.get(regionAndGroup).getKeyName();
-
-         // otherwise create a new keypair and key it under the group and also 
the regular keyname
-         keyPair = makeKeyPair.apply(new RegionAndName(region, group));
-         credentialsMap.put(regionAndGroup, keyPair);
+      // if there is already a keypair for the group specified, use it
+      // otherwise create a new keypair and key it under the group and also 
the regular keyname
+      KeyPair origValue = credentialsMap.putIfAbsent(regionAndGroup, keyPair);
+      if (origValue != null) {
+         return origValue.getKeyName();
       }
+
       credentialsMap.put(new RegionAndName(region, keyPair.getKeyName()), 
keyPair);
       return keyPair.getKeyName();
    }

http://git-wip-us.apache.org/repos/asf/jclouds/blob/8f8b6dd7/apis/ec2/src/test/java/org/jclouds/ec2/compute/strategy/CreateKeyPairAndSecurityGroupsAsNeededAndReturnRunOptionsTest.java
----------------------------------------------------------------------
diff --git 
a/apis/ec2/src/test/java/org/jclouds/ec2/compute/strategy/CreateKeyPairAndSecurityGroupsAsNeededAndReturnRunOptionsTest.java
 
b/apis/ec2/src/test/java/org/jclouds/ec2/compute/strategy/CreateKeyPairAndSecurityGroupsAsNeededAndReturnRunOptionsTest.java
index 527123a..cc61fec 100644
--- 
a/apis/ec2/src/test/java/org/jclouds/ec2/compute/strategy/CreateKeyPairAndSecurityGroupsAsNeededAndReturnRunOptionsTest.java
+++ 
b/apis/ec2/src/test/java/org/jclouds/ec2/compute/strategy/CreateKeyPairAndSecurityGroupsAsNeededAndReturnRunOptionsTest.java
@@ -17,6 +17,7 @@
 package org.jclouds.ec2.compute.strategy;
 
 import static com.google.common.io.BaseEncoding.base64;
+import static org.easymock.EasyMock.anyObject;
 import static org.easymock.EasyMock.createMock;
 import static org.easymock.EasyMock.expect;
 import static org.easymock.EasyMock.replay;
@@ -356,8 +357,7 @@ public class 
CreateKeyPairAndSecurityGroupsAsNeededAndReturnRunOptionsTest {
       expect(options.getKeyPair()).andReturn(userSuppliedKeyPair);
       
expect(options.shouldAutomaticallyCreateKeyPair()).andReturn(shouldAutomaticallyCreateKeyPair);
       
expect(keyPair.getKeyName()).andReturn(systemGeneratedKeyPairName).atLeastOnce();
-      expect(strategy.credentialsMap.containsKey(new RegionAndName(region, 
group))).andReturn(true);
-      expect(strategy.credentialsMap.get(new RegionAndName(region, 
group))).andReturn(keyPair);
+      
expect(strategy.credentialsMap.putIfAbsent(anyObject(RegionAndName.class), 
anyObject(KeyPair.class))).andReturn(keyPair);
       expect(options.getRunScript()).andReturn(null);
 
       // replay mocks
@@ -557,6 +557,7 @@ public class 
CreateKeyPairAndSecurityGroupsAsNeededAndReturnRunOptionsTest {
       LoadingCache<RegionAndName, String> securityGroupMap = 
createMock(LoadingCache.class);
       GroupNamingConvention.Factory namingConventionFactory = 
createMock(GroupNamingConvention.Factory.class);
       GroupNamingConvention namingConvention = 
createMock(GroupNamingConvention.class);
+      
expect(makeKeyPair.apply(anyObject(RegionAndName.class))).andReturn(null).anyTimes();
       
expect(namingConventionFactory.create()).andReturn(namingConvention).anyTimes();
       
expect(namingConvention.sharedNameForGroup("group")).andReturn("jclouds#group").anyTimes();
       replay(namingConventionFactory);

http://git-wip-us.apache.org/repos/asf/jclouds/blob/8f8b6dd7/providers/gogrid/src/main/java/org/jclouds/gogrid/compute/options/GoGridTemplateOptions.java
----------------------------------------------------------------------
diff --git 
a/providers/gogrid/src/main/java/org/jclouds/gogrid/compute/options/GoGridTemplateOptions.java
 
b/providers/gogrid/src/main/java/org/jclouds/gogrid/compute/options/GoGridTemplateOptions.java
index 22b27c8..52572ac 100644
--- 
a/providers/gogrid/src/main/java/org/jclouds/gogrid/compute/options/GoGridTemplateOptions.java
+++ 
b/providers/gogrid/src/main/java/org/jclouds/gogrid/compute/options/GoGridTemplateOptions.java
@@ -52,10 +52,6 @@ public class GoGridTemplateOptions extends TemplateOptions 
implements Cloneable
    @Override
    public void copyTo(TemplateOptions to) {
       super.copyTo(to);
-      if (to instanceof GoGridTemplateOptions) {
-         @SuppressWarnings("unused")
-         GoGridTemplateOptions eTo = GoGridTemplateOptions.class.cast(to);
-      }
    }
 
    public static final GoGridTemplateOptions NONE = new 
GoGridTemplateOptions();

Reply via email to