Hi David,

The latest versions of the Aries JPA container (in trunk) now support load-time 
weaving of entity classes using weaving hooks (on 4.3 compliant frameworks). 
The itests for this function should also be running the proxy bundles, so I 
would expect that to be a reasonably good test of JPA + Proxy weaving. I'm 
afraid that I don't know any way of hooking in the existing Java Agent, though 
it might be possible by mocking up a java.lang.instrument.Instrumentation 
object and passing it to the premain of the agent in code. It would be quite a 
hairy code path to mock up though!

Regards,

Tim

> From: [email protected]
> Subject: Another possible proxy problem
> Date: Sat, 28 May 2011 13:38:15 -0700
> To: [email protected]
> 
> I think I've supplied enough SerialVersionUIDs so geronimo isn't running into 
> the ARIEA-665 problem.  Now I get
> 
> Caused by: java.lang.OutOfMemoryError: PermGen space
>         at java.lang.ClassLoader.defineClass1(Native Method)
>         at java.lang.ClassLoader.defineClassCond(ClassLoader.java:632)
>         at java.lang.ClassLoader.defineClass(ClassLoader.java:616)
>         at 
> org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.defineClass(DefaultClassLoader.java:188)
>         at 
> org.eclipse.osgi.baseadaptor.loader.ClasspathManager.defineClass(ClasspathManager.java:601)
>         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.openjpa.persistence.PersistenceProviderImpl.createEntityManagerFactory(PersistenceProviderImpl.java:133)
>         at 
> org.apache.openjpa.persistence.PersistenceProviderImpl.createEntityManagerFactory(PersistenceProviderImpl.java:157)
>         at 
> org.apache.openjpa.persistence.PersistenceProviderImpl.createEntityManagerFactory(PersistenceProviderImpl.java:66)
>         at 
> javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:152)
>         at 
> javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:72)
>         at 
> org.apache.juddi.config.PersistenceManager.initializeEntityManagerFactory(PersistenceManager.java:57)
>         at 
> org.apache.juddi.config.AppConfig.loadConfiguration(AppConfig.java:95)
>         at org.apache.juddi.config.AppConfig.<init>(AppConfig.java:63)
>         at org.apache.juddi.config.AppConfig.getInstance(AppConfig.java:184)
>         at 
> org.apache.juddi.config.AppConfig.getConfiguration(AppConfig.java:206)
>         at org.apache.juddi.Registry.start(Registry.java:57)
>         at 
> org.apache.juddi.servlets.RegistryServlet.init(RegistryServlet.java:46)
>         at 
> org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1133)
>         at 
> org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1087)
>         at 
> org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:996)
>         at 
> org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4741)
> 
> trying to start a pre-deployed ee app that uses openjpa persistence (not 
> through aries).  I wonder if the proxy code is getting into some kind of loop 
> with the openjpa enhancement code?  Has anyone tested the proxy code in this 
> kind of situation?
> 
> Is there some new way to install the openjpa enhancement using the framework 
> weaving hooks that might sidestep this problem or avoid the need for a 
> javaagent (which the problem above is using)?
> 
> thanks
> david jencks
> 
                                          

Reply via email to