Hi, I just finished migrating my SOA management tool to 1.13.0 and when invoking one of the (rarely used) functions I ran into java.lang.LinkageError (see stacktrace below). The usual explanation 'same jar loaded twice' doesn't ring a bell in my head.
Looking at the output of 'mvn dependency:tree' didn't show anything suspicious either. Any ideas? Thanks in advance Jörg ---- 8<---- stacktrace ---- >-8 --- java.lang.LinkageError loader constraint violation: when resolving method "ife.cfg.ConfigEntry.getParameter()Life/cfg/Parameter;" the class loader (instance of sun/reflect/DelegatingClassLoader) of the current class, sun/reflect/GeneratedMethodAccessor164, and the class loader (instance of org/eclipse/jetty/webapp/WebAppClassLoader) for the method's defining class, ife/cfg/ConfigEntry, have different Class objects for the type ife/cfg/Parameter used in the signature sun.reflect.GeneratedMethodAccessor164#invoke(null:-1) sun.reflect.DelegatingMethodAccessorImpl#invoke(DelegatingMethodAccessorImpl.java:43) java.lang.reflect.Method#invoke(Method.java:497) org.apache.isis.applib.util.Clause#getValueOf(ObjectContracts.java:365) org.apache.isis.applib.util.ObjectContracts#compare(ObjectContracts.java:70) org.apache.isis.applib.util.ObjectContracts#compare(ObjectContracts.java:51) ife.cfg.ConfigEntry#compareTo(ConfigEntry.java:55) ife.cfg.ConfigEntry#compareTo(ConfigEntry.java:26) java.util.TreeMap#compare(TreeMap.java:1290) java.util.TreeMap#put(TreeMap.java:538) java.util.TreeSet#add(TreeSet.java:255) org.datanucleus.store.types.wrappers.backed.SortedSet#loadFromStore(SortedSet.java:283) org.datanucleus.store.types.wrappers.backed.SortedSet#iterator(SortedSet.java:477) ife.cfg.Endpoints#listByRelease(Endpoints.java:151) ife.env.ProvidedEndpoints#referencedEndpoints(ProvidedEndpoints.java:191) ife.env.ProvidedEndpoints#checkReferencedEndpoins(ProvidedEndpoints.java:206) ife.env.ProvidedEndpoints#checkReleaseAndSendByMail(ProvidedEndpoints.java:220) sun.reflect.NativeMethodAccessorImpl#invoke0(NativeMethodAccessorImpl.java:-2) sun.reflect.NativeMethodAccessorImpl#invoke(NativeMethodAccessorImpl.java:62) sun.reflect.DelegatingMethodAccessorImpl#invoke(DelegatingMethodAccessorImpl.java:43) java.lang.reflect.Method#invoke(Method.java:497) org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionInvocationFacetForDomainEventAbstract#invokeMethodElseFromCache(ActionInvocationFacetForDomainEventAbstract.java:408) org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionInvocationFacetForDomainEventAbstract$2#execute(ActionInvocationFacetForDomainEventAbstract.java:262) org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionInvocationFacetForDomainEventAbstract$2#execute(ActionInvocationFacetForDomainEventAbstract.java:223) org.apache.isis.applib.services.iactn.Interaction#executeInternal(Interaction.java:173) org.apache.isis.applib.services.iactn.Interaction#execute(Interaction.java:143) org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionInvocationFacetForDomainEventAbstract#doInvoke(ActionInvocationFacetForDomainEventAbstract.java:311) org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionInvocationFacetForDomainEventAbstract$1#execute(ActionInvocationFacetForDomainEventAbstract.java:165) org.apache.isis.core.runtime.system.transaction.IsisTransactionManager#executeWithinTransaction(IsisTransactionManager.java:143) org.apache.isis.core.runtime.system.transaction.IsisTransactionManager#executeWithinTransaction(IsisTransactionManager.java:133) org.apache.isis.core.runtime.services.persistsession.PersistenceSessionServiceInternalDefault#executeWithinTransaction(PersistenceSessionServiceInternalDefault.java:179) org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionInvocationFacetForDomainEventAbstract#invoke(ActionInvocationFacetForDomainEventAbstract.java:161) org.apache.isis.core.metamodel.specloader.specimpl.ObjectActionDefault#executeInternal(ObjectActionDefault.java:398) org.apache.isis.core.metamodel.specloader.specimpl.ObjectActionDefault#execute(ObjectActionDefault.java:387) org.apache.isis.core.metamodel.specloader.specimpl.ObjectActionDefault#executeWithRuleChecking(ObjectActionDefault.java:368) org.apache.isis.viewer.wicket.model.models.ActionModel#executeAction(ActionModel.java:483) org.apache.isis.viewer.wicket.model.models.ActionModel#load(ActionModel.java:462) org.apache.isis.viewer.wicket.model.models.ActionModel#load(ActionModel.java:80) org.apache.wicket.model.LoadableDetachableModel#getObject(LoadableDetachableModel.java:124) org.apache.isis.viewer.wicket.model.models.ActionModel#executeHandlingApplicationExceptions(ActionModel.java:568) org.apache.isis.viewer.wicket.ui.components.actions.ActionPanel#executeActionOnTargetAndProcessResults(ActionPanel.java:255) org.apache.isis.viewer.wicket.ui.components.actions.ActionPanel#executeAndProcessResults(ActionPanel.java:204) org.apache.isis.viewer.wicket.ui.components.actions.ActionParametersFormPanel$ActionParameterForm$1#onSubmit(ActionParametersFormPanel.java:148) org.apache.wicket.ajax.markup.html.form.AjaxButton$1#onSubmit(AjaxButton.java:108) org.apache.wicket.ajax.form.AjaxFormSubmitBehavior$AjaxFormSubmitter#onSubmit(AjaxFormSubmitBehavior.java:215) org.apache.wicket.markup.html.form.Form#delegateSubmit(Form.java:1305) org.apache.wicket.markup.html.form.Form#process(Form.java:966) org.apache.wicket.markup.html.form.Form#onFormSubmitted(Form.java:788) org.apache.wicket.ajax.form.AjaxFormSubmitBehavior#onEvent(AjaxFormSubmitBehavior.java:171) org.apache.wicket.ajax.AjaxEventBehavior#respond(AjaxEventBehavior.java:146) org.apache.wicket.ajax.AbstractDefaultAjaxBehavior#onRequest(AbstractDefaultAjaxBehavior.java:641) sun.reflect.NativeMethodAccessorImpl#invoke0(NativeMethodAccessorImpl.java:-2) sun.reflect.NativeMethodAccessorImpl#invoke(NativeMethodAccessorImpl.java:62) sun.reflect.DelegatingMethodAccessorImpl#invoke(DelegatingMethodAccessorImpl.java:43) java.lang.reflect.Method#invoke(Method.java:497) org.apache.wicket.RequestListenerInterface#internalInvoke(RequestListenerInterface.java:258) org.apache.wicket.RequestListenerInterface#invoke(RequestListenerInterface.java:241) org.apache.wicket.core.request.handler.ListenerInterfaceRequestHandler#invokeListener(ListenerInterfaceRequestHandler.java:250) org.apache.wicket.core.request.handler.ListenerInterfaceRequestHandler#respond(ListenerInterfaceRequestHandler.java:236) org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor#respond(RequestCycle.java:890) org.apache.wicket.request.RequestHandlerStack#execute(RequestHandlerStack.java:64) org.apache.wicket.request.cycle.RequestCycle#execute(RequestCycle.java:261) org.apache.wicket.request.cycle.RequestCycle#processRequest(RequestCycle.java:218) org.apache.wicket.request.cycle.RequestCycle#processRequestAndDetach(RequestCycle.java:289) org.apache.wicket.protocol.http.WicketFilter#processRequestCycle(WicketFilter.java:259) org.apache.wicket.protocol.http.WicketFilter#processRequest(WicketFilter.java:201) org.apache.wicket.protocol.http.WicketFilter#doFilter(WicketFilter.java:282) org.eclipse.jetty.servlet.ServletHandler$CachedChain#doFilter(ServletHandler.java:1668) org.apache.isis.core.webapp.diagnostics.IsisLogOnExceptionFilter#doFilter(IsisLogOnExceptionFilter.java:52) org.eclipse.jetty.servlet.ServletHandler$CachedChain#doFilter(ServletHandler.java:1668) org.apache.shiro.web.servlet.AbstractShiroFilter#executeChain(AbstractShiroFilter.java:449) org.apache.shiro.web.servlet.AbstractShiroFilter$1#call(AbstractShiroFilter.java:365) org.apache.shiro.subject.support.SubjectCallable#doCall(SubjectCallable.java:90) org.apache.shiro.subject.support.SubjectCallable#call(SubjectCallable.java:83) org.apache.shiro.subject.support.DelegatingSubject#execute(DelegatingSubject.java:383) org.apache.shiro.web.servlet.AbstractShiroFilter#doFilterInternal(AbstractShiroFilter.java:362) org.apache.shiro.web.servlet.OncePerRequestFilter#doFilter(OncePerRequestFilter.java:125) org.eclipse.jetty.servlet.ServletHandler$CachedChain#doFilter(ServletHandler.java:1668) org.eclipse.jetty.servlet.ServletHandler#doHandle(ServletHandler.java:581) org.eclipse.jetty.server.handler.ScopedHandler#handle(ScopedHandler.java:143) org.eclipse.jetty.security.SecurityHandler#handle(SecurityHandler.java:548) org.eclipse.jetty.server.session.SessionHandler#doHandle(SessionHandler.java:226) org.eclipse.jetty.server.handler.ContextHandler#doHandle(ContextHandler.java:1158) org.eclipse.jetty.servlet.ServletHandler#doScope(ServletHandler.java:511) org.eclipse.jetty.server.session.SessionHandler#doScope(SessionHandler.java:185) org.eclipse.jetty.server.handler.ContextHandler#doScope(ContextHandler.java:1090) org.eclipse.jetty.server.handler.ScopedHandler#handle(ScopedHandler.java:141) org.eclipse.jetty.server.handler.ContextHandlerCollection#handle(ContextHandlerCollection.java:213) org.eclipse.jetty.server.handler.HandlerCollection#handle(HandlerCollection.java:109) org.eclipse.jetty.server.handler.HandlerWrapper#handle(HandlerWrapper.java:119) org.eclipse.jetty.server.Server#handle(Server.java:517) org.eclipse.jetty.server.HttpChannel#handle(HttpChannel.java:306) org.eclipse.jetty.server.HttpConnection#onFillable(HttpConnection.java:242) org.eclipse.jetty.io.AbstractConnection$ReadCallback#succeeded(AbstractConnection.java:261) org.eclipse.jetty.io.FillInterest#fillable(FillInterest.java:95) org.eclipse.jetty.io.SelectChannelEndPoint$2#run(SelectChannelEndPoint.java:75) org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume#produceAndRun(ExecuteProduceConsume.java:213) org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume#run(ExecuteProduceConsume.java:147) org.eclipse.jetty.util.thread.QueuedThreadPool#runJob(QueuedThreadPool.java:654) org.eclipse.jetty.util.thread.QueuedThreadPool$3#run(QueuedThreadPool.java:572) java.lang.Thread#run(Thread.java:745) Kühne + Nagel (AG & Co.) KG Rechtsform: Kommanditgesellschaft, Bremen HRA 21928, USt-IdNr.: DE 812773878. Geschäftsleitung Kühne + Nagel (AG & Co.) KG: Yngve Ruud (Vors.), Martin Brinkmann, Matthias Heimbach, Jan-Hendrik Köstergarten, Nicholas Minde, Michael Nebel, Lars Wedel. Persönlich haftende Gesellschafterin: Kühne & Nagel A.G., Rechtsform: Aktiengesellschaft nach luxemburgischem Recht, HR-Nr.: B 18745, Geschäftsführendes Verwaltungsratsmitglied: Karl Gernandt. Geschäftsleitung Region Westeuropa: Yngve Ruud (Vors.), Diederick de Vroet, Dominic Edmonds, Uwe Hött, Richard Huhn, Björn Johansson, Holger Ketz, Jan Kunze. Wir arbeiten ausschließlich auf Grundlage der Allgemeinen Deutschen Spediteurbedingungen 2016 (ADSp 2016). Die ADSp 2016 beschränken in Ziffer 23 die gesetzliche Haftung für Güterschäden in Höhe von 8,33 SZR/kg je Schadenfall bzw. je Schadenereignis auf 1 Million bzw. 2 Millionen Euro oder 2 SZR/kg, je nachdem, welcher Betrag höher ist, und bei multimodalen Transporten unter Einschluss einer Seebeförderung generell auf 2 SZR/kg. Den vollständigen Text der ADSp 2016 übersenden wir Ihnen gerne auf Anfrage und können Sie auch unter http://www.kuehne-nagel.com einsehen.
