Erreur Mise à jour

Bonjour la communauté, actuellement je t’utilise la version 6.0.3 d’axelor et comme je voulais profité des nouvelles fonctionnalités j’ai réalisé une mise à jour de l’application vers la version 6.1.7.
procédure de la mise à jour :

  • j’ai cloné la nouvelle version sur github
  • j’ai fait une copie de la base de donnée de la version 6.0.3
  • j’ai paramétré le fichier de config (application.properties)

quand je démarrage la nouvelle version de l’application il y’a pas de problème mais quand j’essaie d’accéder à l’interface web je n’arrive pas et j’ai cette erreur dans les logs

2022-03-25 10:41:32.094 INFO 26760 — [ost-startStop-1] com.axelor.web.AppInitializer : Ready to serve…
2022-03-25 10:42:06.892 DEBUG 26760 — [nio-8081-exec-2] com.axelor.rpc.Resource : Searching 'com.axelor.meta.db.MetaMenu’
2022-03-25 10:42:06.919 ERROR 26760 — [io-8081-exec-10] com.axelor.script.CompositeScriptHelper : Script error: config.app.isApp(‹ base ›) && config.app.getApp(‹ base ›).getEnterpriseCommunication()
java.lang.NullPointerException: Cannot invoke method getEnterpriseCommunication() on null object
** at org.codehaus.groovy.runtime.NullObject.invokeMethod(NullObject.java:91)**
** at org.codehaus.groovy.vmplugin.v7.IndyGuardsFiltersAndSignatures.invokeGroovyObjectInvoker(IndyGuardsFiltersAndSignatures.java:165)**
** at org.codehaus.groovy.vmplugin.v7.IndyInterface.selectMethod(IndyInterface.java:232)**
** at script1648201326808345474296.run(script1648201326808345474296.groovy:1)**
** at com.axelor.script.GroovyScriptHelper.eval(GroovyScriptHelper.java:144)**
** at com.axelor.script.CompositeScriptHelper.eval(CompositeScriptHelper.java:77)**
** at com.axelor.script.AbstractScriptHelper.eval(AbstractScriptHelper.java:84)**
** at com.axelor.script.AbstractScriptHelper.test(AbstractScriptHelper.java:48)**
** at com.axelor.meta.service.MetaService.test(MetaService.java:149)**
** at com.axelor.meta.service.MetaService.canShow(MetaService.java:124)**
** at com.axelor.meta.service.MetaService.filter(MetaService.java:177)**
** at com.axelor.meta.service.MetaService.getMenus(MetaService.java:441)**
** at com.axelor.meta.service.MetaService.getMenus(MetaService.java:270)**
** at com.axelor.web.service.ActionService.all(ActionService.java:62)**
** at com.axelor.web.service.ActionService$$EnhancerByGuice$$6e3a19da.CGLIB$all$2()**
** at com.axelor.web.service.ActionService$$EnhancerByGuice$$6e3a19da$$FastClassByGuice$$85164d8.invoke()**
** at com.google.inject.internal.cglib.proxy.$MethodProxy.invokeSuper(MethodProxy.java:228)**
** at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:76)**
** at com.axelor.rpc.ResponseInterceptor.invoke(ResponseInterceptor.java:67)**
** at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:78)**
** at com.google.inject.internal.InterceptorStackCallback.intercept(InterceptorStackCallback.java:54)**
** at com.axelor.web.service.ActionService$$EnhancerByGuice$$6e3a19da.all()**
** at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)**
** at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)**
** at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)**
** at java.lang.reflect.Method.invoke(Unknown Source)**
** at org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:140)**
** at org.jboss.resteasy.core.ResourceMethodInvoker.invokeOnTarget(ResourceMethodInvoker.java:294)**
** at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:248)**
** at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:235)**
** at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:398)**
** at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:205)**
** at org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.java:228)**
** at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:56)**
** at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:51)**
** at javax.servlet.http.HttpServlet.service(HttpServlet.java:764)**
** at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)**
** at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)**
** at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)**
** at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)**
** at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)**
** at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:89)**
** at com.axelor.db.tenants.AbstractTenantFilter.doFilter(AbstractTenantFilter.java:70)**
** at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82)**
** at org.apache.shiro.guice.web.SimpleFilterChain.doFilter(SimpleFilterChain.java:44)**
** at io.buji.pac4j.filter.SecurityFilter.lambda$doFilter$0(SecurityFilter.java:86)**
** at org.pac4j.core.engine.DefaultSecurityLogic.perform(DefaultSecurityLogic.java:140)**
** at com.axelor.auth.pac4j.AuthPac4jModule$AxelorSecurityFilter$1.perform(AuthPac4jModule.java:484)**
** at com.axelor.auth.pac4j.AuthPac4jModule$AxelorSecurityFilter$1.perform(AuthPac4jModule.java:468)**
** at io.buji.pac4j.filter.SecurityFilter.doFilter(SecurityFilter.java:84)**
** at org.apache.shiro.guice.web.SimpleFilterChain.doFilter(SimpleFilterChain.java:41)**
** at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)**
** at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365)**
** at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)**
** at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)**
** at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:387)**
** at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)**
** at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)**
** at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82)**
** at com.axelor.app.internal.AppFilter.doFilter(AppFilter.java:94)**
** at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82)**
** at com.google.inject.persist.PersistFilter.doFilter(PersistFilter.java:94)**
** at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82)**
** at com.axelor.db.tenants.AbstractTenantFilter.doFilter(AbstractTenantFilter.java:70)**
** at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82)**
** at com.axelor.web.servlet.CorsFilter.doFilter(CorsFilter.java:137)**
** at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82)**
** at com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:121)**
** at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:133)**
** at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)**
** at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)**
** at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:196)**
** at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)**
** at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:542)**
** at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135)**
** at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)**
** at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:698)**
** at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)**
** at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:364)**
** at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:624)**
** at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)**
** at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:831)**
** at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1673)**
** at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)**
** at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)**
** at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)**
** at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)**
** at java.lang.Thread.run(Unknown Source)**
2022-03-25 10:42:06.920 ERROR 26760 — [io-8081-exec-10] ActionService$$EnhancerByGuice$$6e3a19da : java.lang.NullPointerException: Cannot invoke method getEnterpriseCommunication() on null object
java.lang.IllegalArgumentException: java.lang.NullPointerException: Cannot invoke method getEnterpriseCommunication() on null object
** at com.axelor.script.AbstractScriptHelper.eval(AbstractScriptHelper.java:94)**
** at com.axelor.script.AbstractScriptHelper.test(AbstractScriptHelper.java:48)**
** at com.axelor.meta.service.MetaService.test(MetaService.java:149)**
** at com.axelor.meta.service.MetaService.canShow(MetaService.java:124)**
** at com.axelor.meta.service.MetaService.filter(MetaService.java:177)**
** at com.axelor.meta.service.MetaService.getMenus(MetaService.java:441)**
** at com.axelor.meta.service.MetaService.getMenus(MetaService.java:270)**
** at com.axelor.web.service.ActionService.all(ActionService.java:62)**
** at com.axelor.web.service.ActionService$$EnhancerByGuice$$6e3a19da.CGLIB$all$2()**
** at com.axelor.web.service.ActionService$$EnhancerByGuice$$6e3a19da$$FastClassByGuice$$85164d8.invoke()**
** at com.google.inject.internal.cglib.proxy.$MethodProxy.invokeSuper(MethodProxy.java:228)**
** at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:76)**
** at com.axelor.rpc.ResponseInterceptor.invoke(ResponseInterceptor.java:67)**
** at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:78)**
** at com.google.inject.internal.InterceptorStackCallback.intercept(InterceptorStackCallback.java:54)**
** at com.axelor.web.service.ActionService$$EnhancerByGuice$$6e3a19da.all()**
** at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)**
** at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)**
** at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)**
** at java.lang.reflect.Method.invoke(Unknown Source)**
** at org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:140)**
** at org.jboss.resteasy.core.ResourceMethodInvoker.invokeOnTarget(ResourceMethodInvoker.java:294)**
** at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:248)**
** at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:235)**
** at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:398)**
** at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:205)**
** at org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.java:228)**
** at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:56)**
** at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:51)**
** at javax.servlet.http.HttpServlet.service(HttpServlet.java:764)**
** at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)**
** at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)**
** at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)**
** at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)**
** at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)**
** at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:89)**
** at com.axelor.db.tenants.AbstractTenantFilter.doFilter(AbstractTenantFilter.java:70)**
** at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82)**
** at org.apache.shiro.guice.web.SimpleFilterChain.doFilter(SimpleFilterChain.java:44)**
** at io.buji.pac4j.filter.SecurityFilter.lambda$doFilter$0(SecurityFilter.java:86)**
** at org.pac4j.core.engine.DefaultSecurityLogic.perform(DefaultSecurityLogic.java:140)**
** at com.axelor.auth.pac4j.AuthPac4jModule$AxelorSecurityFilter$1.perform(AuthPac4jModule.java:484)**
** at com.axelor.auth.pac4j.AuthPac4jModule$AxelorSecurityFilter$1.perform(AuthPac4jModule.java:468)**
** at io.buji.pac4j.filter.SecurityFilter.doFilter(SecurityFilter.java:84)**
** at org.apache.shiro.guice.web.SimpleFilterChain.doFilter(SimpleFilterChain.java:41)**
** at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)**
** at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365)**
** at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)**
** at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)**
** at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:387)**
** at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)**
** at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)**
** at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82)**
** at com.axelor.app.internal.AppFilter.doFilter(AppFilter.java:94)**
** at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82)**
** at com.google.inject.persist.PersistFilter.doFilter(PersistFilter.java:94)**
** at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82)**
** at com.axelor.db.tenants.AbstractTenantFilter.doFilter(AbstractTenantFilter.java:70)**
** at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82)**
** at com.axelor.web.servlet.CorsFilter.doFilter(CorsFilter.java:137)**
** at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82)**
** at com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:121)**
** at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:133)**
** at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)**
** at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)**
** at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:196)**
** at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)**
** at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:542)**
** at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135)**
** at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)**
** at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:698)**
** at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)**
** at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:364)**
** at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:624)**
** at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)**
** at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:831)**
** at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1673)**
** at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)**
** at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)**
** at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)**
** at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)**
** at java.lang.Thread.run(Unknown Source)**
Caused by: java.lang.NullPointerException: Cannot invoke method getEnterpriseCommunication() on null object
** at org.codehaus.groovy.runtime.NullObject.invokeMethod(NullObject.java:91)**
** at org.codehaus.groovy.vmplugin.v7.IndyGuardsFiltersAndSignatures.invokeGroovyObjectInvoker(IndyGuardsFiltersAndSignatures.java:165)**
** at org.codehaus.groovy.vmplugin.v7.IndyInterface.selectMethod(IndyInterface.java:232)**
** at script1648201326808345474296.run(script1648201326808345474296.groovy:1)**
** at com.axelor.script.GroovyScriptHelper.eval(GroovyScriptHelper.java:144)**
** at com.axelor.script.CompositeScriptHelper.eval(CompositeScriptHelper.java:77)**
** at com.axelor.script.AbstractScriptHelper.eval(AbstractScriptHelper.java:84)**
** … 81 common frames omitted**
2022-03-25 10:42:06.922 DEBUG 26760 — [nio-8081-exec-2] com.axelor.rpc.Resource : JPQL: SELECT new List(self.id, self.version, self.id, self.name, self.title, self.link) FROM MetaMenu self LEFT JOIN self.user _user WHERE (_user = :user and self.link is not null) AND (self.archived is null OR self.archived = false) ORDER BY self.priority DESC, self.id DESC
2022-03-25 10:42:06.931 DEBUG 26760 — [nio-8081-exec-2] com.axelor.rpc.Resource : Records found: 0

