Page 1 of 1

Start-up error when migrating from 25.0 to 25.1

Posted: Thu Apr 06, 2023 12:26 pm
by Johann
Hello,

When I upgraded web-author-component from 25.0.0.0 to 25.1.0.0, I cannot start up web author.

I get this error:

Code: Select all

Stack trace of not completed getInstance()
java.lang.Exception
	at ro.sync.exml.options.Options.getInstance(Unknown Source)
	at ro.sync.exml.options.Options.getInstance(Unknown Source)
	at ro.sync.ecss.extensions.api.webapp.WebappAuthorDocumentFactory.init(Unknown Source)
	at ro.sync.ecss.extensions.api.webapp.WebappAuthorDocumentFactory.setOptions(Unknown Source)
	at ro.sync.servlet.StartupServlet.setFactoryOptions(StartupServlet.java:590)
	at ro.sync.servlet.StartupServlet.loadOptions(StartupServlet.java:575)
	at ro.sync.servlet.StartupServlet.prepareWebappFactory(StartupServlet.java:275)
	at ro.sync.servlet.StartupServlet.contextInitialized(StartupServlet.java:844)
	at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4686)
	at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5147)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
	at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:717)
	at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:690)
	at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:705)
	at org.apache.catalina.startup.HostConfig.manageApp(HostConfig.java:1727)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:288)
	at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819)
	at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801)
	at org.apache.catalina.mbeans.MBeanFactory.createStandardContext(MBeanFactory.java:456)
	at org.apache.catalina.mbeans.MBeanFactory.createStandardContext(MBeanFactory.java:405)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:288)
	at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819)
	at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801)
	at com.sun.jmx.remote.security.MBeanServerAccessController.invoke(MBeanServerAccessController.java:468)
	at javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1468)
	at javax.management.remote.rmi.RMIConnectionImpl.access$300(RMIConnectionImpl.java:76)
	at javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1309)
	at java.security.AccessController.doPrivileged(Native Method)
	at javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1408)
	at javax.management.remote.rmi.RMIConnectionImpl.invoke(RMIConnectionImpl.java:829)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:357)
	at sun.rmi.transport.Transport$1.run(Transport.java:200)
	at sun.rmi.transport.Transport$1.run(Transport.java:197)
	at java.security.AccessController.doPrivileged(Native Method)
	at sun.rmi.transport.Transport.serviceCall(Transport.java:196)
	at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:573)
	at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:834)
	at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:688)
	at java.security.AccessController.doPrivileged(Native Method)
	at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:687)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at java.lang.Thread.run(Thread.java:748)
Stack trace of current getInstance()
java.lang.Exception
	at ro.sync.exml.options.Options.getInstance(Unknown Source)
	at ro.sync.exml.options.Options.getInstance(Unknown Source)
	at ro.sync.servlet.datastore.guava.GuavaDatastoreFactory.createDocumentDatastore(GuavaDatastoreFactory.java:86)
	at ro.sync.servlet.ServletDocumentModelCache.<init>(ServletDocumentModelCache.java:121)
	at ro.sync.servlet.ServletDocumentModelCache.<init>(ServletDocumentModelCache.java:113)
	at ro.sync.servlet.ServletDocumentModelCache.<clinit>(ServletDocumentModelCache.java:60)
	at ro.sync.servlet.StartupServlet.contextDestroyed(StartupServlet.java:1185)
	at org.apache.catalina.core.StandardContext.listenerStop(StandardContext.java:4732)
	at org.apache.catalina.core.StandardContext.stopInternal(StandardContext.java:5397)
	at org.apache.catalina.util.LifecycleBase.stop(LifecycleBase.java:257)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:187)
	at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:717)
	at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:690)
	at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:705)
	at org.apache.catalina.startup.HostConfig.manageApp(HostConfig.java:1727)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:288)
	at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819)
	at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801)
	at org.apache.catalina.mbeans.MBeanFactory.createStandardContext(MBeanFactory.java:456)
	at org.apache.catalina.mbeans.MBeanFactory.createStandardContext(MBeanFactory.java:405)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:288)
	at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819)
	at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801)
	at com.sun.jmx.remote.security.MBeanServerAccessController.invoke(MBeanServerAccessController.java:468)
	at javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1468)
	at javax.management.remote.rmi.RMIConnectionImpl.access$300(RMIConnectionImpl.java:76)
	at javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1309)
	at java.security.AccessController.doPrivileged(Native Method)
	at javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1408)
	at javax.management.remote.rmi.RMIConnectionImpl.invoke(RMIConnectionImpl.java:829)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:357)
	at sun.rmi.transport.Transport$1.run(Transport.java:200)
	at sun.rmi.transport.Transport$1.run(Transport.java:197)
	at java.security.AccessController.doPrivileged(Native Method)
	at sun.rmi.transport.Transport.serviceCall(Transport.java:196)
	at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:573)
	at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:834)
	at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:688)
	at java.security.AccessController.doPrivileged(Native Method)
	at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:687)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at java.lang.Thread.run(Thread.java:748)

Do you have an idea about this error?

Thank you,

Johann

Re: Start-up error when migrating from 25.0 to 25.1

Posted: Thu Apr 06, 2023 2:11 pm
by cristi_talau
Hello,

This error appears while the application stops because it failed to start. I would expect to have more errors before this one in the logs. Can you share a larger snippet of the logs?

