Bug 104081 - LTW errors when weaving with JMX remote proxies
Summary: LTW errors when weaving with JMX remote proxies
Status: RESOLVED FIXED
Alias: None
Product: AspectJ
Classification: Tools
Component: Compiler (show other bugs)
Version: DEVELOPMENT   Edit
Hardware: All All
: P3 normal (vote)
Target Milestone: 1.5.0 M3   Edit
Assignee: Alexandre Vasseur CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2005-07-15 15:10 EDT by Ron Bodkin CLA
Modified: 2012-04-03 16:17 EDT (History)
0 users

See Also:


Attachments
adds the jmx remote internal package to the set that's excluded from weaving; since that also appears to include dynamic proxies (788 bytes, patch)
2005-07-15 15:11 EDT, Ron Bodkin CLA
aclement: iplog+
Details | Diff
working sample app (2.43 KB, application/octet-stream)
2005-07-21 03:17 EDT, Alexandre Vasseur CLA
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Ron Bodkin CLA 2005-07-15 15:10:16 EDT
When I try to start up a JMX connector server with load-time weaving enabled I 
get these error messages for what look like proxies. This happens on JRockIT 
1.5.0_02 and also on the Sun 1.5.0_02 VM. I think the easiest thing would be to 
put them on the not woven list in WeavingAdaptor (see patch).

Here is sample code that generates the problem with LTW enabled in the web app 
using it:
       
        JMXServiceURL url = new JMXServiceURL
("service:jmx:rmi:///jndi/rmi://localhost:7132/perfmon");

        JMXConnectorServer connectorServer = 
JMXConnectorServerFactory.newJMXConnectorServer(url, null, server);
        connectorServer.start(); // error happens here

Stack Traces:
error can't find type com.sun.jmx.remote.internal.PRef
java.lang.ClassCastException: org.aspectj.weaver.ResolvedTypeX$Missing
	at org.aspectj.weaver.bcel.BcelWorld.addSourceObjectType
(BcelWorld.java:273)
	at 
org.aspectj.weaver.tools.WeavingAdaptor$WeavingClassFileProvider.<init>
(WeavingAdaptor.java:353)
	at org.aspectj.weaver.tools.WeavingAdaptor.getWovenBytes
(WeavingAdaptor.java:227)
	at org.aspectj.weaver.tools.WeavingAdaptor.weaveClass
(WeavingAdaptor.java:178)
	at org.aspectj.weaver.loadtime.Aj.preProcess(Aj.java:55)
	at org.aspectj.weaver.loadtime.ClassPreProcessorAgentAdapter.transform
(ClassPreProcessorAgentAdapter.java:52)
	at sun.instrument.TransformerManager.transform(Unknown Source)
	at sun.instrument.InstrumentationImpl.transform(Unknown Source)
	at java.lang.ClassLoader.defineClass1(Native Method)
	at java.lang.ClassLoader.defineClass(Unknown Source)
	at javax.management.remote.rmi.NoCallStackClassLoader.findClass(Unknown 
Source)
	at java.lang.ClassLoader.loadClass(Unknown Source)
	at java.lang.ClassLoader.loadClass(Unknown Source)
	at javax.management.remote.rmi.RMIConnector$1.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at javax.management.remote.rmi.RMIConnector.<clinit>(Unknown Source)
	at javax.management.remote.rmi.RMIConnectorServer.objectToBind(Unknown 
Source)
	at javax.management.remote.rmi.RMIConnectorServer.start(Unknown Source)
	at aspectPerfManage.config.SimpleConfig.doConfig(SimpleConfig.aj:40)
	at 
aspectPerfManage.config.SimpleConfig.ajc$before$aspectPerfManage_config_SimpleCo
nfig$1$81249c3e_aroundBody0(SimpleConfig.aj:64)
	at aspectPerfManage.config.SimpleConfig$AjcClosure1.run
(SimpleConfig.aj:1)
	at 
aspectPerfManage.error.ErrorHandling.ajc$around$aspectPerfManage_error_ErrorHand
ling$1$ed5f19b0proceed(ErrorHandling.aj)
	at 
aspectPerfManage.error.ErrorHandling.ajc$around$aspectPerfManage_error_ErrorHand
ling$1$ed5f19b0(ErrorHandling.aj:48)
	at 
aspectPerfManage.config.SimpleConfig.ajc$before$aspectPerfManage_config_SimpleCo
nfig$1$81249c3e(SimpleConfig.aj:1)
	at servlets.BookStoreServlet.<clinit>(Unknown Source)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown 
Source)
	at java.lang.reflect.Constructor.newInstance(Unknown Source)
	at java.lang.Class.newInstance0(Unknown Source)
	at java.lang.Class.newInstance(Unknown Source)
	at org.apache.catalina.core.StandardWrapper.loadServlet
(StandardWrapper.java:1048)
	at org.apache.catalina.core.StandardWrapper.allocate
(StandardWrapper.java:750)
	at org.apache.catalina.core.StandardWrapperValve.invoke
(StandardWrapperValve.java:130)
	at org.apache.catalina.core.StandardContextValve.invoke
(StandardContextValve.java:178)
	at org.apache.catalina.core.StandardHostValve.invoke
(StandardHostValve.java:126)
	at org.apache.catalina.valves.ErrorReportValve.invoke
(ErrorReportValve.java:105)
	at org.apache.catalina.core.StandardEngineValve.invoke
(StandardEngineValve.java:107)
	at org.apache.catalina.connector.CoyoteAdapter.service
(CoyoteAdapter.java:148)
	at org.apache.coyote.http11.Http11Processor.process
(Http11Processor.java:856)
	at 
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnectio
n(Http11Protocol.java:744)
	at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket
(PoolTcpEndpoint.java:527)
	at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt
(LeaderFollowerWorkerThread.java:80)
	at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run
(ThreadPool.java:684)
	at java.lang.Thread.run(Unknown Source)
error can't find type com.sun.jmx.remote.internal.ProxyStub
java.lang.ClassCastException: org.aspectj.weaver.ResolvedTypeX$Missing
	at org.aspectj.weaver.bcel.BcelWorld.addSourceObjectType
(BcelWorld.java:273)
	at 
org.aspectj.weaver.tools.WeavingAdaptor$WeavingClassFileProvider.<init>
(WeavingAdaptor.java:353)
	at org.aspectj.weaver.tools.WeavingAdaptor.getWovenBytes
(WeavingAdaptor.java:227)
	at org.aspectj.weaver.tools.WeavingAdaptor.weaveClass
(WeavingAdaptor.java:178)
	at org.aspectj.weaver.loadtime.Aj.preProcess(Aj.java:55)
	at org.aspectj.weaver.loadtime.ClassPreProcessorAgentAdapter.transform
(ClassPreProcessorAgentAdapter.java:52)
	at sun.instrument.TransformerManager.transform(Unknown Source)
	at sun.instrument.InstrumentationImpl.transform(Unknown Source)
	at java.lang.ClassLoader.defineClass1(Native Method)
	at java.lang.ClassLoader.defineClass(Unknown Source)
	at javax.management.remote.rmi.NoCallStackClassLoader.findClass(Unknown 
Source)
	at java.lang.ClassLoader.loadClass(Unknown Source)
	at java.lang.ClassLoader.loadClass(Unknown Source)
	at javax.management.remote.rmi.RMIConnector$2.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at javax.management.remote.rmi.RMIConnector.<clinit>(Unknown Source)
	at javax.management.remote.rmi.RMIConnectorServer.objectToBind(Unknown 
Source)
	at javax.management.remote.rmi.RMIConnectorServer.start(Unknown Source)
	at aspectPerfManage.config.SimpleConfig.doConfig(SimpleConfig.aj:40)
	at 
aspectPerfManage.config.SimpleConfig.ajc$before$aspectPerfManage_config_SimpleCo
nfig$1$81249c3e_aroundBody0(SimpleConfig.aj:64)
	at aspectPerfManage.config.SimpleConfig$AjcClosure1.run
(SimpleConfig.aj:1)
	at 
aspectPerfManage.error.ErrorHandling.ajc$around$aspectPerfManage_error_ErrorHand
ling$1$ed5f19b0proceed(ErrorHandling.aj)
	at 
aspectPerfManage.error.ErrorHandling.ajc$around$aspectPerfManage_error_ErrorHand
ling$1$ed5f19b0(ErrorHandling.aj:48)
	at 
