Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ClassCastException: NodeImpl -> NodeContent #934

Closed
deckdom opened this issue Nov 18, 2019 · 0 comments · Fixed by #938
Closed

ClassCastException: NodeImpl -> NodeContent #934

deckdom opened this issue Nov 18, 2019 · 0 comments · Fixed by #938

Comments

@deckdom
Copy link
Member

deckdom commented Nov 18, 2019

Gentics Mesh Version, operating system, or hardware.

  • v1.1.1

Operating System

  • Linux / Docker-Container

JVM

openjdk version "11.0.3" 2019-04-16
OpenJDK Runtime Environment AdoptOpenJDK (build 11.0.3+7)
OpenJDK 64-Bit Server VM AdoptOpenJDK (build 11.0.3+7, mixed mode)

Problem

I was upgrading an Application from 0.22.x to 1.1.1. While doing so, I was also updating the API to V2 and therefore migrating the GraphQL Queries.

After posting a query to the graphql Endpoint, the request hung up and I checked the logs to find this in the logs:

mesh_1           | Exception in thread "vert.x-eventloop-thread-0" io.reactivex.exceptions.OnErrorNotImplementedException: The exception was not handled due to missing onError handler in the subscribe() method call. Further reading: https://github.com/ReactiveX/RxJava/wiki/Error-Handling | java.lang.ClassCastException: class com.gentics.mesh.core.data.node.impl.NodeImpl cannot be cast to class com.gentics.mesh.core.data.node.NodeContent (com.gentics.mesh.core.data.node.impl.NodeImpl and com.gentics.mesh.core.data.node.NodeContent are in unnamed module of loader 'app')
mesh_1           |      at io.reactivex.internal.functions.Functions$OnErrorMissingConsumer.accept(Functions.java:704)
mesh_1           |      at io.reactivex.internal.functions.Functions$OnErrorMissingConsumer.accept(Functions.java:701)
mesh_1           |      at io.reactivex.internal.operators.maybe.MaybeCallbackObserver.onError(MaybeCallbackObserver.java:82)
mesh_1           |      at io.reactivex.internal.operators.maybe.MaybeDelayWithCompletable$DelayWithMainObserver.onError(MaybeDelayWithCompletable.java:107)
mesh_1           |      at io.vertx.reactivex.impl.AsyncResultMaybe.lambda$subscribeActual$0(AsyncResultMaybe.java:60)
mesh_1           |      at io.vertx.core.impl.ContextImpl.lambda$null$0(ContextImpl.java:330)
mesh_1           |      at io.vertx.core.impl.ContextImpl.executeTask(ContextImpl.java:369)
mesh_1           |      at io.vertx.core.impl.EventLoopContext.lambda$executeAsync$0(EventLoopContext.java:38)
mesh_1           |      at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:163)
mesh_1           |      at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:404)
mesh_1           |      at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:333)
mesh_1           |      at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:905)
mesh_1           |      at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
mesh_1           |      at java.base/java.lang.Thread.run(Unknown Source)
mesh_1           | Caused by: java.lang.ClassCastException: class com.gentics.mesh.core.data.node.impl.NodeImpl cannot be cast to class com.gentics.mesh.core.data.node.NodeContent (com.gentics.mesh.core.data.node.impl.NodeImpl and com.gentics.mesh.core.data.node.NodeContent are in unnamed module of loader 'app')
mesh_1           |      at com.gentics.mesh.graphql.type.NodeTypeProvider.lambda$null$3(NodeTypeProvider.java:206)
mesh_1           |      at graphql.execution.ExecutionStrategy.resolveTypeForInterface(ExecutionStrategy.java:741)
mesh_1           |      at graphql.execution.ExecutionStrategy.resolveType(ExecutionStrategy.java:713)
mesh_1           |      at graphql.execution.ExecutionStrategy.completeValue(ExecutionStrategy.java:412)
mesh_1           |      at graphql.execution.ExecutionStrategy.completeField(ExecutionStrategy.java:363)
mesh_1           |      at graphql.execution.ExecutionStrategy.lambda$resolveFieldWithInfo$0(ExecutionStrategy.java:201)
mesh_1           |      at java.base/java.util.concurrent.CompletableFuture.uniApplyNow(Unknown Source)
mesh_1           |      at java.base/java.util.concurrent.CompletableFuture.uniApplyStage(Unknown Source)
mesh_1           |      at java.base/java.util.concurrent.CompletableFuture.thenApply(Unknown Source)
mesh_1           |      at graphql.execution.ExecutionStrategy.resolveFieldWithInfo(ExecutionStrategy.java:200)
mesh_1           |      at graphql.execution.AsyncExecutionStrategy.execute(AsyncExecutionStrategy.java:70)
mesh_1           |      at graphql.execution.ExecutionStrategy.completeValueForObject(ExecutionStrategy.java:633)
mesh_1           |      at graphql.execution.ExecutionStrategy.completeValue(ExecutionStrategy.java:413)
mesh_1           |      at graphql.execution.ExecutionStrategy.completeField(ExecutionStrategy.java:363)
mesh_1           |      at graphql.execution.ExecutionStrategy.lambda$resolveFieldWithInfo$0(ExecutionStrategy.java:201)
mesh_1           |      at java.base/java.util.concurrent.CompletableFuture.uniApplyNow(Unknown Source)
mesh_1           |      at java.base/java.util.concurrent.CompletableFuture.uniApplyStage(Unknown Source)
mesh_1           |      at java.base/java.util.concurrent.CompletableFuture.thenApply(Unknown Source)
mesh_1           |      at graphql.execution.ExecutionStrategy.resolveFieldWithInfo(ExecutionStrategy.java:200)
mesh_1           |      at graphql.execution.AsyncExecutionStrategy.execute(AsyncExecutionStrategy.java:70)
mesh_1           |      at graphql.execution.Execution.executeOperation(Execution.java:158)
mesh_1           |      at graphql.execution.Execution.execute(Execution.java:100)
mesh_1           |      at graphql.GraphQL.execute(GraphQL.java:554)
mesh_1           |      at graphql.GraphQL.parseValidateAndExecute(GraphQL.java:496)
mesh_1           |      at graphql.GraphQL.executeAsync(GraphQL.java:470)
mesh_1           |      at graphql.GraphQL.execute(GraphQL.java:401)
mesh_1           |      at com.gentics.mesh.graphql.GraphQLHandler.lambda$handleQuery$0(GraphQLHandler.java:73)
mesh_1           |      at io.vertx.reactivex.core.Vertx$3.handle(Vertx.java:643)
mesh_1           |      at io.vertx.reactivex.core.Vertx$3.handle(Vertx.java:641)
mesh_1           |      at io.vertx.core.impl.ContextImpl.lambda$executeBlocking$2(ContextImpl.java:316)
mesh_1           |      at io.vertx.core.impl.TaskQueue.run(TaskQueue.java:76)
mesh_1           |      at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
mesh_1           |      at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
mesh_1           |      ... 2 more

This application contains sensible data, therefore I provide the data privately.
It contains the GraphQL, the original (before 1.1.1 update) graphdb and binaryFiles/uploads data.

Reproducer

Post the appended graphql query within the provided dump as admin.

Expected behaviour and actual behaviour

No errors or a proper Error response which cancels the Request

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant