Since a recent (< 4d ago) upstream update, the test io.vlingo.schemata.resource.ExtendedResourceTest#testSchemaVersionSelection hangs, but only when run using maven from the shell. In IntelliJ, it runs fine.
I have no idea what the difference is.
The CI build with the same commits on master ran fine 4 days ago.
I'm seeing an instantiation exception during creation of TypeDefinitionCompilerActor due to missing constructor arguments, it seems that a no-arg constructor is expected somewhere, see below.
It looks like vlingo/xoom-actors@4719dc9 was pushed in the timeframe in question, and shows up in the stack trace, so perhaps this is a suspect. Just guesswork as of now, though.
What happens is that SchemaVersionEntity tries to use a TypeDefinitionCompilerActor in #diff that is passed in via the command io.vlingo.schemata.resource.SchemaVersionCommands#diffAgainst.
To analyze:
- Create a remote debug connection at port
5005

- run the build from the shell enabling test debugging:
mvn -Dmaven.surefire.debug test
- add a breakpoint in
io/vlingo/actors/Stage.java:670; it will get hit in the error case
- Start the remote debug connection
In the debugger I see
- that the proxied
diff method has the correct arguments
- in
TypeDefinitionMiddleware, the compiler actor is found: src/main/java/io/vlingo/schemata/codegen/TypeDefinitionMiddleware.java:14
- in
io.vlingo.actors.ActorProxyBase#thunk, when trying to retrieve the actor for arg (which contains the TypeDefinitionMiddleware used to retrieve the TypeDefinitionCompilerActor) from the grid, it receives null
- When trying to create a new actor, the parameters needed for its creation are missing.
Can anyone (@buritos ?) shed some light on this? Thanks!
[INFO] Running io.vlingo.schemata.resource.ExtendedResourceTest
11:26:35.609 [pool-171-thread-5] ERROR io.vlingo.actors.Logger - Actor instantiation failed because: io.vlingo.schemata.codegen.TypeDefinitionCompilerActor
java.lang.InstantiationException: io.vlingo.schemata.codegen.TypeDefinitionCompilerActor
at java.lang.Class.newInstance(Class.java:427) ~[na:1.8.0_212]
at io.vlingo.actors.ActorFactory.actorFor(ActorFactory.java:74) ~[vlingo-actors-1.2.0.jar:na]
at io.vlingo.actors.Stage.createRawActor(Stage.java:667) ~[vlingo-actors-1.2.0.jar:na]
at io.vlingo.actors.Stage.actorProtocolFor(Stage.java:451) ~[vlingo-actors-1.2.0.jar:na]
at io.vlingo.actors.Stage.actorFor(Stage.java:112) ~[vlingo-actors-1.2.0.jar:na]
at io.vlingo.lattice.grid.Grid.actorFor(Grid.java:106) ~[vlingo-lattice-1.2.0.jar:na]
at io.vlingo.actors.ActorProxyBase.thunk(ActorProxyBase.java:16) ~[vlingo-actors-1.2.0.jar:na]
at io.vlingo.schemata.model.SchemaVersion__Proxy.lambda$diff$f4acaa83$1(SchemaVersion__Proxy.java:127) ~[classes/:na]
at io.vlingo.actors.LocalMessage.internalDeliver(LocalMessage.java:121) ~[vlingo-actors-1.2.0.jar:na]
at io.vlingo.actors.LocalMessage.deliver(LocalMessage.java:53) ~[vlingo-actors-1.2.0.jar:na]
at io.vlingo.actors.plugin.mailbox.concurrentqueue.ConcurrentQueueMailbox.run(ConcurrentQueueMailbox.java:101) ~[vlingo-actors-1.2.0.jar:na]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) ~[na:1.8.0_212]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) ~[na:1.8.0_212]
at java.lang.Thread.run(Thread.java:748) ~[na:1.8.0_212]
Caused by: java.lang.NoSuchMethodException: io.vlingo.schemata.codegen.TypeDefinitionCompilerActor.<init>()
at java.lang.Class.getConstructor0(Class.java:3082) ~[na:1.8.0_212]
at java.lang.Class.newInstance(Class.java:412) ~[na:1.8.0_212]
... 13 common frames omitted
java.lang.IllegalArgumentException: Actor instantiation failed because: io.vlingo.schemata.codegen.TypeDefinitionCompilerActor
at io.vlingo.actors.Stage.createRawActor(Stage.java:670)
at io.vlingo.actors.Stage.actorProtocolFor(Stage.java:451)
at io.vlingo.actors.Stage.actorFor(Stage.java:112)
at io.vlingo.lattice.grid.Grid.actorFor(Grid.java:106)
at io.vlingo.actors.ActorProxyBase.thunk(ActorProxyBase.java:16)
at io.vlingo.schemata.model.SchemaVersion__Proxy.lambda$diff$f4acaa83$1(SchemaVersion__Proxy.java:127)
at io.vlingo.actors.LocalMessage.internalDeliver(LocalMessage.java:121)
at io.vlingo.actors.LocalMessage.deliver(LocalMessage.java:53)
at io.vlingo.actors.plugin.mailbox.concurrentqueue.ConcurrentQueueMailbox.run(ConcurrentQueueMailbox.java:101)
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)
Caused by: java.lang.InstantiationException: io.vlingo.schemata.codegen.TypeDefinitionCompilerActor
at java.lang.Class.newInstance(Class.java:427)
at io.vlingo.actors.ActorFactory.actorFor(ActorFactory.java:74)
at io.vlingo.actors.Stage.createRawActor(Stage.java:667)
... 11 more
Caused by: java.lang.NoSuchMethodException: io.vlingo.schemata.codegen.TypeDefinitionCompilerActor.<init>()
at java.lang.Class.getConstructor0(Class.java:3082)
at java.lang.Class.newInstance(Class.java:412)
... 13 more
Since a recent (< 4d ago) upstream update, the test
io.vlingo.schemata.resource.ExtendedResourceTest#testSchemaVersionSelectionhangs, but only when run using maven from the shell. In IntelliJ, it runs fine.I have no idea what the difference is.
The CI build with the same commits on master ran fine 4 days ago.
I'm seeing an instantiation exception during creation of
TypeDefinitionCompilerActordue to missing constructor arguments, it seems that a no-arg constructor is expected somewhere, see below.It looks like vlingo/xoom-actors@4719dc9 was pushed in the timeframe in question, and shows up in the stack trace, so perhaps this is a suspect. Just guesswork as of now, though.
What happens is that
SchemaVersionEntitytries to use aTypeDefinitionCompilerActorin#diffthat is passed in via the commandio.vlingo.schemata.resource.SchemaVersionCommands#diffAgainst.To analyze:
5005mvn -Dmaven.surefire.debug testio/vlingo/actors/Stage.java:670; it will get hit in the error caseIn the debugger I see
diffmethod has the correct argumentsTypeDefinitionMiddleware, the compiler actor is found:src/main/java/io/vlingo/schemata/codegen/TypeDefinitionMiddleware.java:14io.vlingo.actors.ActorProxyBase#thunk, when trying to retrieve the actor forarg(which contains theTypeDefinitionMiddlewareused to retrieve theTypeDefinitionCompilerActor) from the grid, it receivesnullCan anyone (@buritos ?) shed some light on this? Thanks!