On Jun 8, 2011, at 3:54 AM, Timothy Ward wrote:

> 
> Hi,
> 
> This failure (and a couple of others which I fixed last night) was caused by 
> a small code shift in the recent proxy activity. I have adjusted our JSR 
> inlining so that this test passes, and that it shouldn't be possible to get 
> this wrong again in future.
> 
> See commit 1133335 for the fix. Sorry for the inconvenience.

thanks for fixing this!
> 
> We should now have all of the original function restored to ARIES-669, and 
> have eliminated a decent chunk of the extra PermGen usage you were seeing in 
> Geronimo in ARIES-671.

I have a small bit of evidence that the permgen usage is still quite a bit 
larger than it used to be, but this requires more investigation.
> 
> We have a remaining action to make WovenProxy synthetic. Is there anything 
> more you're expecting?

not yet :-)

I notice when geronimo starts there are hundreds of logs like this:

2011-06-08 15:47:19,206 INFO  [ProxyWeavingHook] The class 
org.apache.felix.gogo.runtime.activator.Activator$1 cannot be woven, it may not 
be possible for the runtime to proxy this class.
java.lang.RuntimeException: The method modified in class 
org.osgi.util.tracker.ServiceTracker cannot be called by 
org.apache.felix.gogo.runtime.activator.Activator$1 because it is in a 
different package.
        at 
org.apache.aries.proxy.impl.weaving.MethodCopyingClassAdapter.visitMethod(MethodCopyingClassAdapter.java:108)
        at org.objectweb.asm.ClassReader.accept(Unknown Source)
        at org.objectweb.asm.ClassReader.accept(Unknown Source)
        at 
org.apache.aries.proxy.impl.common.AbstractWovenProxyAdapter.readClass(AbstractWovenProxyAdapter.java:631)
        at 
org.apache.aries.proxy.impl.weaving.WovenProxyAdapter.visitEnd(WovenProxyAdapter.java:75)
        at org.objectweb.asm.ClassAdapter.visitEnd(Unknown Source)
        at org.objectweb.asm.commons.SerialVersionUIDAdder.visitEnd(Unknown 
Source)
        at 
org.apache.aries.proxy.impl.weaving.SyntheticSerialVerUIDAdder.visitEnd(SyntheticSerialVerUIDAdder.java:35)
        at org.objectweb.asm.ClassReader.accept(Unknown Source)
        at org.objectweb.asm.ClassReader.accept(Unknown Source)
        at 
org.apache.aries.proxy.impl.weaving.WovenProxyGenerator.getWovenProxy(WovenProxyGenerator.java:52)
        at 
org.apache.aries.proxy.impl.weaving.ProxyWeavingHook.weave(ProxyWeavingHook.java:62)
        at 
org.eclipse.osgi.internal.baseadaptor.weaving.WovenClassImpl.call(WovenClassImpl.java:129)
        at 
org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.notifyHookPrivileged(ServiceRegistry.java:1239)
        at 
org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.notifyHooksPrivileged(ServiceRegistry.java:1222)
        at 
org.eclipse.osgi.internal.baseadaptor.weaving.WovenClassImpl.callHooks(WovenClassImpl.java:154)
        at 
org.eclipse.osgi.internal.baseadaptor.weaving.WeavingHookConfigurator.processClass(WeavingHookConfigurator.java:68)
        at 
org.eclipse.osgi.baseadaptor.loader.ClasspathManager.defineClass(ClasspathManager.java:596)
        at 
org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findClassImpl(ClasspathManager.java:567)
        at 
org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClassImpl(ClasspathManager.java:490)
        at 
org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass_LockClassLoader(ClasspathManager.java:478)
        at 
org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:458)
        at 
org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:216)
        at 
org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:400)
        at 
org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:476)
        at 
org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:429)
        at 
org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:417)
        at 
org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
        at 
org.apache.karaf.shell.console.jline.Activator.<init>(Activator.java:27)
        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.eclipse.osgi.framework.internal.core.AbstractBundle.loadBundleActivator(AbstractBundle.java:166)
        at 
org.eclipse.osgi.framework.internal.core.BundleContextImpl.start(BundleContextImpl.java:679)
        at 
org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:381)
        at 
org.eclipse.osgi.framework.internal.core.AbstractBundle.resume(AbstractBundle.java:389)
        at 
org.eclipse.osgi.framework.internal.core.Framework.resumeBundle(Framework.java:1130)
        at 
org.eclipse.osgi.framework.internal.core.StartLevelManager.resumeBundles(StartLevelManager.java:559)
        at 
org.eclipse.osgi.framework.internal.core.StartLevelManager.resumeBundles(StartLevelManager.java:544)
        at 
org.eclipse.osgi.framework.internal.core.StartLevelManager.incFWSL(StartLevelManager.java:457)
        at 
org.eclipse.osgi.framework.internal.core.StartLevelManager.doSetStartLevel(StartLevelManager.java:243)
        at 
org.eclipse.osgi.framework.internal.core.StartLevelManager.dispatchEvent(StartLevelManager.java:438)
        at 
org.eclipse.osgi.framework.internal.core.StartLevelManager.dispatchEvent(StartLevelManager.java:1)
        at 
org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230)
        at 
org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:340)
Caused by: org.apache.aries.proxy.UnableToProxyException: 
org.osgi.util.tracker.ServiceTracker
        ... 49 more


