Details
-
Improvement
-
Status: Resolved
-
Critical
-
Resolution: Fixed
-
2.1.1, 2.1.2
Description
We are using jclouds version 2.1.1 (nova, gcp storage, rackspace)
Jclouds is using Guice version 3.0, released circa 2011.
This version has incompatibilities with Guice version 4.x, causing runtime exceptions such as the one listed below. we cannot upgrade many of our library dependencies because of that
java.lang.ExceptionInInitializerError
at com.valooto.storage.StorageSingleton.getInstance(StorageSingleton.java:31)
...
Caused by: com.google.inject.CreationException: Unable to create injector, see the following errors:
1) Error in custom provider, java.lang.NoSuchMethodError: com.google.common.util.concurrent.MoreExecutors.newDirectExecutorService()Lcom/google/common/util/concurrent/ListeningExecutorService;
at org.jclouds.openstack.keystone.auth.config.AuthenticationModule.provideAuthenticationMethods(AuthenticationModule.java:98)
at org.jclouds.openstack.keystone.auth.config.AuthenticationModule.provideAuthenticationMethods(AuthenticationModule.java:98)
while locating java.util.Map<java.lang.String, com.google.common.base.Function<org.jclouds.domain.Credentials, org.jclouds.openstack.keystone.auth.domain.AuthInfo>>
for the 2nd parameter of org.jclouds.openstack.keystone.auth.config.AuthenticationModule.authenticationMethodForCredentialType(AuthenticationModule.java:114)
at org.jclouds.openstack.keystone.auth.config.AuthenticationModule.authenticationMethodForCredentialType(AuthenticationModule.java:114)
while locating com.google.common.base.Function<org.jclouds.domain.Credentials, org.jclouds.openstack.keystone.auth.domain.AuthInfo>
for the 1st parameter of org.jclouds.openstack.keystone.auth.config.AuthenticationModule.provideAuthInfoCache(AuthenticationModule.java:125)
at org.jclouds.openstack.keystone.auth.config.AuthenticationModule.provideAuthInfoCache(AuthenticationModule.java:125)
while locating com.google.common.cache.LoadingCache<org.jclouds.domain.Credentials, org.jclouds.openstack.keystone.auth.domain.AuthInfo>
for the 1st parameter of org.jclouds.openstack.keystone.auth.handlers.RetryOnRenew.<init>(RetryOnRenew.java:62)
at org.jclouds.openstack.keystone.auth.handlers.RetryOnRenew.class(RetryOnRenew.java:48)
while locating org.jclouds.openstack.keystone.auth.handlers.RetryOnRenew
while locating org.jclouds.http.HttpRetryHandler annotated with interface org.jclouds.http.annotation.ClientError
Caused by: java.lang.NoSuchMethodError: com.google.common.util.concurrent.MoreExecutors.newDirectExecutorService()Lcom/google/common/util/concurrent/ListeningExecutorService;
at org.jclouds.lifecycle.config.LifeCycleModule$4$1.afterInjection(LifeCycleModule.java:120)
at com.google.inject.internal.MembersInjectorImpl.notifyListeners(MembersInjectorImpl.java:119)
at com.google.inject.internal.ConstructorInjector.provision(ConstructorInjector.java:121)
at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:90)
at com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:268)
at com.google.inject.internal.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:46)
at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1092)
at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)
at com.google.inject.internal.SingletonScope$1.get(SingletonScope.java:194)
at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:41)
at com.google.inject.internal.InjectorImpl$2$1.call(InjectorImpl.java:1019)
at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1092)
at com.google.inject.internal.InjectorImpl$2.get(InjectorImpl.java:1015)
at com.google.inject.internal.InjectorImpl.getInstance(InjectorImpl.java:1054)
at org.jclouds.rackspace.cloudidentity.v2_0.config.CloudIdentityAuthenticationModule.authenticationMethods(CloudIdentityAuthenticationModule.java:57)
at org.jclouds.openstack.keystone.auth.config.AuthenticationModule.provideAuthenticationMethods(AuthenticationModule.java:98)
at org.jclouds.openstack.keystone.auth.config.AuthenticationModule$$FastClassByGuice$$223849f2.invoke(<generated>)
at com.google.inject.internal.ProviderMethod$FastClassProviderMethod.doProvision(ProviderMethod.java:264)
at com.google.inject.internal.ProviderMethod$Factory.provision(ProviderMethod.java:401)
at com.google.inject.internal.ProviderMethod$Factory.get(ProviderMethod.java:376)
at com.google.inject.internal.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:46)
at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1092)
at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)
at com.google.inject.internal.SingletonScope$1.get(SingletonScope.java:194)
at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:41)
at com.google.inject.internal.SingleParameterInjector.inject(SingleParameterInjector.java:38)
at com.google.inject.internal.SingleParameterInjector.getAll(SingleParameterInjector.java:62)
at com.google.inject.internal.ProviderMethod$Factory.provision(ProviderMethod.java:402)
at com.google.inject.internal.ProviderMethod$Factory.get(ProviderMethod.java:376)
at com.google.inject.internal.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:46)
at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1092)
at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)
at com.google.inject.internal.SingletonScope$1.get(SingletonScope.java:194)
at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:41)
at com.google.inject.internal.SingleParameterInjector.inject(SingleParameterInjector.java:38)
at com.google.inject.internal.SingleParameterInjector.getAll(SingleParameterInjector.java:62)
at com.google.inject.internal.ProviderMethod$Factory.provision(ProviderMethod.java:402)
at com.google.inject.internal.ProviderMethod$Factory.get(ProviderMethod.java:376)
at com.google.inject.internal.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:46)
at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1092)
at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)
at com.google.inject.internal.SingletonScope$1.get(SingletonScope.java:194)
at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:41)
at com.google.inject.internal.SingleParameterInjector.inject(SingleParameterInjector.java:38)
at com.google.inject.internal.SingleParameterInjector.getAll(SingleParameterInjector.java:62)
at com.google.inject.internal.ConstructorInjector.provision(ConstructorInjector.java:110)
at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:90)
at com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:268)
at com.google.inject.internal.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:46)
at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1092)
at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)
at com.google.inject.internal.SingletonScope$1.get(SingletonScope.java:194)
at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:41)
at com.google.inject.internal.FactoryProxy.get(FactoryProxy.java:56)
at com.google.inject.internal.InternalInjectorCreator$1.call(InternalInjectorCreator.java:205)
at com.google.inject.internal.InternalInjectorCreator$1.call(InternalInjectorCreator.java:199)
at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1085)
at com.google.inject.internal.InternalInjectorCreator.loadEagerSingletons(InternalInjectorCreator.java:199)
at com.google.inject.internal.InternalInjectorCreator.injectDynamically(InternalInjectorCreator.java:180)
at com.google.inject.internal.InternalInjectorCreator.build(InternalInjectorCreator.java:110)
at com.google.inject.Guice.createInjector(Guice.java:99)
at org.jclouds.ContextBuilder.buildInjector(ContextBuilder.java:405)
at org.jclouds.ContextBuilder.buildInjector(ContextBuilder.java:328)
at org.jclouds.ContextBuilder.buildApi(ContextBuilder.java:651)
at org.jclouds.ContextBuilder.buildApi(ContextBuilder.java:643)
at com.valooto.storage.StorageManagerRackspaceImp.<init>(StorageManagerRackspaceImp.java:67)
at com.valooto.storage.StorageSingleton.<init>(StorageSingleton.java:20)
at com.valooto.storage.StorageSingleton.<init>(StorageSingleton.java:6)
at com.valooto.storage.StorageSingleton$Loader.<clinit>(StorageSingleton.java:11)
at com.valooto.storage.StorageSingleton.getInstance(StorageSingleton.java:31)
at controllers.UserManagementController.uploadProfileImage(UserManagementController.java:306)
at router.Routes$$anonfun$routes$1$$anonfun$applyOrElse$61$$anonfun$apply$61.apply(Routes.scala:5897)
at router.Routes$$anonfun$routes$1$$anonfun$applyOrElse$61$$anonfun$apply$61.apply(Routes.scala:5897)
at play.core.routing.HandlerInvokerFactory$$anon$4.resultCall(HandlerInvoker.scala:157)
at play.core.routing.HandlerInvokerFactory$$anon$4.resultCall(HandlerInvoker.scala:156)
at play.core.routing.HandlerInvokerFactory$JavaActionInvokerFactory$$anon$14$$anon$3$$anon$1.invocation(HandlerInvoker.scala:136)
at play.core.j.JavaAction$$anon$1.call(JavaAction.scala:73)
at play.http.HttpRequestHandler$1.call(HttpRequestHandler.java:54)
at play.mvc.Security$AuthenticatedAction.call(Security.java:53)
at com.valooto.utils.security.CorsComposition$CorsAction.call(CorsComposition.java:87)
at play.core.j.JavaAction$$anonfun$7.apply(JavaAction.scala:108)
at play.core.j.JavaAction$$anonfun$7.apply(JavaAction.scala:108)
at scala.concurrent.impl.Future$PromiseCompletingRunnable.liftedTree1$1(Future.scala:24)
at scala.concurrent.impl.Future$PromiseCompletingRunnable.run(Future.scala:24)
at play.core.j.HttpExecutionContext$$anon$2.run(HttpExecutionContext.scala:56)
at play.api.libs.iteratee.Execution$trampoline$.execute(Execution.scala:70)
at play.core.j.HttpExecutionContext.execute(HttpExecutionContext.scala:48)
at scala.concurrent.impl.Future$.apply(Future.scala:31)
at scala.concurrent.Future$.apply(Future.scala:492)
at play.core.j.JavaAction.apply(JavaAction.scala:108)
at play.api.mvc.Action$$anonfun$apply$2$$anonfun$apply$5$$anonfun$apply$6.apply(Action.scala:112)
at play.api.mvc.Action$$anonfun$apply$2$$anonfun$apply$5$$anonfun$apply$6.apply(Action.scala:112)
at play.utils.Threads$.withContextClassLoader(Threads.scala:21)
at play.api.mvc.Action$$anonfun$apply$2$$anonfun$apply$5.apply(Action.scala:111)
at play.api.mvc.Action$$anonfun$apply$2$$anonfun$apply$5.apply(Action.scala:110)
at scala.Option.map(Option.scala:146)
at play.api.mvc.Action$$anonfun$apply$2.apply(Action.scala:110)
at play.api.mvc.Action$$anonfun$apply$2.apply(Action.scala:103)
at scala.concurrent.Future$$anonfun$flatMap$1.apply(Future.scala:251)
at scala.concurrent.Future$$anonfun$flatMap$1.apply(Future.scala:249)
at scala.concurrent.impl.CallbackRunnable.run(Promise.scala:32)
at akka.dispatch.BatchingExecutor$AbstractBatch.processBatch(BatchingExecutor.scala:55)
at akka.dispatch.BatchingExecutor$BlockableBatch$$anonfun$run$1.apply$mcV$sp(BatchingExecutor.scala:91)
at akka.dispatch.BatchingExecutor$BlockableBatch$$anonfun$run$1.apply(BatchingExecutor.scala:91)
at akka.dispatch.BatchingExecutor$BlockableBatch$$anonfun$run$1.apply(BatchingExecutor.scala:91)
at scala.concurrent.BlockContext$.withBlockContext(BlockContext.scala:72)
at akka.dispatch.BatchingExecutor$BlockableBatch.run(BatchingExecutor.scala:90)
at akka.dispatch.TaskInvocation.run(AbstractDispatcher.scala:39)
at akka.dispatch.ForkJoinExecutorConfigurator$AkkaForkJoinTask.exec(AbstractDispatcher.scala:415)
at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260)
at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339)
at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979)
at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)