[prev in list] [next in list] [prev in thread] [next in thread] 

List:       groovy-scm
Subject:    [groovy-scm] [jira] Commented: (GRECLIPSE-870) Groovy compilation hangs for a
From:       "Rene Scheibe (JIRA)" <jira () codehaus ! org>
Date:       2011-09-30 21:32:17
Message-ID: 190172520.10646.1317418337630.JavaMail.j2ee-jira () codehaus01-new ! managed ! contegix ! com
[Download RAW message or body]


    [ https://jira.codehaus.org/browse/GRECLIPSE-870?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=280413#comment-280413 \
] 

Rene Scheibe commented on GRECLIPSE-870:
----------------------------------------

Just installed MoreUnit under Eclipse 3.7.1 - no problems so far. Thanks for the good \
work guys.

> Groovy compilation hangs for a long time or fails with an OutOfMemoryException
> ------------------------------------------------------------------------------
> 
> Key: GRECLIPSE-870
> URL: https://jira.codehaus.org/browse/GRECLIPSE-870
> Project: GRECLIPSE
> Issue Type: Bug
> Components: Compiler Integration
> Affects Versions: 2.1.0Release, 2.1.1Release
> Reporter: Rene Scheibe
> Assignee: Andy Clement
> Fix For: 2.5.2.Release
> 
> Attachments: example-added-to-grails.patch, GRECLIPSE-870-installation_history.PNG, \
> GRECLIPSE-870-miniproject.zip, SlowGroovyEclipse.tar.gz, visualvm.png 
> 
> Compilation either takes around 10min instead of 30s to finish or stops with an \
> OutOfMemoryException for our project. During such "hangs" one CPU core has 100% \
> utilization. This behaviour just popped up some days ago but I cannot pin it down \
> to a special class. When removing all folders containing Groovy files from the \
> build path the problem goes away. I also tried the sugestion from Andy Clement, \
> which has not impact. The problem also occurs when a "Clean Project" is performed. \
> "You could try turning off 'report problems as you type' to see if that makes \
> things more reliable (that will help us eliminate one area of the code). It is \
> configured under Java>Editor preferences." I also compiled the project without the \
>                 Eclipse UI, just on the commandline via:
> ./eclipse -noSplash -data "PATH_TO_MY_WORKSPACE" -application \
> org.eclipse.jdt.apt.core.aptBuild See results below:
> > compiled 390070 lines in 384851ms:1013.5lines/s
> > parse: 9015 ms (2.3%), resolve: 364607 ms (94.7%), analyze: 952 ms (0.2%), \
> > generate: 8128 ms (2.1%)
> I also attached a VisualVM screenshot which may help.
> (NOTE: I think the invokation count is not correct as I was not using the profiler)
> Here are some entries from workspace/.log:
> > !SESSION 2010-10-27 09:42:56.071 -----------------------------------------------
> > eclipse.buildId=M20100909-0800
> > java.version=1.6.0_22
> > java.vendor=Sun Microsystems Inc.
> > BootLoader constants: OS=linux, ARCH=x86, WS=gtk, NL=en_US
> > Framework arguments:  -product org.eclipse.epp.package.java.product
> > Command-line arguments:  -os linux -ws gtk -arch x86 -product \
> > org.eclipse.epp.package.java.product 
> > !ENTRY org.eclipse.core.resources 2 10035 2010-10-27 09:43:03.393
> > !MESSAGE The workspace exited with unsaved changes in the previous session; \
> > refreshing workspace to recover changes. 
> > !ENTRY org.eclipse.jdt.core 4 4 2010-10-27 09:45:20.052
> > !MESSAGE Groovy bug when compiling.
> > !STACK 0
> > BUG! exception in phase 'semantic analysis' in source unit 'SomeClass1.groovy' \
> > commencingResolution failed: declaration found, but unexpectedly found no scope \
> > for some.package.SomeClass1 at \
> > org.codehaus.groovy.control.CompilationUnit.applyToSourceUnits(CompilationUnit.java:952)
> >  at org.codehaus.groovy.control.CompilationUnit.doPhaseOperation(CompilationUnit.java:574)
> >  at org.codehaus.groovy.control.CompilationUnit.processPhaseOperations(CompilationUnit.java:550)
> >  at org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java:527)
> > at org.codehaus.jdt.groovy.internal.compiler.ast.GroovyCompilationUnitDeclaration.processToPhase(GroovyCompilationUnitDeclaration.java:165)
> >  at org.codehaus.jdt.groovy.internal.compiler.ast.GroovyCompilationUnitDeclaration.resolve(GroovyCompilationUnitDeclaration.java:1792)
> >  at org.eclipse.jdt.internal.core.search.matching.MatchLocator.process(MatchLocator.java:1733)
> >  at org.eclipse.jdt.internal.core.search.matching.MatchLocator.locateMatches(MatchLocator.java:1123)
> >  at org.eclipse.jdt.internal.core.search.matching.MatchLocator.locateMatches(MatchLocator.java:1223)
> >  at org.eclipse.jdt.internal.core.search.matching.MatchLocator.locateMatches(MatchLocator.java:1355)
> >  at org.eclipse.jdt.internal.core.search.JavaSearchParticipant.locateMatches(JavaSearchParticipant.java:94)
> >  at org.eclipse.jdt.internal.core.search.BasicSearchEngine.findMatches(BasicSearchEngine.java:231)
> >  at org.eclipse.jdt.internal.core.search.BasicSearchEngine.search(BasicSearchEngine.java:515)
> >  at org.eclipse.jdt.core.search.SearchEngine.search(SearchEngine.java:582)
> > at org.moreunit.util.SearchTools.searchFor(SearchTools.java:61)
> > at org.moreunit.util.TestCaseDiviner.findPotentialTargets(TestCaseDiviner.java:89)
> >  at org.moreunit.util.TestCaseDiviner.<init>(TestCaseDiviner.java:41)
> > at org.moreunit.elements.ClassTypeFacade.getTestCaseDiviner(ClassTypeFacade.java:181)
> >  at org.moreunit.elements.ClassTypeFacade.getCorrespondingTestCaseList(ClassTypeFacade.java:89)
> >  at org.moreunit.decorator.UnitDecorator.hasTestCase(UnitDecorator.java:50)
> > at org.moreunit.decorator.UnitDecorator.decorate(UnitDecorator.java:35)
> > at org.eclipse.ui.internal.decorators.LightweightDecoratorDefinition.decorate(LightweightDecoratorDefinition.java:263)
> >  at org.eclipse.ui.internal.decorators.LightweightDecoratorManager$LightweightRunnable.run(LightweightDecoratorManager.java:81)
> >  at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
> > at org.eclipse.ui.internal.decorators.LightweightDecoratorManager.decorate(LightweightDecoratorManager.java:365)
> >  at org.eclipse.ui.internal.decorators.LightweightDecoratorManager.getDecorations(LightweightDecoratorManager.java:347)
> >  at org.eclipse.ui.internal.decorators.DecorationScheduler$1.ensureResultCached(DecorationScheduler.java:371)
> >  at org.eclipse.ui.internal.decorators.DecorationScheduler$1.run(DecorationScheduler.java:331)
> >  at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
> > Caused by: org.codehaus.jdt.groovy.internal.compiler.ast.GroovyEclipseBug: \
> > commencingResolution failed: declaration found, but unexpectedly found no scope \
> > for some.package.SomeClass1 at \
> > org.codehaus.jdt.groovy.internal.compiler.ast.JDTResolver.commencingResolution(JDTResolver.java:530)
> >  at org.codehaus.groovy.control.ResolveVisitor.visitClass(ResolveVisitor.java:1312)
> >  at org.codehaus.groovy.control.ResolveVisitor.startResolving(ResolveVisitor.java:165)
> >  at org.codehaus.jdt.groovy.internal.compiler.ast.JDTResolver.startResolving(JDTResolver.java:577)
> >  at org.codehaus.groovy.control.CompilationUnit$1.call(CompilationUnit.java:680)
> > at org.codehaus.groovy.control.CompilationUnit.applyToSourceUnits(CompilationUnit.java:943)
> >                 
> > ... 28 more
> > 
> > ...
> > 
> > !ENTRY org.eclipse.jdt.core 4 4 2010-10-27 09:51:22.223
> > !MESSAGE Error performing search for SomeClass2.groovy
> > !STACK 0
> > org.codehaus.jdt.groovy.internal.compiler.ast.GroovyEclipseBug: Cannot find type \
> > variable on method declaring element public static OngoingStubbing<T> when(T) at \
> > org.codehaus.jdt.groovy.internal.compiler.ast.JDTResolver.createClassNode(JDTResolver.java:388)
> >  at org.codehaus.jdt.groovy.internal.compiler.ast.JDTResolver.createJDTClassNode(JDTResolver.java:305)
> >  at org.codehaus.jdt.groovy.internal.compiler.ast.JDTResolver.convertToClassNode(JDTResolver.java:293)
> >  at org.codehaus.jdt.groovy.internal.compiler.ast.JDTClassNode.convertJdtParametersToGroovyParameters(JDTClassNode.java:319)
> >  at org.codehaus.jdt.groovy.internal.compiler.ast.JDTClassNode.methodBindingToMethodNode(JDTClassNode.java:289)
> >  at org.codehaus.jdt.groovy.internal.compiler.ast.JDTClassNode.initializeMembers(JDTClassNode.java:219)
> >  at org.codehaus.jdt.groovy.internal.compiler.ast.JDTClassNode.initialize(JDTClassNode.java:207)
> >  at org.codehaus.jdt.groovy.internal.compiler.ast.JDTClassNode.lazyClassInit(JDTClassNode.java:142)
> >  at org.codehaus.jdt.groovy.internal.compiler.ast.JDTClassNode.ensurePropertiesInitialized(JDTClassNode.java:451)
> >  at org.codehaus.jdt.groovy.internal.compiler.ast.JDTClassNode.getProperty(JDTClassNode.java:505)
> >  at org.eclipse.jdt.groovy.search.SimpleTypeLookup.findPropertyInClass(SimpleTypeLookup.java:616)
> >  at org.eclipse.jdt.groovy.search.SimpleTypeLookup.findDeclaration(SimpleTypeLookup.java:536)
> >  at org.eclipse.jdt.groovy.search.SimpleTypeLookup.findTypeForNameWithKnownObjectExpression(SimpleTypeLookup.java:382)
> >  at org.eclipse.jdt.groovy.search.SimpleTypeLookup.findType(SimpleTypeLookup.java:196)
> >  at org.eclipse.jdt.groovy.search.SimpleTypeLookup.lookupType(SimpleTypeLookup.java:89)
> >  at org.eclipse.jdt.groovy.search.TypeInferencingVisitorWithRequestor.handleExpression(TypeInferencingVisitorWithRequestor.java:682)
> >  at org.eclipse.jdt.groovy.search.TypeInferencingVisitorWithRequestor.visitConstantExpression(TypeInferencingVisitorWithRequestor.java:1045)
> >  at org.codehaus.groovy.ast.expr.ConstantExpression.visit(ConstantExpression.java:55)
> >  at org.eclipse.jdt.groovy.search.TypeInferencingVisitorWithRequestor.visitMethodCallExpression(TypeInferencingVisitorWithRequestor.java:1113)
> >  at org.codehaus.groovy.ast.expr.MethodCallExpression.visit(MethodCallExpression.java:72)
> >  at org.codehaus.groovy.ast.CodeVisitorSupport.visitExpressionStatement(CodeVisitorSupport.java:69)
> >  at org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitExpressionStatement(ClassCodeVisitorSupport.java:209)
> >  at org.codehaus.groovy.ast.stmt.ExpressionStatement.visit(ExpressionStatement.java:40)
> >  at org.codehaus.groovy.ast.CodeVisitorSupport.visitBlockStatement(CodeVisitorSupport.java:35)
> >  at org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitBlockStatement(ClassCodeVisitorSupport.java:179)
> >  at org.eclipse.jdt.groovy.search.TypeInferencingVisitorWithRequestor.visitBlockStatement(TypeInferencingVisitorWithRequestor.java:914)
> >  at org.codehaus.groovy.ast.stmt.BlockStatement.visit(BlockStatement.java:51)
> > at org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitClassCodeContainer(ClassCodeVisitorSupport.java:102)
> >  at org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitConstructorOrMethod(ClassCodeVisitorSupport.java:113)
> >  at org.eclipse.jdt.groovy.search.TypeInferencingVisitorWithRequestor.visitConstructorOrMethod(TypeInferencingVisitorWithRequestor.java:599)
> >  at org.eclipse.jdt.groovy.search.TypeInferencingVisitorWithRequestor.visitJDT(TypeInferencingVisitorWithRequestor.java:382)
> >  at org.eclipse.jdt.groovy.search.TypeInferencingVisitorWithRequestor.visitJDT(TypeInferencingVisitorWithRequestor.java:229)
> >  at org.eclipse.jdt.groovy.search.TypeInferencingVisitorWithRequestor.visitCompilationUnit(TypeInferencingVisitorWithRequestor.java:183)
> >  at org.codehaus.jdt.groovy.integration.internal.GroovyLanguageSupport.maybePerformDelegatedSearch(GroovyLanguageSupport.java:161)
> >  at org.codehaus.jdt.groovy.integration.LanguageSupportFactory.maybePerformDelegatedSearch(LanguageSupportFactory.java:88)
> >  at org.eclipse.jdt.internal.core.search.matching.MatchLocator.locateMatches(MatchLocator.java:1095)
> >  at org.eclipse.jdt.internal.core.search.matching.MatchLocator.locateMatches(MatchLocator.java:1223)
> >  at org.eclipse.jdt.internal.core.search.matching.MatchLocator.locateMatches(MatchLocator.java:1355)
> >  at org.eclipse.jdt.internal.core.search.JavaSearchParticipant.locateMatches(JavaSearchParticipant.java:94)
> >  at org.eclipse.jdt.internal.core.search.BasicSearchEngine.findMatches(BasicSearchEngine.java:231)
> >  at org.eclipse.jdt.internal.core.search.BasicSearchEngine.search(BasicSearchEngine.java:515)
> >  at org.eclipse.jdt.core.search.SearchEngine.search(SearchEngine.java:582)
> > at org.moreunit.util.SearchTools.searchFor(SearchTools.java:61)
> > at org.moreunit.util.TestCaseDiviner.findPotentialTargets(TestCaseDiviner.java:89)
> >  at org.moreunit.util.TestCaseDiviner.<init>(TestCaseDiviner.java:41)
> > at org.moreunit.elements.ClassTypeFacade.getTestCaseDiviner(ClassTypeFacade.java:181)
> >  at org.moreunit.elements.ClassTypeFacade.getCorrespondingTestCaseList(ClassTypeFacade.java:89)
> >  at org.moreunit.decorator.UnitDecorator.hasTestCase(UnitDecorator.java:50)
> > at org.moreunit.decorator.UnitDecorator.decorate(UnitDecorator.java:35)
> > at org.eclipse.ui.internal.decorators.LightweightDecoratorDefinition.decorate(LightweightDecoratorDefinition.java:263)
> >  at org.eclipse.ui.internal.decorators.LightweightDecoratorManager$LightweightRunnable.run(LightweightDecoratorManager.java:81)
> >  at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
> > at org.eclipse.ui.internal.decorators.LightweightDecoratorManager.decorate(LightweightDecoratorManager.java:365)
> >  at org.eclipse.ui.internal.decorators.LightweightDecoratorManager.getDecorations(LightweightDecoratorManager.java:347)
> >  at org.eclipse.ui.internal.decorators.DecorationScheduler$1.ensureResultCached(DecorationScheduler.java:371)
> >  at org.eclipse.ui.internal.decorators.DecorationScheduler$1.run(DecorationScheduler.java:331)
> >  at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
> > 
> > ...
> > 
> > !ENTRY org.eclipse.core.jobs 4 2 2010-10-27 09:55:05.239
> > !MESSAGE An internal error occurred during: "Building workspace".
> > !STACK 0
> > java.lang.OutOfMemoryError: Java heap space
> > at java.util.Arrays.copyOf(Arrays.java:2882)
> > at java.lang.AbstractStringBuilder.expandCapacity(AbstractStringBuilder.java:100)
> > at java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:390)
> > at java.lang.StringBuffer.append(StringBuffer.java:224)
> > at java.io.StringWriter.write(StringWriter.java:95)
> > at java.io.PrintWriter.write(PrintWriter.java:412)
> > at java.io.PrintWriter.write(PrintWriter.java:429)
> > at java.io.PrintWriter.print(PrintWriter.java:559)
> > at java.io.PrintWriter.println(PrintWriter.java:695)
> > at java.lang.Throwable.printStackTrace(Throwable.java:512)
> > at org.eclipse.jdt.internal.compiler.util.Util.getExceptionSummary(Util.java:452)
> > at org.eclipse.jdt.internal.compiler.Compiler.handleInternalException(Compiler.java:636)
> >  at org.eclipse.jdt.internal.compiler.Compiler.compile(Compiler.java:571)
> > at org.eclipse.jdt.internal.core.builder.AbstractImageBuilder.compile(AbstractImageBuilder.java:408)
> >  at org.eclipse.jdt.internal.core.builder.BatchImageBuilder.compile(BatchImageBuilder.java:182)
> >  at org.eclipse.jdt.internal.core.builder.AbstractImageBuilder.compile(AbstractImageBuilder.java:345)
> >  at org.eclipse.jdt.internal.core.builder.BatchImageBuilder.build(BatchImageBuilder.java:61)
> >  at org.eclipse.jdt.internal.core.builder.JavaBuilder.buildAll(JavaBuilder.java:257)
> >  at org.eclipse.jdt.internal.core.builder.JavaBuilder.build(JavaBuilder.java:176)
> > at org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:629)
> > at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
> > at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:172)
> >  at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:203)
> >  at org.eclipse.core.internal.events.BuildManager$1.run(BuildManager.java:255)
> > at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
> > at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:258)
> >  at org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:311)
> >  at org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:343)
> > at org.eclipse.core.internal.events.AutoBuildJob.doBuild(AutoBuildJob.java:144)
> > at org.eclipse.core.internal.events.AutoBuildJob.run(AutoBuildJob.java:242)
> > at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

<hr/>
<p>
To unsubscribe from this list please visit:
</p>
<p>
    <a href="http://xircles.codehaus.org/manage_email">http://xircles.codehaus.org/manage_email</a>



[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic