Uploaded image for project: 'jclouds'
  1. jclouds
  2. JCLOUDS-1498

Upgrade to recent Guice version

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Resolved
    • Critical
    • Resolution: Fixed
    • 2.1.1, 2.1.2
    • 2.3.0
    • jclouds-core

    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)

      Attachments

        Activity

          People

            gaul Andrew Gaul
            sharonbn Sharon Ben Asher
            Votes:
            1 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Time Tracking

                Estimated:
                Original Estimate - Not Specified
                Not Specified
                Remaining:
                Remaining Estimate - 0h
                0h
                Logged:
                Time Spent - 0.5h
                0.5h