5.3.83 - erreur de classe non définie bloque l’instanciation du blobStore (jcloud)

Request description

Suite à l’upgrade en 5.3.83, j’ai une régression sur la connectivité à nos bockets GCS via la lib intégrée jcloud. Une erreur de classe non définie bloque l’instanciation du blobStore hébergeant la connexion à la bucket.

Le même code fonctionnait avant l’upgrade (il s’agit d’un traitement d’export quotidien).

2026-02-10 22:08:28,865|SIMPLICITE|ERROR||http://bca-68521-cron-7f476dcbfd-9g54r:8080||ERROR|system|com.simplicite.util.ObjectHooks|postLoad||Event: Implementation error in the postLoad hook of object GcsTransit
    java.lang.NoClassDefFoundError: Could not initialize class com.google.inject.Scopes
     at com.google.inject.internal.InjectorShell$RootModule.configure(InjectorShell.java:340)
     at com.google.inject.spi.Elements$RecordingBinder.install(Elements.java:426)
     at com.google.inject.spi.Elements.getElements(Elements.java:113)
     at com.google.inject.internal.InjectorShell$Builder.build(InjectorShell.java:160)
     at com.google.inject.internal.InternalInjectorCreator.build(InternalInjectorCreator.java:107)
     at com.google.inject.Guice.createInjector(Guice.java:87)
     at org.jclouds.ContextBuilder.buildInjector(ContextBuilder.java:412)
     at org.jclouds.ContextBuilder.buildInjector(ContextBuilder.java:329)
     at org.jclouds.ContextBuilder.buildView(ContextBuilder.java:622)
     at org.jclouds.ContextBuilder.buildView(ContextBuilder.java:602)
     at com.simplicite.objects.RenaultGCS.GcsDocument.postLoad(GcsDocument.java:80)

Voici le code en question :

public class GcsDocument extends ObjectService {
	private static final long serialVersionUID = 1L;

	protected transient JSONObject config = null;

	private BlobStoreContext blobStoreContext = null;
	protected BlobStore blobStore = null;
	private ApiMetadata apiMetadata = null;
	private Supplier<Credentials> credentialSupplier = null;

	public static final Map<String, ApiMetadata> allApis = Maps.uniqueIndex(Apis.viewableAs(BlobStoreContext.class), Apis.idFunction());
	public static final Map<String, ProviderMetadata> appProviders = Maps.uniqueIndex(Providers.viewableAs(BlobStoreContext.class), Providers.idFunction());
	public static final Set<String> allKeys = ImmutableSet.copyOf(Iterables.concat(appProviders.keySet(), allApis.keySet()));

