[weld-issues] [JBoss JIRA] Commented: (WELD-476) OutOfMemory Exception When Deploying (Bootstrapping) Single BDA with 621 classes

David Allen (JIRA) jira-events at lists.jboss.org
Mon May 10 04:11:06 EDT 2010


    [ https://jira.jboss.org/jira/browse/WELD-476?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12529832#action_12529832 ] 

David Allen commented on WELD-476:
----------------------------------

I will do this in phases that make the most sense.  The first phase will be to eliminate some of the sets that can be simple lists built from declared members.  This will change the API a little too, but all use cases only require an iterable collection.  Then the code will be ready to replace those collections with ones that can deal with the class hierarchy without replication of reflection data.

Other phases will also follow as time is available.

> OutOfMemory Exception When Deploying (Bootstrapping) Single BDA with 621 classes
> --------------------------------------------------------------------------------
>
>                 Key: WELD-476
>                 URL: https://jira.jboss.org/jira/browse/WELD-476
>             Project: Weld
>          Issue Type: Bug
>          Components: Bootstrap and Metamodel API
>    Affects Versions: 1.0.1.Final
>         Environment: GlassFish v3.01 Macos w/ 4 GB memory
>            Reporter: Roger Kitain
>            Assignee: David Allen
>         Attachments: WicketExamples.war
>
>
> Upon deploying a war with WEB-INF/beans.xml and 621 classes under WEB-INF/classes, an outofmemory exception is produced:
> org.glassfish.deployment.common.DeploymentException: java.lang.OutOfMemoryError: Java heap space
> 	at org.glassfish.weld.WeldDeployer.event(WeldDeployer.java:167)
> 	at org.glassfish.kernel.event.EventsImpl.send(EventsImpl.java:125)
> 	at org.glassfish.internal.data.ApplicationInfo.load(ApplicationInfo.java:224)
> 	at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:338)
> 	at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:183)
> 	at org.glassfish.deployment.admin.DeployCommand.execute(DeployCommand.java:272)
> 	at com.sun.enterprise.v3.admin.CommandRunnerImpl$1.execute(CommandRunnerImpl.java:310)
> 	at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:320)
> 	at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:1176)
> 	at com.sun.enterprise.v3.admin.CommandRunnerImpl.access$900(CommandRunnerImpl.java:83)
> 	at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1235)
> 	at org.glassfish.deployment.autodeploy.AutoOperation.run(AutoOperation.java:141)
> 	at org.glassfish.deployment.autodeploy.AutoDeployer.deploy(AutoDeployer.java:573)
> 	at org.glassfish.deployment.autodeploy.AutoDeployer.deployAll(AutoDeployer.java:459)
> 	at org.glassfish.deployment.autodeploy.AutoDeployer.run(AutoDeployer.java:391)
> 	at org.glassfish.deployment.autodeploy.AutoDeployer.run(AutoDeployer.java:376)
> 	at org.glassfish.deployment.autodeploy.AutoDeployService$1.run(AutoDeployService.java:195)
> 	at java.util.TimerThread.mainLoop(Timer.java:512)
> 	at java.util.TimerThread.run(Timer.java:462)
> Caused by: com.google.common.collect.ComputationException: java.lang.OutOfMemoryError: Java heap space
> 	at com.google.common.collect.MapMaker$StrategyImpl.compute(MapMaker.java:602)
> 	at com.google.common.collect.MapMaker$StrategyImpl.compute(MapMaker.java:462)
> 	at com.google.common.collect.CustomConcurrentHashMap$ComputingImpl.get(CustomConcurrentHashMap.java:2045)
> 	at org.jboss.weld.resources.ClassTransformer.loadClass(ClassTransformer.java:164)
> 	at org.jboss.weld.bootstrap.BeanDeployer.addClass(BeanDeployer.java:61)
> 	at org.jboss.weld.bootstrap.BeanDeployer.addClasses(BeanDeployer.java:88)
> 	at org.jboss.weld.bootstrap.BeanDeployment.deployBeans(BeanDeployment.java:134)
> 	at org.jboss.weld.bootstrap.WeldBootstrap.deployBeans(WeldBootstrap.java:377)
> 	at org.glassfish.weld.WeldDeployer.event(WeldDeployer.java:165)
> 	... 18 more
> Caused by: java.lang.OutOfMemoryError: Java heap space
> 	at java.lang.Class.copyMethods(Class.java:2745)
> 	at java.lang.Class.getDeclaredMethods(Class.java:1791)
> 	at org.jboss.weld.util.reflection.SecureReflections$8.work(SecureReflections.java:197)
> 	at org.jboss.weld.util.reflection.SecureReflections$8.work(SecureReflections.java:193)
> 	at org.jboss.weld.util.reflection.SecureReflectionAccess.run(SecureReflectionAccess.java:54)
> 	at org.jboss.weld.util.reflection.SecureReflectionAccess.runAndWrap(SecureReflectionAccess.java:67)
> 	at org.jboss.weld.util.reflection.SecureReflections.getDeclaredMethods(SecureReflections.java:192)
> 	at org.jboss.weld.introspector.jlr.WeldClassImpl.<init>(WeldClassImpl.java:282)
> 	at org.jboss.weld.introspector.jlr.WeldClassImpl.of(WeldClassImpl.java:140)
> 	at org.jboss.weld.resources.ClassTransformer$TransformTypeToWeldClass.apply(ClassTransformer.java:50)
> 	at org.jboss.weld.resources.ClassTransformer$TransformTypeToWeldClass.apply(ClassTransformer.java:38)
> 	at com.google.common.collect.MapMaker$StrategyImpl.compute(MapMaker.java:592)
> 	at com.google.common.collect.MapMaker$StrategyImpl.compute(MapMaker.java:462)
> 	at com.google.common.collect.CustomConcurrentHashMap$ComputingImpl.get(CustomConcurrentHashMap.java:2045)
> 	at org.jboss.weld.resources.ClassTransformer.loadClass(ClassTransformer.java:164)
> 	at org.jboss.weld.bootstrap.BeanDeployer.addClass(BeanDeployer.java:61)
> 	at org.jboss.weld.bootstrap.BeanDeployer.addClasses(BeanDeployer.java:88)
> 	at org.jboss.weld.bootstrap.BeanDeployment.deployBeans(BeanDeployment.java:134)
> 	at org.jboss.weld.bootstrap.WeldBootstrap.deployBeans(WeldBootstrap.java:377)
> 	at org.glassfish.weld.WeldDeployer.event(WeldDeployer.java:165)
> 	at org.glassfish.kernel.event.EventsImpl.send(EventsImpl.java:125)
> 	at org.glassfish.internal.data.ApplicationInfo.load(ApplicationInfo.java:224)
> 	at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:338)
> 	at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:183)
> 	at org.glassfish.deployment.admin.DeployCommand.execute(DeployCommand.java:272)
> 	at com.sun.enterprise.v3.admin.CommandRunnerImpl$1.execute(CommandRunnerImpl.java:310)
> 	at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:320)
> 	at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:1176)
> 	at com.sun.enterprise.v3.admin.CommandRunnerImpl.access$900(CommandRunnerImpl.java:83)
> 	at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1235)
> 	at org.glassfish.deployment.autodeploy.AutoOperation.run(AutoOperation.java:141)
> 	at org.glassfish.deployment.autodeploy.AutoDeployer.deploy(AutoDeployer.java:573)
> There is nothing special about the BDA passed to weld - a single BDA with 621 classes.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        


More information about the weld-issues mailing list