Best,
Cristian

Re: Start-up error when migrating from 25.0 to 25.1

Posted: Thu Apr 06, 2023 3:11 pm
by Johann
Hello,

Indeed, this seems to be the root cause:

Code: Select all

06-Apr-2023 14:05:15.320 GRAVE [RMI TCP Connection(2)-127.0.0.1] org.apache.catalina.core.StandardContext.listenerStart Exception lors de l'envoi de l'évènement contexte initialisé (context initialized) à l'instance de classe d'écoute (listener) [ro.sync.servlet.StartupServlet]
	java.lang.NoSuchMethodError: org.slf4j.Logger.debug(Ljava/lang/String;[Ljava/util/function/Supplier;)V
		at ro.sync.find.c.k.g(Unknown Source)
		at ro.sync.find.c.k.h(Unknown Source)
		at ro.sync.find.c.k.<init>(Unknown Source)
		at ro.sync.find.c.k.<init>(Unknown Source)
		at ro.sync.find.c.k.<init>(Unknown Source)
		at ro.sync.find.c.c.<init>(Unknown Source)
		at ro.sync.exml.editor.lg.<clinit>(Unknown Source)
		at ro.sync.svn.options.SVNFileTypeAssociation.getDefault(Unknown Source)
		at ro.sync.exml.options.x.j(Unknown Source)
		at ro.sync.exml.options.ld.j(Unknown Source)
		at ro.sync.exml.options.x.<init>(Unknown Source)
		at ro.sync.exml.options.ld.<init>(Unknown Source)
		at ro.sync.exml.options.ld$_b.<clinit>(Unknown Source)
		at ro.sync.exml.options.ld.l(Unknown Source)
		at ro.sync.exml.options.Options.init(Unknown Source)
		at ro.sync.exml.options.Options.init(Unknown Source)
		at ro.sync.exml.options.Options.getInstance(Unknown Source)
		at ro.sync.exml.options.Options.getInstance(Unknown Source)
		at ro.sync.ecss.extensions.api.webapp.WebappAuthorDocumentFactory.init(Unknown Source)
		at ro.sync.ecss.extensions.api.webapp.WebappAuthorDocumentFactory.setOptions(Unknown Source)
		at ro.sync.servlet.StartupServlet.setFactoryOptions(StartupServlet.java:590)
		at ro.sync.servlet.StartupServlet.loadOptions(StartupServlet.java:575)
		at ro.sync.servlet.StartupServlet.prepareWebappFactory(StartupServlet.java:275)
		at ro.sync.servlet.StartupServlet.contextInitialized(StartupServlet.java:844)
		at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4686)
		at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5147)
		at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
		at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:717)
		at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:690)
		at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:705)
		at org.apache.catalina.startup.HostConfig.manageApp(HostConfig.java:1727)
		at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
		at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
		at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
		at java.lang.reflect.Method.invoke(Method.java:498)
		at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:288)
		at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819)
		at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801)
		at org.apache.catalina.mbeans.MBeanFactory.createStandardContext(MBeanFactory.java:456)
		at org.apache.catalina.mbeans.MBeanFactory.createStandardContext(MBeanFactory.java:405)
		at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
		at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
		at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
		at java.lang.reflect.Method.invoke(Method.java:498)
		at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:288)
		at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819)
		at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801)
		at com.sun.jmx.remote.security.MBeanServerAccessController.invoke(MBeanServerAccessController.java:468)
		at javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1468)
		at javax.management.remote.rmi.RMIConnectionImpl.access$300(RMIConnectionImpl.java:76)
		at javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1309)
		at java.security.AccessController.doPrivileged(Native Method)
		at javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1408)
		at javax.management.remote.rmi.RMIConnectionImpl.invoke(RMIConnectionImpl.java:829)
		at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
		at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
		at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
		at java.lang.reflect.Method.invoke(Method.java:498)
		at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:357)
		at sun.rmi.transport.Transport$1.run(Transport.java:200)
		at sun.rmi.transport.Transport$1.run(Transport.java:197)
		at java.security.AccessController.doPrivileged(Native Method)
		at sun.rmi.transport.Transport.serviceCall(Transport.java:196)
		at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:573)
		at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:834)
		at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:688)
		at java.security.AccessController.doPrivileged(Native Method)
		at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:687)
		at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
		at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
		at java.lang.Thread.run(Thread.java:748)
Regards,

Johann

Re: Start-up error when migrating from 25.0 to 25.1

Posted: Fri Apr 07, 2023 2:14 pm
by cristi_talau
Hello,

The error is appears because Web Author is distributed with a patched version of Slf4j. Your Web Author Component WAR it seems to contain the original version of slf4j library. Can you check the WEB-INF/lib folder of the resulting WAR to see if it contains a slf4j.jar library. If yes, you should first try to run mvn clean to avoid having JARs from an older version of Web Author in the target folder, then build the WAR again.

If the problem persists, look at the customizations you made and make sure they do not add a dependency on slf4j.

Best,
Cristian

Re: Start-up error when migrating from 25.0 to 25.1

Posted: Fri Apr 07, 2023 6:19 pm
by Johann
Hello,

Indeed, the war did include the slf4j-api lib, it worked with version 25.0 but it is no longer the case with version 25.1.
By excluding this lib from the war, I can start Author web again.

Thank you,

Johann