	@Override
	public void postLoad() {
		try {
			if (this.config == null) {
				try {
					this.config = merge(
						new JSONObject()
							.put("provider", "google-cloud-storage")
							.put("bucket", rlog(getGrant().getParameter("GCS_BUCKET_NAME", System.getenv("GCS_BUCKET_NAME")), "postLoad", "GCS_BUCKET_NAME as bucket", this, 1))
							.put("identity", rlog(new JSONObject(getGrant().getParameter("GCS_BUCKET_CREDENTIALS", System.getenv("GCS_BUCKET_CREDENTIALS"))).getString("client_email"), "postLoad", "GCS_BUCKET_CREDENTIALS.client_email as identity", this, 1))
							.put("credentials", rlog(getGrant().getParameter("GCS_BUCKET_CREDENTIALS", System.getenv("GCS_BUCKET_CREDENTIALS")), "postLoad", "GCS_BUCKET_CREDENTIALS as credentials", this, 1)),
						new JSONObject(rlog(this.getSearchSpec(), "postLoad", "getSearchSpec", this, 1))
					);
					this.credentialSupplier = new GoogleCredentialsFromJson(this.config.getString("credentials"));
					// Properties overrides = new Properties();
					this.blobStoreContext = ContextBuilder.newBuilder(this.config.getString("provider"))
						.credentials(this.config.getString("identity"), credentialSupplier.get().credential)
						.buildView(BlobStoreContext.class);
					this.apiMetadata = this.blobStoreContext.unwrap().getProviderMetadata().getApiMetadata();
					this.blobStore = this.blobStoreContext.getBlobStore();
				}
				catch (Exception e) {
					this.config = null;
					this.blobStoreContext = null;
					this.blobStore = null;
					throw e;
				}
			}
			this.setLimit(false);
			this.setSearchLimit((int)this.getLimit());
		}
		catch (Exception e) {
			AppLog.error("EXCEPTION CAUGHT while loading google-cloud-storage service configuration", (Throwable)e, this.getGrant());
		}
		try {
			ByteSource payload = ByteSource.wrap("".getBytes(Charsets.UTF_8));
			Blob blob = this.blobStore.blobBuilder(this.config.getString("root")).payload(payload).contentLength(payload.size()).build();
			this.blobStore.putBlob(this.config.getString("bucket"), blob);
		} catch (IOException e) {
			error("postLoad", "Cannot create ROOT FOLDER "+this.config.getString("root"), e, this);
		}
	}
...

/health

[Platform]
Status=OK
Version=5.3.83
BuiltOn=2026-02-06 10:26
Git=5.3/462dc56d02def0b3529e9311c484fa229e1a3c01
Encoding=UTF-8
EndpointIP=100.88.18.238
EndpointURL=http://bca-68521-cron-7f476dcbfd-9g54r:8080
TimeZone=Europe/Paris
SystemDate=2026-02-10 22:18:23

Les libs JClouds ont été upgradées de 2.5.0 à 2.7.0 (iso v6) dans le cadre de la 5.3.82,
Y-a-t il ce même pb avec des instances v6 ?

En première analyse le JAR guice qui contient la classe en question est bien présente dans l’image Docker de la 5.3.83:

Est-ce qu’il y aurait une customisation de l’image ajoutant un JAR (genre un JAR “bundle”) susceptible de contenir une autre version des classes de la lib en question ?

Bonjour David,

merci beaucoup pour ton retour rapide.

Oui je confirme que le problème n’est pas présent sur la 6.2.22.

Non a priori aucun bundle n’a été ajouté sur la configuration en 5.3.83.

C’est étrange car ce sont désormais exactement les mêmes libs JClouds en 5.3 et en 6.2 (et en 6.3 & 7.0 d’ailleurs), i.e. la version à jour 2.7.0

Est-ce que le code appelant est strictement le même lors de tes tests v5 vs v6 ?

Mêmes imports de Shared code “Server lib”.

Code quasi identique sauf ajustements induits par les dépréciations sur la 6.2.22 (en prévision de l’upgrade 6.3).

12c12
< import com.google.common.base.Charsets;
---
> import java.nio.charset.StandardCharsets;
56c56
<       private ApiMetadata apiMetadata = null;
---
>       @SuppressWarnings("unused") private ApiMetadata apiMetadata = null;
98c98
<                       ByteSource payload = ByteSource.wrap("".getBytes(Charsets.UTF_8));
---
>                       ByteSource payload = ByteSource.wrap("".getBytes(StandardCharsets.UTF_8 ));

Ok ces différences ne doivent pas avoir d’impact mais par acquis de conscience serait il possible de les reporter en 5.3 car les images v5 et v6 utilisent la même JVM (17) et, dans leurs révisions à jour, embarquent les mêmes libs JClouds (2.7.0). Le code devrait donc pouvoir être iso.

J’ai aligné le code et le problème subsiste.

Voici la stack trace complète (j’avais coupé un peu court).

L’exception la plus basse dans les couches est `Caused by: java.lang.ExceptionInInitializerError: Exception java.lang.NoClassDefFoundError: jakarta/inject/Provider [in thread “http-nio-8443-exec-8”]`.

2026-02-11 11:14:06,290|SIMPLICITE|ERROR||http://bca-68521-cron-7f476dcbfd-9g54r:8080||ERROR|system|com.simplicite.util.ObjectHooks|postLoad||Event: Implementation error in the postLoad hook of object GcsDocument
    java.lang.NoClassDefFoundError: Could not initialize class com.google.inject.Scopes
     at com.google.inject.internal.InjectorShell$RootModule.configure(InjectorShell.java:340)
     at com.google.inject.spi.Elements$RecordingBinder.install(Elements.java:426)
     at com.google.inject.spi.Elements.getElements(Elements.java:113)
     at com.google.inject.internal.InjectorShell$Builder.build(InjectorShell.java:160)
     at com.google.inject.internal.InternalInjectorCreator.build(InternalInjectorCreator.java:107)
     at com.google.inject.Guice.createInjector(Guice.java:87)
     at org.jclouds.ContextBuilder.buildInjector(ContextBuilder.java:412)
     at org.jclouds.ContextBuilder.buildInjector(ContextBuilder.java:329)
     at org.jclouds.ContextBuilder.buildView(ContextBuilder.java:622)
     at org.jclouds.ContextBuilder.buildView(ContextBuilder.java:602)
     at com.simplicite.objects.RenaultGCS.GcsDocument.postLoad(GcsDocument.java:82)
     at com.simplicite.util.ObjectHooks.postLoad(ObjectHooks.java:29)
     at com.simplicite.util.engine.ObjectLoader.load(ObjectLoader.java:105)
     at com.simplicite.util.engine.ObjectDirect.init(ObjectDirect.java:50)
     at com.simplicite.util.ObjectDB.init(ObjectDB.java:247)
     at com.simplicite.util.ObjectDB.load(ObjectDB.java:225)
     at com.simplicite.util.ObjectService.load(ObjectService.java:34)
     at com.simplicite.util.engine.CoreCache.instantiateObject(CoreCache.java:4320)
     at com.simplicite.util.engine.CoreCache.getObject(CoreCache.java:4249)
     at com.simplicite.util.engine.GrantManager.getObject(GrantManager.java:84)
     at com.simplicite.util.engine.GrantDirect.getObject(GrantDirect.java:636)
     at com.simplicite.util.Grant.getObject(Grant.java:2419)
     at com.simplicite.util.Grant.getMainObject(Grant.java:2462)
     at com.simplicite.util.Constraint.generateResource(Constraint.java:988)
     at com.simplicite.util.tools.JSONTool.objectMetaDataToJson(JSONTool.java:1739)
     at com.simplicite.util.tools.JSONTool.metadata(JSONTool.java:3054)
     at com.simplicite.webapp.ObjectJson.metadata(ObjectJson.java:165)
     at com.simplicite.webapp.tools.JSONServletTool.businessObjectService(JSONServletTool.java:624)
     at com.simplicite.webapp.servlets.AbstractJSONServlet.process(AbstractJSONServlet.java:168)
     at com.simplicite.webapp.servlets.AbstractJSONServlet.service(AbstractJSONServlet.java:127)
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)
     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:197)
     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:142)
     at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:166)
     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:142)
     at com.simplicite.webapp.filters.RewriteFilter.doFilter(RewriteFilter.java:68)
     at com.simplicite.webapp.filters.AbstractFilter.doFilter(AbstractFilter.java:49)
     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:166)
     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:142)
     at com.simplicite.webapp.filters.AuthMethodFilter.doFilter(AuthMethodFilter.java:221)
     at com.simplicite.webapp.filters.AbstractFilter.doFilter(AbstractFilter.java:49)
     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:166)
     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:142)
     at com.simplicite.webapp.filters.HTTPHeadersFilter.doFilter(HTTPHeadersFilter.java:39)
     at com.simplicite.webapp.filters.AbstractFilter.doFilter(AbstractFilter.java:49)
     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:166)
     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:142)
     at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:154)
     at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:88)
     at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:491)
     at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
     at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:83)
     at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:643)
     at org.apache.catalina.valves.RemoteIpValve.invoke(RemoteIpValve.java:763)
     at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:72)
     at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:344)
     at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:398)
     at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)
     at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:939)
     at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1832)
     at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)
     at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:973)
     at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:491)
     at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63)
     at java.base/java.lang.Thread.run(Thread.java:840)
    Caused by: java.lang.ExceptionInInitializerError: Exception java.lang.NoClassDefFoundError: jakarta/inject/Provider [in thread "http-nio-8443-exec-8"]
     at java.base/java.lang.ClassLoader.defineClass1(Native Method)
     at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1017)
     at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:150)
     at org.apache.catalina.loader.WebappClassLoaderBase.findClassInternal(WebappClassLoaderBase.java:2342)
     at org.apache.catalina.loader.WebappClassLoaderBase.findClassInternal(WebappClassLoaderBase.java:2212)
     at org.apache.catalina.loader.WebappClassLoaderBase.findClass(WebappClassLoaderBase.java:821)
     at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1312)
     at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1160)
     at com.google.inject.Scopes.<clinit>(Scopes.java:37)
     at com.google.inject.internal.InjectorShell$RootModule.configure(InjectorShell.java:340)
     at com.google.inject.spi.Elements$RecordingBinder.install(Elements.java:426)
     at com.google.inject.spi.Elements.getElements(Elements.java:113)
     at com.google.inject.internal.InjectorShell$Builder.build(InjectorShell.java:160)
     at com.google.inject.internal.InternalInjectorCreator.build(InternalInjectorCreator.java:107)
     at com.google.inject.Guice.createInjector(Guice.java:87)
     at org.jclouds.ContextBuilder.buildInjector(ContextBuilder.java:412)
     at org.jclouds.ContextBuilder.buildInjector(ContextBuilder.java:329)
     at org.jclouds.ContextBuilder.buildView(ContextBuilder.java:622)
     at org.jclouds.ContextBuilder.buildView(ContextBuilder.java:602)
     at com.simplicite.objects.RenaultGCS.GcsDocument.postLoad(GcsDocument.java:80)
     at com.simplicite.util.ObjectHooks.postLoad(ObjectHooks.java:29)
     at com.simplicite.util.engine.ObjectLoader.load(ObjectLoader.java:105)
     at com.simplicite.util.engine.ObjectDirect.init(ObjectDirect.java:50)
     at com.simplicite.util.ObjectDB.init(ObjectDB.java:247)
     at com.simplicite.util.ObjectDB.load(ObjectDB.java:225)
     at com.simplicite.util.ObjectService.load(ObjectService.java:34)
     at com.simplicite.util.engine.CoreCache.instantiateObject(CoreCache.java:4320)
     at com.simplicite.util.engine.CoreCache.getObject(CoreCache.java:4249)
     at com.simplicite.util.engine.GrantManager.getObject(GrantManager.java:84)
     at com.simplicite.util.engine.GrantDirect.getObject(GrantDirect.java:636)
     at com.simplicite.util.Grant.getObject(Grant.java:2419)
     at com.simplicite.util.Grant.getMainObject(Grant.java:2462)
     at com.simplicite.util.Constraint.generateScript(Constraint.java:832)
     at com.simplicite.util.ObjectDB.setConstraint(ObjectDB.java:1732)
     at com.simplicite.util.engine.ObjectLoader.loadConstraints(ObjectLoader.java:2565)
     at com.simplicite.util.engine.ObjectLoader.loadFromDB(ObjectLoader.java:993)
     at com.simplicite.util.engine.ObjectLoader.getClone(ObjectLoader.java:128)
     at com.simplicite.util.engine.ObjectLoader.load(ObjectLoader.java:90)
     at com.simplicite.util.engine.ObjectDirect.init(ObjectDirect.java:50)
     at com.simplicite.util.ObjectDB.init(ObjectDB.java:247)
     at com.simplicite.util.ObjectDB.load(ObjectDB.java:225)
     at com.simplicite.util.ObjectService.load(ObjectService.java:34)
     at com.simplicite.util.engine.CoreCache.instantiateObject(CoreCache.java:4320)
     at com.simplicite.util.engine.CoreCache.getObject(CoreCache.java:4249)
     at com.simplicite.util.engine.GrantManager.getObject(GrantManager.java:84)
     at com.simplicite.util.engine.GrantDirect.getObject(GrantDirect.java:636)
     at com.simplicite.util.Grant.getObject(Grant.java:2419)
     at com.simplicite.webapp.ObjectJson.borrowObject(ObjectJson.java:103)
     at com.simplicite.webapp.ObjectJson.metadata(ObjectJson.java:156)
     ... 39 more

En regardant de plus près les différences de libs entre 5.3 et 6.2, je vois cette différence douteuse sur une lib “inject” (encore un micmac entre javax et jakarta …) ayant peut être un lien avec la classe com.google.inject.Scopes de l’erreur:

Je vais builder une image 5.3.84 “preview” (tag 5-preview) après avoir résolu, si possible, cet écart.

Je te tiens en courant quand c’est disponible

1 Like

L’image “preview” de la v5 registry.simplicite.io/platform:5-preview est disponible.

Dis moi si ça résout le pb, si oui la 5.3.84 sera releasée dans la foulée.

Merci David,

Désolé pour mon retour tardif. J’ai dû adapter mon pipeline pour prendre en charge la baseline 5-preview. C’est en cours…

[Platform]
Status=OK
Version=5.3.84-preview
BuiltOn=2026-02-11 12:09
Git=5.3/53b6d16e317b79c048472496f04bff36dff24245
Encoding=UTF-8
EndpointIP=100.88.240.14
EndpointURL=http://bca-68521-addimports-5c8f6b7455-gb66b:8080
TimeZone=Europe/Paris
SystemDate=2026-02-11 14:36:20

:downcast_face_with_sweat:

2026-02-11 14:33:34,165|SIMPLICITE|INFO||http://bca-68521-addimports-5c8f6b7455-gb66b:8080||INFO|system|com.simplicite.util.engine.Interface|postImportModule||Post import module: generate indexes GcsDocument
2026-02-11 14:33:35,394|SIMPLICITE|ERROR||http://bca-68521-addimports-5c8f6b7455-gb66b:8080||ERROR|system|com.simplicite.objects.RenaultGCS.GcsDocument|postLoad||Exception:Unable to create injector, see the fo
llowing errors:

