diff --git a/src/main/java/com/netflix/simianarmy/client/aws/AWSClient.java b/src/main/java/com/netflix/simianarmy/client/aws/AWSClient.java index c85b6cbc..24cb2e32 100644 --- a/src/main/java/com/netflix/simianarmy/client/aws/AWSClient.java +++ b/src/main/java/com/netflix/simianarmy/client/aws/AWSClient.java @@ -856,15 +856,19 @@ public Instance describeInstance(String instanceId) { /** {@inheritDoc} */ @Override - public synchronized ComputeService getJcloudsComputeService() { + public ComputeService getJcloudsComputeService() { if (jcloudsComputeService == null) { - String username = awsCredentialsProvider.getCredentials().getAWSAccessKeyId(); - String password = awsCredentialsProvider.getCredentials().getAWSSecretKey(); - ComputeServiceContext jcloudsContext = ContextBuilder.newBuilder("aws-ec2").credentials(username, password) - .modules(ImmutableSet.of(new SLF4JLoggingModule(), new JschSshClientModule())) - .buildView(ComputeServiceContext.class); - - this.jcloudsComputeService = jcloudsContext.getComputeService(); + synchronized(this) { + if (jcloudsComputeService == null) { + String username = awsCredentialsProvider.getCredentials().getAWSAccessKeyId(); + String password = awsCredentialsProvider.getCredentials().getAWSSecretKey(); + ComputeServiceContext jcloudsContext = ContextBuilder.newBuilder("aws-ec2").credentials(username, password) + .modules(ImmutableSet.of(new SLF4JLoggingModule(), new JschSshClientModule())) + .buildView(ComputeServiceContext.class); + + this.jcloudsComputeService = jcloudsContext.getComputeService(); + } + } } return jcloudsComputeService;