java.lang.VerifyError using JWTDecoder - Auth0

0
Hi, I’m attempting to integrate Mendix with Auth0, based on the example https://www.slideshare.net/MennodeHaas/mendix-single-signon-oauth-20-example and sample app https://appstore.home.mendix.com/link/app/110989/. I have got the app above working as a local project, however when I import the Auth0 module from this app into my own app it throws a VerifyError on the logon callback while attempting to parse the JWT id token.  I’m using the JWT module https://appstore.home.mendix.com/link/app/106447/. VerifyErrors are normally caused by mismatches between the JVM version and the version of Java used to compile code to class files.  As far as I can tell, the JWT module should be compatible with Mendix 8.x. How can I resolve this error? Thanks   An unhandled error occurred in the MxRuntime. -------- java.lang.VerifyError: Stack map does not match the one at exception handler 77 Exception Details: Location: com/fasterxml/jackson/databind/deser/std/StdDeserializer._parseDate(Lcom/fasterxml/jackson/core/JsonParser;Lcom/fasterxml/jackson/databind/DeserializationContext;)Ljava/util/Date; @77: astore Reason: Type 'com/fasterxml/jackson/core/JsonParseException' (current frame, stack[0]) is not assignable to 'com/fasterxml/jackson/core/exc/StreamReadException' (stack map, stack[0]) Current Frame: bci: @69 flags: { } locals: { 'com/fasterxml/jackson/databind/deser/std/StdDeserializer', 'com/fasterxml/jackson/core/JsonParser', 'com/fasterxml/jackson/databind/DeserializationContext' } stack: { 'com/fasterxml/jackson/core/JsonParseException' } Stackmap Frame: bci: @77 flags: { } locals: { 'com/fasterxml/jackson/databind/deser/std/StdDeserializer', 'com/fasterxml/jackson/core/JsonParser', 'com/fasterxml/jackson/databind/DeserializationContext' } stack: { 'com/fasterxml/jackson/core/exc/StreamReadException' } Bytecode: 0000000: 2bb6 0035 aa00 0000 0000 0081 0000 0003 0000010: 0000 000b 0000 007a 0000 0081 0000 0081 0000020: 0000 0034 0000 0041 0000 0081 0000 0081 0000030: 0000 0081 0000 0071 2a2b b600 11b6 0012 0000040: 2cb6 006b b02b b600 4742 a700 223a 052c 0000050: 2ab4 0002 2bb6 006e 126f 03bd 0004 b600 0000060: 70c0 002d 3a06 1906 b600 4c42 bb00 7159 0000070: 21b7 0072 b02a 2cb6 0073 c000 71b0 2a2b 0000080: 2cb6 0074 b02c 2ab4 0002 2bb6 0025 c000 0000090: 71b0 Exception Handler Table: bci [69, 74] => handler: 77 bci [69, 74] => handler: 77 Stackmap Table: same_frame(@56) same_frame(@69) same_locals_1_stack_item_frame(@77,Object[#359]) append_frame(@108,Long) chop_frame(@117,1) same_frame(@126) same_frame(@133) at com.auth0.jwt.impl.JWTParser.addDeserializers(JWTParser.java:58) at com.auth0.jwt.impl.JWTParser.<init>(JWTParser.java:24) at com.auth0.jwt.impl.JWTParser.<init>(JWTParser.java:20) at com.auth0.jwt.JWTDecoder.<init>(JWTDecoder.java:27) at com.auth0.jwt.JWT.decode(JWT.java:45) at jwt.usecases.JWTDecoder.decode(JWTDecoder.java:155) at jwt.usecases.JWTDecoder.decodeToObject(JWTDecoder.java:43) at jwt.actions.DecodeJWT.executeAction(DecodeJWT.java:35) at jwt.actions.DecodeJWT.executeAction(DecodeJWT.java:20) at com.mendix.systemwideinterfaces.core.UserAction.execute(UserAction.java:46) at com.mendix.basis.actionmanagement.CoreActionHandlerImpl.doCall(CoreActionHandlerImpl.scala:71) at com.mendix.basis.actionmanagement.CoreActionHandlerImpl.call(CoreActionHandlerImpl.scala:49) at com.mendix.core.actionmanagement.CoreAction.call(CoreAction.java:54) at com.mendix.basis.actionmanagement.ActionManagerBase$1.execute(ActionManagerBase.java:147) at com.mendix.util.classloading.Runner.doRunUsingClassLoaderOf(Runner.java:32) at com.mendix.basis.actionmanagement.ActionManagerBase.executeSync(ActionManagerBase.java:152) at com.mendix.basis.actionmanagement.UserActionCallBuilderImpl.execute(UserActionCallBuilderImpl.scala:30) at com.mendix.modules.microflowengine.actions.actioncall.JavaAction.execute(JavaAction.scala:56) at com.mendix.modules.microflowengine.microflow.impl.MicroflowObject.execute(MicroflowObject.java:47) at com.mendix.modules.microflowengine.microflow.impl.MicroflowImpl.executeAfterBreakingIfNecessary(MicroflowImpl.java:215) at com.mendix.modules.microflowengine.microflow.impl.MicroflowImpl.executeAction(MicroflowImpl.java:165) at com.mendix.systemwideinterfaces.core.UserAction.execute(UserAction.java:46) at com.mendix.basis.actionmanagement.CoreActionHandlerImpl.doCall(CoreActionHandlerImpl.scala:71) at com.mendix.basis.actionmanagement.CoreActionHandlerImpl.call(CoreActionHandlerImpl.scala:49) at com.mendix.core.actionmanagement.CoreAction.call(CoreAction.java:54) at com.mendix.basis.actionmanagement.ActionManagerBase$1.execute(ActionManagerBase.java:147) at com.mendix.util.classloading.Runner.doRunUsingClassLoaderOf(Runner.java:32) at com.mendix.basis.actionmanagement.ActionManagerBase.executeSync(ActionManagerBase.java:152) at com.mendix.basis.component.InternalCoreBase.executeSync(InternalCoreBase.java:382) at com.mendix.modules.microflowengine.MicroflowExecuter$.executeSync(MicroflowExecuter.scala:19) at com.mendix.modules.microflowengine.actions.SubMicroflowAction.execute(SubMicroflowAction.scala:49) at com.mendix.modules.microflowengine.microflow.impl.MicroflowObject.execute(MicroflowObject.java:47) at com.mendix.modules.microflowengine.microflow.impl.MicroflowImpl.executeAfterBreakingIfNecessary(MicroflowImpl.java:215) at com.mendix.modules.microflowengine.microflow.impl.MicroflowImpl.executeAction(MicroflowImpl.java:165) at com.mendix.systemwideinterfaces.core.UserAction.execute(UserAction.java:46) at com.mendix.basis.actionmanagement.CoreActionHandlerImpl.doCall(CoreActionHandlerImpl.scala:71) at com.mendix.basis.actionmanagement.CoreActionHandlerImpl.call(CoreActionHandlerImpl.scala:49) at com.mendix.core.actionmanagement.CoreAction.call(CoreAction.java:54) at com.mendix.basis.actionmanagement.DefaultActionMonitor$.$anonfun$run$1(CustomMonitoredAction.scala:18) at com.mendix.basis.actionmanagement.IMonitoredAction$$anon$1.execute(IMonitoredAction.scala:47) at com.mendix.util.classloading.Runner.doRunUsingClassLoaderOf(Runner.java:32) at com.mendix.basis.actionmanagement.IMonitoredAction.monitor(IMonitoredAction.scala:49) at com.mendix.basis.actionmanagement.IMonitoredAction.monitor$(IMonitoredAction.scala:25) at com.mendix.basis.actionmanagement.CustomMonitoredAction.monitor(CustomMonitoredAction.scala:22) at com.mendix.basis.actionmanagement.DefaultActionMonitor$.run(CustomMonitoredAction.scala:18) at com.mendix.basis.actionmanagement.CoreActionHandlerImpl.runMonitoredAction(CoreActionHandlerImpl.scala:60) at com.mendix.basis.actionmanagement.CoreActionHandlerImpl.call(CoreActionHandlerImpl.scala:47) at com.mendix.core.actionmanagement.CoreAction.call(CoreAction.java:54) at com.mendix.basis.actionmanagement.ActionManagerBase$1.execute(ActionManagerBase.java:147) at com.mendix.util.classloading.Runner.doRunUsingClassLoaderOf(Runner.java:32) at com.mendix.basis.actionmanagement.ActionManagerBase.executeSync(ActionManagerBase.java:152) at com.mendix.basis.actionmanagement.MicroflowCallBuilderImpl.execute(MicroflowCallBuilderImpl.scala:32) at com.mendix.integration.internal.InternalIntegration.executeMicroflow(InternalIntegration.scala:81) at com.mendix.integration.internal.InternalIntegration.executeMicroflow$(InternalIntegration.scala:69) at com.mendix.integration.internal.InternalIntegrationImpl.executeMicroflow(InternalIntegrationImpl.scala:38) at com.mendix.integration.service.rest.RestOperationProcessors.$anonfun$executeMicroflow$1(RestOperationProcessors.scala:226) at scala.util.Try$.apply(Try.scala:213) at com.mendix.integration.service.rest.RestOperationProcessors.executeMicroflow(RestOperationProcessors.scala:223) at com.mendix.integration.service.rest.RestOperationProcessors.$anonfun$getMicroflowResult$1(RestOperationProcessors.scala:195) at scala.util.Success.flatMap(Try.scala:251) at com.mendix.integration.service.rest.RestOperationProcessors.getMicroflowResult(RestOperationProcessors.scala:195) at com.mendix.integration.service.rest.RestOperationProcessors.$anonfun$operationResponse$5(RestOperationProcessors.scala:127) at com.mendix.basis.actionmanagement.IMonitoredAction$$anon$1.execute(IMonitoredAction.scala:47) at com.mendix.util.classloading.Runner.doRunUsingClassLoaderOf(Runner.java:32) at com.mendix.basis.actionmanagement.IMonitoredAction.monitor(IMonitoredAction.scala:49) at com.mendix.basis.actionmanagement.IMonitoredAction.monitor$(IMonitoredAction.scala:25) at com.mendix.integration.service.ServiceMonitoredAction.monitor(ServiceMonitoredAction.scala:7) at com.mendix.integration.service.rest.RestOperationProcessors.$anonfun$operationResponse$4(RestOperationProcessors.scala:125) at com.mendix.integration.service.rest.RestOperationProcessors.withSystemContext(RestOperationProcessors.scala:133) at com.mendix.integration.service.rest.RestOperationProcessors.$anonfun$operationResponse$2(RestOperationProcessors.scala:119) at com.mendix.integration.service.rest.RestOperationProcessors.operationResponse(RestOperationProcessors.scala:123) at com.mendix.integration.service.rest.RestOperationProcessors.processOperations(RestOperationProcessors.scala:83) at com.mendix.integration.service.rest.RestOperationProcessors.$anonfun$createProcessor$1(RestOperationProcessors.scala:62) at com.mendix.integration.service.PathProcessors.$anonfun$process$3(PathProcessors.scala:32) at scala.Option.fold(Option.scala:251) at com.mendix.integration.service.PathProcessors.$anonfun$process$1(PathProcessors.scala:32) at scala.collection.Iterator$$anon$11.nextCur(Iterator.scala:484) at scala.collection.Iterator$$anon$11.hasNext(Iterator.scala:490) at scala.collection.Iterator.isEmpty(Iterator.scala:385) at scala.collection.Iterator.isEmpty$(Iterator.scala:385) at scala.collection.AbstractIterator.isEmpty(Iterator.scala:1429) at com.mendix.integration.util.IteratorUtil$RichIterator$.headOption$extension(IteratorUtil.scala:43) at com.mendix.integration.util.IteratorUtil$RichIterable$.firstDefined$extension(IteratorUtil.scala:30) at com.mendix.integration.service.PathProcessors.process(PathProcessors.scala:29) at com.mendix.integration.service.PathProcessors.process$(PathProcessors.scala:28) at com.mendix.integration.service.rest.RestOperationProcessors.process(RestOperationProcessors.scala:40) at com.mendix.integration.requesthandlers.RestRequestHandler.$anonfun$processRequest$1(RestRequestHandler.scala:29) at scala.collection.Iterator$$anon$11.nextCur(Iterator.scala:484) at scala.collection.Iterator$$anon$11.hasNext(Iterator.scala:490) at scala.collection.Iterator.isEmpty(Iterator.scala:385) at scala.collection.Iterator.isEmpty$(Iterator.scala:385) at scala.collection.AbstractIterator.isEmpty(Iterator.scala:1429) at com.mendix.integration.util.IteratorUtil$RichIterator$.headOption$extension(IteratorUtil.scala:43) at com.mendix.integration.util.IteratorUtil$RichIterable$.firstDefined$extension(IteratorUtil.scala:30) at com.mendix.integration.requesthandlers.RestRequestHandler.processRequest(RestRequestHandler.scala:29) at com.mendix.externalinterface.connector.RequestHandler.doProcessRequest(RequestHandler.java:40) at com.mendix.external.connector.MxRuntimeConnector$1.execute(MxRuntimeConnector.java:76) at com.mendix.external.connector.MxRuntimeConnector$1.execute(MxRuntimeConnector.java:73) at com.mendix.util.classloading.Runner.doRunUsingClassLoaderOf(Runner.java:32) at com.mendix.external.connector.MxRuntimeConnector.processRequest(MxRuntimeConnector.java:79) at com.mendix.basis.impl.MxRuntimeImpl.processRequest(MxRuntimeImpl.java:937) at com.mendix.m2ee.appcontainer.server.handler.RuntimeHandler.service(RuntimeHandler.java:42) at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:867) at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:542) at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255) at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1588) at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255) at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1345) at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203) at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:480) at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1557) at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:201) at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1247) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:144) at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132) at org.eclipse.jetty.server.Server.handle(Server.java:502) at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:364) at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:260) at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:305) at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103) at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:118) at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:333) at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:310) at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:168) at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:126) at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:366) at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:765) at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:683) at java.base/java.lang.Thread.run(Thread.java:834)  
asked
1 answers
3

This is because the Jackson library used had a breaking change when parsing dates, and you have more than one version in your project’s userlib as different modules have installed different versions.

When I had this problem I fixed it by deleting any versions of jackson-core and jackson-databind newer than version 2.9.8. You will need to test your app carefully though as this may cause other modules to break. It maybe you need to keep the latest version and delete the older ones. Keep a backup so you can swap them back if it doesn’t work.

Hope this helps. 

answered