and

2011-06-08 15:47:19,298 INFO  [ProxyWeavingHook] The class 
org.fusesource.jansi.AnsiConsole$1 cannot be woven, it may not be possible for 
the runtime to proxy this class.
java.lang.RuntimeException: org.apache.aries.proxy.UnableToProxyException: The 
class org.fusesource.jansi.AnsiConsole$1 and its superclass 
java.io.FilterOutputStream do not have no-args constructors and cannot be woven.
        at 
org.apache.aries.proxy.impl.common.AbstractWovenProxyAdapter.writeCreateNewProxyInstanceAndConstructor(AbstractWovenProxyAdapter.java:488)
        at 
org.apache.aries.proxy.impl.common.AbstractWovenProxyAdapter.visitEnd(AbstractWovenProxyAdapter.java:343)
        at 
org.apache.aries.proxy.impl.weaving.WovenProxyAdapter.visitEnd(WovenProxyAdapter.java:83)
        at org.objectweb.asm.ClassAdapter.visitEnd(Unknown Source)
        at org.objectweb.asm.commons.SerialVersionUIDAdder.visitEnd(Unknown 
Source)
        at 
org.apache.aries.proxy.impl.weaving.SyntheticSerialVerUIDAdder.visitEnd(SyntheticSerialVerUIDAdder.java:35)
        at org.objectweb.asm.ClassReader.accept(Unknown Source)
        at org.objectweb.asm.ClassReader.accept(Unknown Source)
        at 
org.apache.aries.proxy.impl.weaving.WovenProxyGenerator.getWovenProxy(WovenProxyGenerator.java:52)
        at 
org.apache.aries.proxy.impl.weaving.ProxyWeavingHook.weave(ProxyWeavingHook.java:62)
        at 
org.eclipse.osgi.internal.baseadaptor.weaving.WovenClassImpl.call(WovenClassImpl.java:129)
        at 
org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.notifyHookPrivileged(ServiceRegistry.java:1239)
        at 
org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.notifyHooksPrivileged(ServiceRegistry.java:1222)
        at 
org.eclipse.osgi.internal.baseadaptor.weaving.WovenClassImpl.callHooks(WovenClassImpl.java:154)
        at 
org.eclipse.osgi.internal.baseadaptor.weaving.WeavingHookConfigurator.processClass(WeavingHookConfigurator.java:68)
        at 
org.eclipse.osgi.baseadaptor.loader.ClasspathManager.defineClass(ClasspathManager.java:596)
        at 
org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findClassImpl(ClasspathManager.java:567)
        at 
org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClassImpl(ClasspathManager.java:490)
        at 
org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass_LockClassLoader(ClasspathManager.java:478)
        at 
org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:458)
        at 
org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:216)
        at 
org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:400)
        at 
org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:476)
        at 
org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:429)
        at 
org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:417)
        at 
org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
        at 
org.apache.karaf.shell.console.jline.Activator.start(Activator.java:30)
        at 
org.eclipse.osgi.framework.internal.core.BundleContextImpl$1.run(BundleContextImpl.java:711)
        at java.security.AccessController.doPrivileged(Native Method)
        at 
org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActivator(BundleContextImpl.java:702)
        at 
org.eclipse.osgi.framework.internal.core.BundleContextImpl.start(BundleContextImpl.java:683)
        at 
org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:381)
        at 
org.eclipse.osgi.framework.internal.core.AbstractBundle.resume(AbstractBundle.java:389)
        at 
org.eclipse.osgi.framework.internal.core.Framework.resumeBundle(Framework.java:1130)
        at 
org.eclipse.osgi.framework.internal.core.StartLevelManager.resumeBundles(StartLevelManager.java:559)
        at 
org.eclipse.osgi.framework.internal.core.StartLevelManager.resumeBundles(StartLevelManager.java:544)
        at 
org.eclipse.osgi.framework.internal.core.StartLevelManager.incFWSL(StartLevelManager.java:457)
        at 
org.eclipse.osgi.framework.internal.core.StartLevelManager.doSetStartLevel(StartLevelManager.java:243)
        at 
org.eclipse.osgi.framework.internal.core.StartLevelManager.dispatchEvent(StartLevelManager.java:438)
        at 
org.eclipse.osgi.framework.internal.core.StartLevelManager.dispatchEvent(StartLevelManager.java:1)
        at 
org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230)
        at 
org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:340)
Caused by: org.apache.aries.proxy.UnableToProxyException: The class 
org.fusesource.jansi.AnsiConsole$1 and its superclass 
java.io.FilterOutputStream do not have no-args constructors and cannot be woven.
        ... 43 more


Is this level of detail appropriate?  It looks to me like either we've done 
something dreadfully wrong or there's way too much logging.  Personally I think 
expecting any non-interface class to be proxiable is a stretch.

thanks
david jencks

> 
> Regards,
> 
> Tim
> 
> ----------------------------------------
>> From: [email protected]
>> Subject: broken build?
>> Date: Tue, 7 Jun 2011 13:48:41 -0700
>> To: [email protected]
>> 
>> Today my aries build breaks with a test failure in 
>> JPAWeavingAndAnnotationScanningTest. Does anyone else see this? Could it be 
>> due to the proxy/weaving changes?
>> 
>> thanks
>> david jencks
>> 
>                                         

Reply via email to