Quasar uses a plugin system to find information about suspendable
[quasar] WARNING: Expected to find a NewValue on stack index 1: Lcom/xxx/flow/common/InRouterActor$$EnhancerByGuice$$614a6ff0$$FastClassByGuice$$5aefc57f;ILjava/lang/Object;[Ljava/lang/Object; Ljava/lang/Boolean;Ljava/lang/Boolean;I[quasar] WARNING: Expected to find a NewValue on stack index 1: Lcom/xxx/flow/common/InRouterActor$$EnhancerByGuice$$614a6ff0$$FastClassByGuice$$5aefc57f;ILjava/lang/Object;[Ljava/lang/Object; Ljava/lang/Integer;Ljava/lang/Integer;I[quasar] WARNING: Expected to find a NewValue on stack index 1: Lcom/xxx/flow/common/InRouterActor$$EnhancerByGuice$$614a6ff0$$FastClassByGuice$$5aefc57f;ILjava/lang/Object;[Ljava/lang/Object; Ljava/lang/Boolean;Ljava/lang/Boolean;I[quasar] WARNING: Expected to find a NewValue on stack index 1: Lcom/xxx/flow/common/InRouterActor$$EnhancerByGuice$$614a6ff0$$FastClassByGuice$$5aefc57f;ILjava/lang/Object;[Ljava/lang/Object; Ljava/lang/Boolean;Ljava/lang/Boolean;I[quasar] WARNING: Expected to find a NewValue on stack index 1: Lcom/xxx/flow/common/InRouterActor$$EnhancerByGuice$$614a6ff0$$FastClassByGuice$$5aefc57f;ILjava/lang/Object;[Ljava/lang/Object; Ljava/lang/Boolean;Ljava/lang/Boolean;I[quasar] WARNING: Expected to find a NewValue on stack index 1: Lcom/xxx/flow/common/InRouterActor$$EnhancerByGuice$$614a6ff0$$FastClassByGuice$$5aefc57f;ILjava/lang/Object;[Ljava/lang/Object; Ljava/lang/Boolean;Ljava/lang/Boolean;I[quasar] WARNING: Expected to find a NewValue on stack index 1: Lcom/xxx/flow/common/InRouterActor$$EnhancerByGuice$$614a6ff0$$FastClassByGuice$$5aefc57f;ILjava/lang/Object;[Ljava/lang/Object; Ljava/lang/Integer;Ljava/lang/Integer;I[quasar] WARNING: Expected to find a NewValue on stack index 1: Lcom/xxx/flow/common/InRouterActor$$EnhancerByGuice$$614a6ff0$$FastClassByGuice$$5aefc57f;ILjava/lang/Object;[Ljava/lang/Object; Ljava/lang/reflect/InvocationTargetException;Ljava/lang/reflect/InvocationTargetException;Ljava/lang/Throwable;
Exception in Fiber "fiber-10000007" If this exception looks strange, perhaps you've forgotten to instrument a blocking method. Run your program with -Dco.paralleluniverse.fibers.verifyInstrumentation to catch the culprit!java.lang.NullPointerException at co.paralleluniverse.strands.Strand.park(Strand.java:493) at co.paralleluniverse.strands.ConditionSynchronizer.await(ConditionSynchronizer.java:54) at co.paralleluniverse.actors.Mailbox.await(Mailbox.java:90) at co.paralleluniverse.actors.SelectiveReceiveHelper.receive(SelectiveReceiveHelper.java:145) at co.paralleluniverse.actors.behaviors.RequestReplyHelper.call(RequestReplyHelper.java:174) at co.paralleluniverse.actors.behaviors.RequestReplyHelper.call(RequestReplyHelper.java:112) at com.xxx.flow.common.GeneralActor.call(GeneralActor.java:35) at com.xxx.flow.common.InRouterActor.doAct(InRouterActor.java:107) at com.xxx.flow.common.InRouterActor$$EnhancerByGuice$$ad937cc0.CGLIB$doAct$0(<generated>) at com.xxx.flow.common.InRouterActor$$EnhancerByGuice$$ad937cc0$$FastClassByGuice$$5da08793.invoke(<generated>) at com.google.inject.internal.cglib.proxy.$MethodProxy.invokeSuper(MethodProxy.java:228) at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:75) at com.xxx.metrics.inject.TimerInterceptor.invoke(TimerInterceptor.java:31) at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:75) at com.google.inject.internal.InterceptorStackCallback.intercept(InterceptorStackCallback.java:55) at com.xxx.flow.common.InRouterActor$$EnhancerByGuice$$ad937cc0.doAct(<generated>) at com.xxx.flow.common.GeneralActor.doRun(GeneralActor.java:62) at com.xxx.flow.common.GeneralActor.doRun(GeneralActor.java:18) at com.xxx.flow.common.InRouterActor$$EnhancerByGuice$$ad937cc0.doRun(<generated>) at co.paralleluniverse.actors.Actor.run0(Actor.java:691) at co.paralleluniverse.actors.ActorRunner.run(ActorRunner.java:51) at co.paralleluniverse.fibers.Fiber.run(Fiber.java:1027)
if (className.contains("$$EnhancerByGuice")
&& className.contains("$$FastClassByGuice$$")
&& methodName.equals("invoke")) {
return MethodDatabase.SuspendableType.SUSPENDABLE;
}
Line 5998: [quasar] INFO: Method test/test/TestActor$$EnhancerByGuice$$febeab15#test suspendable: SUSPENDABLE (markedSuspendable: SUSPENDABLE setSuspendable: null)
Line 5743: [quasar] INFO: Method com/google/inject/internal/InterceptorStackCallback#intercept suspendable: SUSPENDABLE (markedSuspendable: SUSPENDABLE setSuspendable: null) Line 5747: [quasar] INFO: About to instrument method com/google/inject/internal/InterceptorStackCallback#intercept(Ljava/lang/Object;Ljava/lang/reflect/Method;[Ljava/lang/Object;Lcom/google/inject/internal/cglib/proxy/$MethodProxy;)Ljava/lang/Object; Line 5752: [quasar] INFO: Instrumenting method com/google/inject/internal/InterceptorStackCallback#intercept(Ljava/lang/Object;Ljava/lang/reflect/Method;[Ljava/lang/Object;Lcom/google/inject/internal/cglib/proxy/$MethodProxy;)Ljava/lang/Object; Line 5753: [quasar] DEBUG: [OPTIMIZE] Examining method com/google/inject/internal/InterceptorStackCallback#intercept(Ljava/lang/Object;Ljava/lang/reflect/Method;[Ljava/lang/Object;Lcom/google/inject/internal/cglib/proxy/$MethodProxy;)Ljava/lang/Object; with susCallsIndexes=[10] Line 5754: [quasar] DEBUG: Annotating method com/google/inject/internal/InterceptorStackCallback#intercept(Ljava/lang/Object;Ljava/lang/reflect/Method;[Ljava/lang/Object;Lcom/google/inject/internal/cglib/proxy/$MethodProxy;)Ljava/lang/Object; with @Instrumented(suspendableCallSites=[55],methodStart=55,methodEnd=55,methodOptimized=false)
Line 5756: [quasar] DEBUG: Method call at instruction 10 to com/google/inject/internal/InterceptorStackCallback$InterceptedMethodInvocation#proceed()Ljava/lang/Object; is suspendable Line 5761: [quasar] INFO: Method com/google/inject/internal/InterceptorStackCallback$InterceptedMethodInvocation#proceed suspendable: SUSPENDABLE (markedSuspendable: SUSPENDABLE setSuspendable: SUSPENDABLE) Line 5766: [quasar] INFO: About to instrument method com/google/inject/internal/InterceptorStackCallback$InterceptedMethodInvocation#proceed()Ljava/lang/Object; Line 5768: [quasar] INFO: Instrumenting method com/google/inject/internal/InterceptorStackCallback$InterceptedMethodInvocation#proceed()Ljava/lang/Object; Line 5769: [quasar] DEBUG: [OPTIMIZE] Examining method com/google/inject/internal/InterceptorStackCallback$InterceptedMethodInvocation#proceed()Ljava/lang/Object; with susCallsIndexes=[15, 39, 50] Line 5770: [quasar] DEBUG: Annotating method com/google/inject/internal/InterceptorStackCallback$InterceptedMethodInvocation#proceed()Ljava/lang/Object; with @Instrumented(suspendableCallSites=[75, 75, 80],methodStart=75,methodEnd=81,methodOptimized=false)
Line 3458: [quasar] INFO: Method org/aopalliance/intercept/MethodInterceptor#invoke suspendable: SUSPENDABLE_SUPER (markedSuspendable: SUSPENDABLE_SUPER setSuspendable: null) Line 3463: [quasar] INFO: Method test/test/Interceptor#invoke suspendable: SUSPENDABLE (markedSuspendable: SUSPENDABLE setSuspendable: null) Line 3464: [quasar] INFO: About to instrument method test/test/Interceptor#invoke(Lorg/aopalliance/intercept/MethodInvocation;)Ljava/lang/Object; Line 3465: [quasar] INFO: Instrumenting method test/test/Interceptor#invoke(Lorg/aopalliance/intercept/MethodInvocation;)Ljava/lang/Object; Line 3466: [quasar] DEBUG: [OPTIMIZE] Examining method test/test/Interceptor#invoke(Lorg/aopalliance/intercept/MethodInvocation;)Ljava/lang/Object; with susCallsIndexes=[14] Line 3467: [quasar] DEBUG: Annotating method test/test/Interceptor#invoke(Lorg/aopalliance/intercept/MethodInvocation;)Ljava/lang/Object; with @Instrumented(suspendableCallSites=[21],methodStart=19,methodEnd=24,methodOptimized=false) Line 5775: [quasar] DEBUG: Method call at instruction 39 to org/aopalliance/intercept/MethodInterceptor#invoke(Lorg/aopalliance/intercept/MethodInvocation;)Ljava/lang/Object; to suspendable-super (instrumentation for proxy support will be enabled)
[quasar] INFO: Instrumenting method com/google/inject/internal/InterceptorStackCallback$InterceptedMethodInvocation#proceed()Ljava/lang/Object;
...
[quasar] DEBUG: Annotating method com/google/inject/internal/InterceptorStackCallback$InterceptedMethodInvocation#proceed()Ljava/lang/Object; with @Instrumented(suspendableCallSites=[75, 80],methodStart=75,methodEnd=81,methodOptimized=false)
[quasar] DEBUG: Method call at instruction 15 to com/google/inject/internal/cglib/proxy/$MethodProxy#invokeSuper(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object; is suspendable
...
[quasar] DEBUG: Method call at instruction 39 to org/aopalliance/intercept/MethodInterceptor#invoke(Lorg/aopalliance/intercept/MethodInvocation;)Ljava/lang/Object; is not suspendable
public Object proceed() throws Throwable {
try {
return index == interceptors.length
? methodProxy.invokeSuper(proxy, arguments)
: interceptors[index].invoke(
new InterceptedMethodInvocation(proxy, methodProxy, arguments, index + 1));
} catch (Throwable t) {
pruneStacktrace(t);
throw t;
}
}
27: invokevirtual #51 // Method com/google/inject/internal/cglib/proxy/$MethodProxy.invokeSuper:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
...
74: invokeinterface #59, 2 // InterfaceMethod org/aopalliance/intercept/MethodInterceptor.invoke:(Lorg/aopalliance/intercept/MethodInvocation;)Ljava/lang/Object;
LineNumberTable:
line 75: 0
line 79: 80
line 80: 81
line 81: 89