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 >