aspectPerfManage.config.SimpleConfig.ajc$before$aspectPerfManage_config_SimpleCo
nfig$1$81249c3e(SimpleConfig.aj:1)
	at servlets.BookStoreServlet.<clinit>(Unknown Source)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown 
Source)
	at java.lang.reflect.Constructor.newInstance(Unknown Source)
	at java.lang.Class.newInstance0(Unknown Source)
	at java.lang.Class.newInstance(Unknown Source)
	at org.apache.catalina.core.StandardWrapper.loadServlet
(StandardWrapper.java:1048)
	at org.apache.catalina.core.StandardWrapper.allocate
(StandardWrapper.java:750)
	at org.apache.catalina.core.StandardWrapperValve.invoke
(StandardWrapperValve.java:130)
	at org.apache.catalina.core.StandardContextValve.invoke
(StandardContextValve.java:178)
	at org.apache.catalina.core.StandardHostValve.invoke
(StandardHostValve.java:126)
	at org.apache.catalina.valves.ErrorReportValve.invoke
(ErrorReportValve.java:105)
	at org.apache.catalina.core.StandardEngineValve.invoke
(StandardEngineValve.java:107)
	at org.apache.catalina.connector.CoyoteAdapter.service
(CoyoteAdapter.java:148)
	at org.apache.coyote.http11.Http11Processor.process
(Http11Processor.java:856)
	at 
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnectio
n(Http11Protocol.java:744)
	at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket
(PoolTcpEndpoint.java:527)
	at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt
(LeaderFollowerWorkerThread.java:80)
	at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run
(ThreadPool.java:684)
	at java.lang.Thread.run(Unknown Source)
error can't find type com.sun.jmx.remote.internal.ProxyStub
java.lang.ClassCastException: org.aspectj.weaver.ResolvedTypeX$Missing
	at org.aspectj.weaver.bcel.BcelWorld.addSourceObjectType
(BcelWorld.java:273)
	at 
org.aspectj.weaver.tools.WeavingAdaptor$WeavingClassFileProvider.<init>
(WeavingAdaptor.java:353)
	at org.aspectj.weaver.tools.WeavingAdaptor.getWovenBytes
(WeavingAdaptor.java:227)
	at org.aspectj.weaver.tools.WeavingAdaptor.weaveClass
(WeavingAdaptor.java:178)
	at org.aspectj.weaver.loadtime.Aj.preProcess(Aj.java:55)
	at org.aspectj.weaver.loadtime.ClassPreProcessorAgentAdapter.transform
(ClassPreProcessorAgentAdapter.java:52)
	at sun.instrument.TransformerManager.transform(Unknown Source)
	at sun.instrument.InstrumentationImpl.transform(Unknown Source)
	at java.lang.ClassLoader.defineClass1(Native Method)
	at java.lang.ClassLoader.defineClass(Unknown Source)
	at javax.management.remote.rmi.NoCallStackClassLoader.findClass(Unknown 
Source)
	at java.lang.ClassLoader.loadClass(Unknown Source)
	at java.lang.ClassLoader.loadClass(Unknown Source)
	at javax.management.remote.rmi.RMIConnector$2.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at javax.management.remote.rmi.RMIConnector.<clinit>(Unknown Source)
	at javax.management.remote.rmi.RMIConnectorServer.objectToBind(Unknown 
Source)
	at javax.management.remote.rmi.RMIConnectorServer.start(Unknown Source)
	at aspectPerfManage.config.SimpleConfig.doConfig(SimpleConfig.aj:40)
	at 
aspectPerfManage.config.SimpleConfig.ajc$before$aspectPerfManage_config_SimpleCo
nfig$1$81249c3e_aroundBody0(SimpleConfig.aj:64)
	at aspectPerfManage.config.SimpleConfig$AjcClosure1.run
(SimpleConfig.aj:1)
	at 
aspectPerfManage.error.ErrorHandling.ajc$around$aspectPerfManage_error_ErrorHand
ling$1$ed5f19b0proceed(ErrorHandling.aj)
	at 
aspectPerfManage.error.ErrorHandling.ajc$around$aspectPerfManage_error_ErrorHand
ling$1$ed5f19b0(ErrorHandling.aj:48)
	at 
aspectPerfManage.config.SimpleConfig.ajc$before$aspectPerfManage_config_SimpleCo
nfig$1$81249c3e(SimpleConfig.aj:1)
	at servlets.BookStoreServlet.<clinit>(Unknown Source)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown 
Source)
	at java.lang.reflect.Constructor.newInstance(Unknown Source)
	at java.lang.Class.newInstance0(Unknown Source)
	at java.lang.Class.newInstance(Unknown Source)
	at org.apache.catalina.core.StandardWrapper.loadServlet
(StandardWrapper.java:1048)
	at org.apache.catalina.core.StandardWrapper.allocate
(StandardWrapper.java:750)
	at org.apache.catalina.core.StandardWrapperValve.invoke
(StandardWrapperValve.java:130)
	at org.apache.catalina.core.StandardContextValve.invoke
(StandardContextValve.java:178)
	at org.apache.catalina.core.StandardHostValve.invoke
(StandardHostValve.java:126)
	at org.apache.catalina.valves.ErrorReportValve.invoke
(ErrorReportValve.java:105)
	at org.apache.catalina.core.StandardEngineValve.invoke
(StandardEngineValve.java:107)
	at org.apache.catalina.connector.CoyoteAdapter.service
(CoyoteAdapter.java:148)
	at org.apache.coyote.http11.Http11Processor.process
(Http11Processor.java:856)
	at 
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnectio
n(Http11Protocol.java:744)
	at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket
(PoolTcpEndpoint.java:527)
	at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt
(LeaderFollowerWorkerThread.java:80)
	at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run
(ThreadPool.java:684)
	at java.lang.Thread.run(Unknown Source)
Comment 1 Ron Bodkin CLA 2005-07-15 15:11:10 EDT
Created attachment 24860 [details]
adds the jmx remote internal package to the set that's excluded from weaving; since that also appears to include dynamic proxies
Comment 2 Ron Bodkin CLA 2005-07-15 15:34:20 EDT
oops - I edited the wrong bug. Please ignore the last comment. It belongs to 
bug #104075.
Comment 3 Ron Bodkin CLA 2005-07-15 15:36:51 EDT
Actually, it posted in the right place, so the last comment stands. I was 
confused by bugzilla showing me this bug after editing the other one. Sorry!

(In reply to comment #2)
> oops - I edited the wrong bug. Please ignore the last comment. It belongs to 
> bug #104075.

Comment 4 Alexandre Vasseur CLA 2005-07-18 07:02:34 EDT
were u using -Daj5.def ?

I can now have it working thanks to a small fix. -Daj5.def was beeing assigned
to an odd jmx internal classloader without valid reasons.

Please confirm / infirm just for reference.
I 'll commit in some hours
Comment 5 Alexandre Vasseur CLA 2005-07-18 08:19:25 EDT
committed
Comment 6 Ron Bodkin CLA 2005-07-19 16:10:11 EDT
I am not using aj5.def; I am just using an aop.xml file and I see these errors.
Comment 7 Alexandre Vasseur CLA 2005-07-20 05:34:27 EDT
can you give it another try with cvs head, and tell me if your aop.xml is in
system classpath or some deployed webapp instead.

I ll attach my sample here so that u can try it as well
Comment 8 Alexandre Vasseur CLA 2005-07-21 03:16:28 EDT
cannot reproduce

please attach a test case / sample app that fails on cvs head

f.e.: log for attached app when -Daj.weaving.verbose=true
attached and shows correct loading of proxy things
Comment 9 Alexandre Vasseur CLA 2005-07-21 03:17:05 EDT
Created attachment 25119 [details]
working sample app
Comment 10 Alexandre Vasseur CLA 2005-07-26 04:07:22 EDT
should be fine based on sample
remind to fix when M3 ships
Comment 11 Ron Bodkin CLA 2005-07-28 03:22:46 EDT
This seems to be working even for aop.xml files. I tried the CVS HEAD version in
one environment and it now looks like it is working without having to exclude a
number of, but still need to get another application working properly against
CVS HEAD to confirm that it's working for me.
Comment 12 Alexandre Vasseur CLA 2005-09-27 09:27:29 EDT
was M3 remind
Comment 13 Alexandre Vasseur CLA 2005-09-27 09:28:39 EDT
was M3 remind