2009/3/16 Andreas <[email protected]>

>
> hi!
>
> i tried profiling my app, but it turns out there are some impediments
> which make profiler4j not work with guice.
> i as soon as i fire up an injector while under the -
> javaagent:agent.jar i get the following stacktrace:
> anyone experienced something similar? has anyone used a profiler
> successfully with guice?
>

I haven't used Profiler4j myself, but the exception suggests that it tried
to
use bytecode modification on a CGLIB generated class created by Guice

Profiler4j might be expecting a very specific bytecode structure (possibly
like the type javac produces) so while the CGLIB proxy class is originally
valid bytecode (although different to javac's) the profiled bytecode is not
because of assumptions made by Profiler4j

have you tried turning off profiling of these CGLIB generated classes?

ie. looking briefly at the Profiler4j docs this would be something like:

   *ByGuice*(*)        REJECT

note this rule should appear early in the list, before any accept rules

HTH

16.03.2009 01:16:52 org.apache.catalina.core.StandardContext
> listenerStart
> SCHWERWIEGEND: Error configuring application listener of class
> quan.bindings.Init
> java.lang.AssertionError: java.lang.AssertionError:
> java.lang.VerifyError: (class: quan/data/dao/LanguageDao$
> $EnhancerByGuice$$3f29a8d5, method: makeTransient signature: (Ljava/
> lang/Object;)V) Inconsistent stack height 1 != 2
>        at com.google.inject.InjectorImpl.getImplicitBinding
> (InjectorImpl.java:984)
>        at com.google.inject.InjectorImpl.getInternalFactory
> (InjectorImpl.java:308)
>        at com.google.inject.BindingBuilderImpl$FactoryProxy$1.run
> (BindingBuilderImpl.java:293)
>        at
> com.google.inject.InjectorImpl.withDefaultSource(InjectorImpl.java:
> 142)
>        at com.google.inject.BindingBuilderImpl$FactoryProxy.notify
> (BindingBuilderImpl.java:291)
>        at com.google.inject.BinderImpl.createInjector(BinderImpl.java:264)
>        at com.google.inject.Guice.createInjector(Guice.java:79)
>        at com.google.inject.Guice.createInjector(Guice.java:53)
>        at com.google.inject.Guice.createInjector(Guice.java:43)
>        at quan.bindings.Init.buildInjector(Init.java:52)
>        at quan.bindings.Init.<init>(Init.java:39)
>        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native
> Method)
>        at sun.reflect.NativeConstructorAccessorImpl.newInstance
> (NativeConstructorAccessorImpl.java:39)
>        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance
> (DelegatingConstructorAccessorImpl.java:27)
>        at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
>        at java.lang.Class.newInstance0(Class.java:355)
>        at java.lang.Class.newInstance(Class.java:308)
>        at org.apache.catalina.core.StandardContext.listenerStart
> (StandardContext.java:3787)
>        at org.apache.catalina.core.StandardContext.start
> (StandardContext.java:4342)
>        at org.apache.catalina.core.ContainerBase.addChildInternal
> (ContainerBase.java:791)
>        at
> org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:
> 771)
>        at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:
> 525)
>        at org.apache.catalina.startup.HostConfig.deployDescriptor
> (HostConfig.java:627)
>        at org.apache.catalina.startup.HostConfig.deployDescriptors
> (HostConfig.java:553)
>        at
> org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:
> 488)
>        at
> org.apache.catalina.startup.HostConfig.start(HostConfig.java:1149)
>        at org.apache.catalina.startup.HostConfig.lifecycleEvent
> (HostConfig.java:311)
>        at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent
> (LifecycleSupport.java:117)
>        at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:
> 1053)
>        at
> org.apache.catalina.core.StandardHost.start(StandardHost.java:719)
>        at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:
> 1045)
>        at
> org.apache.catalina.core.StandardEngine.start(StandardEngine.java:
> 443)
>        at org.apache.catalina.core.StandardService.start
> (StandardService.java:516)
>        at
> org.apache.catalina.core.StandardServer.start(StandardServer.java:
> 710)
>        at org.apache.catalina.startup.Catalina.start(Catalina.java:578)
>        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>        at sun.reflect.NativeMethodAccessorImpl.invoke
> (NativeMethodAccessorImpl.java:39)
>        at sun.reflect.DelegatingMethodAccessorImpl.invoke
> (DelegatingMethodAccessorImpl.java:25)
>        at java.lang.reflect.Method.invoke(Method.java:597)
>        at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
>        at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
> Caused by: java.lang.AssertionError: java.lang.VerifyError: (class:
> quan/data/dao/LanguageDao$$EnhancerByGuice$$3f29a8d5, method:
> makeTransient signature: (Ljava/lang/Object;)V) Inconsistent stack
> height 1 != 2
>        at com.google.inject.InjectorImpl.getImplicitBinding
> (InjectorImpl.java:984)
>        at com.google.inject.InjectorImpl.getInternalFactory
> (InjectorImpl.java:300)
>        at com.google.inject.InjectorImpl.createParameterInjector
> (InjectorImpl.java:524)
>        at com.google.inject.InjectorImpl.getParametersInjectors
> (InjectorImpl.java:515)
>        at com.google.inject.ConstructorInjector.createParameterInjector
> (ConstructorInjector.java:57)
>        at com.google.inject.ConstructorInjector.<init>
> (ConstructorInjector.java:38)
>        at com.google.inject.InjectorImpl$7.create(InjectorImpl.java:601)
>        at com.google.inject.InjectorImpl$7.create(InjectorImpl.java:594)
>        at com.google.inject.util.ReferenceCache.create(ReferenceCache.java:
> 53)
>        at com.google.inject.util.AbstractReferenceCache.internalCreate
> (AbstractReferenceCache.java:59)
>        at com.google.inject.util.AbstractReferenceCache.get
> (AbstractReferenceCache.java:116)
>        at com.google.inject.InjectorImpl.getConstructor(InjectorImpl.java:
> 765)
>        at com.google.inject.InjectorImpl.getImplicitBinding
> (InjectorImpl.java:973)
>        ... 40 more
> Caused by: java.lang.VerifyError: (class: quan/data/dao/LanguageDao$
> $EnhancerByGuice$$3f29a8d5, method: makeTransient signature: (Ljava/
> lang/Object;)V) Inconsistent stack height 1 != 2
>        at java.lang.Class.getDeclaredMethods0(Native Method)
>        at java.lang.Class.privateGetDeclaredMethods(Class.java:2427)
>        at java.lang.Class.getDeclaredMethod(Class.java:1935)
>        at com.google.inject.cglib.proxy.Enhancer.getCallbacksSetter
> (Enhancer.java:627)
>        at com.google.inject.cglib.proxy.Enhancer.setCallbacksHelper
> (Enhancer.java:615)
>        at com.google.inject.cglib.proxy.Enhancer.registerStaticCallbacks
> (Enhancer.java:591)
>        at com.google.inject.ProxyFactory.createConstructionProxy
> (ProxyFactory.java:158)
>        at com.google.inject.ProxyFactory$1.create(ProxyFactory.java:57)
>        at com.google.inject.ProxyFactory$1.create(ProxyFactory.java:56)
>        at com.google.inject.util.ReferenceCache.create(ReferenceCache.java:
> 53)
>        at com.google.inject.util.AbstractReferenceCache.internalCreate
> (AbstractReferenceCache.java:59)
>        at com.google.inject.util.AbstractReferenceCache.get
> (AbstractReferenceCache.java:116)
>        at com.google.inject.ProxyFactory.get(ProxyFactory.java:204)
>        at com.google.inject.ConstructorInjector.<init>
> (ConstructorInjector.java:41)
>        at com.google.inject.InjectorImpl$7.create(InjectorImpl.java:601)
>        at com.google.inject.InjectorImpl$7.create(InjectorImpl.java:594)
>        at com.google.inject.util.ReferenceCache.create(ReferenceCache.java:
> 53)
>        at com.google.inject.util.AbstractReferenceCache.internalCreate
> (AbstractReferenceCache.java:59)
>        at com.google.inject.util.AbstractReferenceCache.get
> (AbstractReferenceCache.java:116)
>        at com.google.inject.InjectorImpl.getConstructor(InjectorImpl.java:
> 765)
>        at com.google.inject.InjectorImpl.getImplicitBinding
> (InjectorImpl.java:973)
>        ... 52 more
> >
>


-- 
Cheers, Stuart

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"google-guice" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/google-guice?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to