1) [Guice/ErrorInCustomProvider]: NoSuchMethodError: 'void ConstructorConstructor.<init>(Map, boolean, List)'
  at GsonModule.provideGson(GsonModule.java:103)
      \_ installed by: GoogleCloudStorageHttpApiModule -> GsonModule
  at GsonWrapper.<init>(GsonWrapper.java:38)
      \_ for 1st parameter
  at GsonWrapper.class(GsonWrapper.java:32)
  while locating GsonWrapper
  while locating Json

Learn more:
  https://github.com/google/guice/wiki/ERROR_IN_CUSTOM_PROVIDER
Caused by: NoSuchMethodError: 'void ConstructorConstructor.<init>(Map, boolean, List)'
        at GsonModule.provideGson(GsonModule.java:136)
        at GsonModule$$FastClassByGuice$$3cdb2b.GUICE$TRAMPOLINE(<generated>)
        at GsonModule$$FastClassByGuice$$3cdb2b.apply(<generated>)
        at ProviderMethod$FastClassProviderMethod.doProvision(ProviderMethod.java:260)
        at ProviderMethod.doProvision(ProviderMethod.java:171)
        at InternalProviderInstanceBindingImpl$CyclicFactory.provision(InternalProviderInstanceBindingImpl.java:185)
        at InternalProviderInstanceBindingImpl$CyclicFactory.get(InternalProviderInstanceBindingImpl.java:162)
        at ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)
        at SingletonScope$1.get(SingletonScope.java:169)
        at InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:45)
        at SingleParameterInjector.inject(SingleParameterInjector.java:40)
        at SingleParameterInjector.getAll(SingleParameterInjector.java:60)
        at ConstructorInjector.provision(ConstructorInjector.java:113)
        at ConstructorInjector.construct(ConstructorInjector.java:91)
        at ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:300)
        at ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)
        at SingletonScope$1.get(SingletonScope.java:169)
        at InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:45)
        at FactoryProxy.get(FactoryProxy.java:60)
        at InternalInjectorCreator.loadEagerSingletons(InternalInjectorCreator.java:213)
        at InternalInjectorCreator.injectDynamically(InternalInjectorCreator.java:186)
        at InternalInjectorCreator.build(InternalInjectorCreator.java:113)
        at Guice.createInjector(Guice.java:87)
        at ContextBuilder.buildInjector(ContextBuilder.java:412)
        at ContextBuilder.buildInjector(ContextBuilder.java:329)
        at ContextBuilder.buildView(ContextBuilder.java:622)
        at ContextBuilder.buildView(ContextBuilder.java:602)
        at RenaultGCS.GcsDocument.postLoad(GcsDocument.java:80)
        at ObjectHooks.postLoad(ObjectHooks.java:29)
        at ObjectLoader.load(ObjectLoader.java:105)
        at ObjectDirect.init(ObjectDirect.java:50)
        at ObjectDB.init(ObjectDB.java:247)
        at ObjectDB.load(ObjectDB.java:225)
        at ObjectService.load(ObjectService.java:34)
        at CoreCache.instantiateObject(CoreCache.java:4320)
        at CoreCache.getObject(CoreCache.java:4249)
        at GrantManager.getObject(GrantManager.java:84)
        at GrantDirect.getObject(GrantDirect.java:636)
        at Grant.getObject(Grant.java:2419)
        at Grant.getTmpObject(Grant.java:2551)
        at SystemTool$1.run(SystemTool.java:3076)
        at SystemTool.generateIndexes(SystemTool.java:3099)
        at Interface.postImportModule(Interface.java:1732)
        at IntegrationDirect.postImportModule(IntegrationDirect.java:497)
        at Integration.postImportModule(Integration.java:1859)
        at Platform.importBusinessModules(Platform.java:1368)
        at Platform.init(Platform.java:284)
        at ApplicationListener.contextInitialized(ApplicationListener.java:38)
        at StandardContext.listenerStart(StandardContext.java:4047)
        at StandardContext.startInternal(StandardContext.java:4489)
        at LifecycleBase.start(LifecycleBase.java:164)
        at ContainerBase.addChildInternal(ContainerBase.java:597)
        at ContainerBase.addChild(ContainerBase.java:569)
        at StandardHost.addChild(StandardHost.java:608)
        at HostConfig.deployDirectory(HostConfig.java:1171)
        at HostConfig$DeployDirectory.run(HostConfig.java:1880)
        at java.base/Executors$RunnableAdapter.call(Executors.java:539)
        at java.base/FutureTask.run(FutureTask.java:264)
        at InlineExecutorService.execute(InlineExecutorService.java:82)
        at java.base/AbstractExecutorService.submit(AbstractExecutorService.java:123)
        at HostConfig.deployDirectories(HostConfig.java:1082)
        at HostConfig.deployApps(HostConfig.java:467)
        at HostConfig.start(HostConfig.java:1576)
        at HostConfig.lifecycleEvent(HostConfig.java:309)
        at LifecycleBase.fireLifecycleEvent(LifecycleBase.java:109)
        at LifecycleBase.setStateInternal(LifecycleBase.java:389)
        at LifecycleBase.setState(LifecycleBase.java:336)
        at ContainerBase.startInternal(ContainerBase.java:774)
        at StandardHost.startInternal(StandardHost.java:726)
        at LifecycleBase.start(LifecycleBase.java:164)
        at ContainerBase$StartChild.call(ContainerBase.java:1201)
        at ContainerBase$StartChild.call(ContainerBase.java:1191)
        at java.base/FutureTask.run(FutureTask.java:264)
        at InlineExecutorService.execute(InlineExecutorService.java:82)
        at java.base/AbstractExecutorService.submit(AbstractExecutorService.java:145)
        at ContainerBase.startInternal(ContainerBase.java:747)
        at StandardEngine.startInternal(StandardEngine.java:209)
        at LifecycleBase.start(LifecycleBase.java:164)
        at StandardService.startInternal(StandardService.java:410)
        at LifecycleBase.start(LifecycleBase.java:164)
        at StandardServer.startInternal(StandardServer.java:872)
        at LifecycleBase.start(LifecycleBase.java:164)
        at Catalina.start(Catalina.java:736)
        at java.base/NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
        at java.base/DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/Method.invoke(Method.java:569)
        at Bootstrap.start(Bootstrap.java:342)
        at Bootstrap.main(Bootstrap.java:473)

2) [Guice/ErrorInCustomProvider]: NoSuchMethodError: 'void ConstructorConstructor.<init>(Map, boolean, List)'
  at GsonModule.provideGson(GsonModule.java:103)
      \_ installed by: GoogleCloudStorageHttpApiModule -> GsonModule
  while locating Gson

Learn more:
  https://github.com/google/guice/wiki/ERROR_IN_CUSTOM_PROVIDER
Caused by: NoSuchMethodError: 'void ConstructorConstructor.<init>(Map, boolean, List)'
        at GsonModule.provideGson(GsonModule.java:136)
        at GsonModule$$FastClassByGuice$$3cdb2b.GUICE$TRAMPOLINE(<generated>)
        at GsonModule$$FastClassByGuice$$3cdb2b.apply(<generated>)
        at ProviderMethod$FastClassProviderMethod.doProvision(ProviderMethod.java:260)
        at ProviderMethod.doProvision(ProviderMethod.java:171)
        at InternalProviderInstanceBindingImpl$CyclicFactory.provision(InternalProviderInstanceBindingImpl.java:185)
        at InternalProviderInstanceBindingImpl$CyclicFactory.get(InternalProviderInstanceBindingImpl.java:162)
        at ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)
        at SingletonScope$1.get(SingletonScope.java:169)
        at InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:45)
        at InternalInjectorCreator.loadEagerSingletons(InternalInjectorCreator.java:213)
        at InternalInjectorCreator.injectDynamically(InternalInjectorCreator.java:186)
        at InternalInjectorCreator.build(InternalInjectorCreator.java:113)
        at Guice.createInjector(Guice.java:87)
        at ContextBuilder.buildInjector(ContextBuilder.java:412)
        at ContextBuilder.buildInjector(ContextBuilder.java:329)
        at ContextBuilder.buildView(ContextBuilder.java:622)
        at ContextBuilder.buildView(ContextBuilder.java:602)
        at RenaultGCS.GcsDocument.postLoad(GcsDocument.java:80)
        at ObjectHooks.postLoad(ObjectHooks.java:29)
        at ObjectLoader.load(ObjectLoader.java:105)
        at ObjectDirect.init(ObjectDirect.java:50)
        at ObjectDB.init(ObjectDB.java:247)
        at ObjectDB.load(ObjectDB.java:225)
        at ObjectService.load(ObjectService.java:34)
        at CoreCache.instantiateObject(CoreCache.java:4320)
        at CoreCache.getObject(CoreCache.java:4249)
        at GrantManager.getObject(GrantManager.java:84)
        at GrantDirect.getObject(GrantDirect.java:636)
        at Grant.getObject(Grant.java:2419)
        at Grant.getTmpObject(Grant.java:2551)
        at SystemTool$1.run(SystemTool.java:3076)
        at SystemTool.generateIndexes(SystemTool.java:3099)
        at Interface.postImportModule(Interface.java:1732)
        at IntegrationDirect.postImportModule(IntegrationDirect.java:497)
        at Integration.postImportModule(Integration.java:1859)
        at Platform.importBusinessModules(Platform.java:1368)
        at Platform.init(Platform.java:284)
        at ApplicationListener.contextInitialized(ApplicationListener.java:38)
        at StandardContext.listenerStart(StandardContext.java:4047)
        at StandardContext.startInternal(StandardContext.java:4489)
        at LifecycleBase.start(LifecycleBase.java:164)
        at ContainerBase.addChildInternal(ContainerBase.java:597)
        at ContainerBase.addChild(ContainerBase.java:569)
        at StandardHost.addChild(StandardHost.java:608)
        at HostConfig.deployDirectory(HostConfig.java:1171)
...

Ok on a avancé d’un cran maintenant c’est la lib gson qui pose pb (2.8.9 en 5.3 vs 2.11.0 en 6.2.

De mémoire on ne peut pas l’upgrader à cause d’autres libs, je regarde et je te dis

1 Like

Effectivement, j’ai bypass la 5.3.82 :downcast_face_with_sweat:

Apparemment, ça semble très impactant… il y avait un autre enjeu que de s’aligner avec la v6 ?

C’était avant tout une histoire de sécurité sur une des libs jClouds suite à un audit mais de toute façon la vulnérabilité est toujours présente dans la version la plus à jour de jClouds 2.7.0, au final la lib vulnérable en question (celle du storage obsolète Openstack Swift) a été simplement supprimée en v7.

Plus généralement, suite à cet audit on a fait une dernière campagne de MAJ des libs sur les différentes branches maintenues v5 et v6 (en v7 on le fait au fil de l’eau), mais moins en v5 qu’en v6

Bref, si on ne trouve pas de compromis sur la lib gson on downgradera les libs jClouds à leur version d’avant upgrade = 2.5.0

Je viens de pousser une nouvelle image 5-preview avec la lib gson alignée sur celle présente en 6.2

Peux tu refaire le test ?
Merci d’avance

Ok merci, c’est en cours…

Cette fois ci ça fonctionne.

La connexion à la bucket et le service de search sont OK!

La 5.3.84 embarque quoi d’autre ?

Cf. la release note, rien de phénoménal à ce stade et je ne pense pas qu’il y ait d’autres choses dans les tuyaux, mais, pas le choix, là il faut releaser rapidement (= ce soir sauf avis contraire de l’équipe)

Ok merci.

Je guette la publication de la 5.3.84 :slight_smile: