I get this permgen space error even if I turn off the java agent but not if I 
change -XX:MaxPermSize=128m to -XX:MaxPermSize=1024m so it probably isn't an 
infinite loop.  Is it possible that the load time weaving uses a really lot 
more permgen space and that we need to e.g. double or quadruple the allotment?


thanks
david jencks


On May 29, 2011, at 12:43 AM, Timothy Ward wrote:

> 
> 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