quand je me suis connecté à la base de donnée la colonne « entreprise_communication » est bien présente dans la table base_app_base avec la valeur « true ».

Merci d’avance pour votre aide .

Bonjour,

Une des solutions est de modifier la colonne condition_to_check dans la table meta_menu
Vous pouvez rajouter un point d’interrogation (?) devant le point (.)
UPDATE meta_menu SET condition_to_check = REPLACE(condition_to_check, '.getEnterpriseComm', '?.getEnterpriseComm')

Mais attention, un problème en cache un autre …
Au cas par cas, vous obtiendrez le menu. Mais c’est un peu ardu.

Si vous aimez les risques, vous pouvez rajouter un point d’interrogation (?) devant le point (.) dans tous les cas suivants

UPDATE meta_menu SET condition_to_check = REPLACE(condition_to_check, '.get', '?.get') WHERE condition_to_check NOT LIKE '%?.get%';
UPDATE meta_menu SET condition_to_check = REPLACE(condition_to_check, '.is', '?.is') WHERE condition_to_check NOT LIKE '%?.is%';

Avec cette procédure vous aurez accès aux Menus, mais c’est peut-être la face émergée de l’iceberg !?
Des tests de non régression sont à effectuer…

De plus la procédure adoptée, ci-dessus, n’est pas forcément logique pour une mise à niveau d’une base de données lors d’un changement de version.

Un sujet consacré à ce point donne des pistes :
https://forum.axelor.com/t/correct-method-to-upgrade/1690/6

Sinon, ce sujet aussi :
https://forum.axelor.com/t/migration-maj-v5-a-v6-desastre-no-reccomended/3846/21

En espérant que cela puisse vous aider !

Bonjour @PakMax,

Merci

Ce sujet a été automatiquement fermé après 30 jours. Aucune réponse n’est permise dorénavant.