[jbosstools-issues] [JBoss JIRA] (JBIDE-22658) Infinite or very long hang in CDI builder with Payara embedded maven dep
arjan tijms (JIRA)
issues at jboss.org
Sun Jun 26 09:07:00 EDT 2016
arjan tijms created JBIDE-22658:
-----------------------------------
Summary: Infinite or very long hang in CDI builder with Payara embedded maven dep
Key: JBIDE-22658
URL: https://issues.jboss.org/browse/JBIDE-22658
Project: Tools (JBoss Tools)
Issue Type: Bug
Components: cdi
Reporter: arjan tijms
In the latest JBoss Tools for Eclipse Mars .2 (would be great if it was easy to see the main version easily, but I guess it's 4.3.1), the CDI builder either infinitely hangs or takes an enormous amount of time (an hour at least on a core M laptop) when payara embedded is present as (test) dependency in a maven project.
During this hang I took a stack trace, which looks as follows:
{noformat}
"Worker-20" #96 prio=5 os_prio=31 tid=0x0000000101512000 nid=0x14803 runnable [0x0000700003fde000]
java.lang.Thread.State: RUNNABLE
at java.util.zip.ZipFile.open(Native Method)
at java.util.zip.ZipFile.<init>(ZipFile.java:219)
at java.util.zip.ZipFile.<init>(ZipFile.java:149)
at java.util.zip.ZipFile.<init>(ZipFile.java:163)
at org.eclipse.jdt.internal.core.JavaModelManager.getZipFile(JavaModelManager.java:2678)
at org.eclipse.jdt.internal.core.JavaModelManager.getZipFile(JavaModelManager.java:2644)
at org.eclipse.jdt.internal.core.JarPackageFragmentRoot.getJar(JarPackageFragmentRoot.java:156)
at org.eclipse.jdt.internal.core.ClassFile.getJarBinaryTypeInfo(ClassFile.java:355)
at org.eclipse.jdt.internal.core.ClassFile.getBinaryTypeInfo(ClassFile.java:290)
at org.eclipse.jdt.internal.core.ClassFile.getBinaryTypeInfo(ClassFile.java:284)
at org.eclipse.jdt.internal.core.ClassFile.buildStructure(ClassFile.java:93)
at org.eclipse.jdt.internal.core.Openable.generateInfos(Openable.java:259)
at org.eclipse.jdt.internal.core.SourceRefElement.generateInfos(SourceRefElement.java:107)
at org.eclipse.jdt.internal.core.JavaElement.openWhenClosed(JavaElement.java:579)
at org.eclipse.jdt.internal.core.BinaryType.getElementInfo(BinaryType.java:287)
at org.eclipse.jdt.internal.core.JavaElement.getElementInfo(JavaElement.java:302)
at org.eclipse.jdt.internal.core.JavaElement.exists(JavaElement.java:220)
at org.jboss.tools.cdi.internal.core.scanner.ImplementationCollector.process(ImplementationCollector.java:41)
at org.jboss.tools.cdi.internal.core.scanner.ImplementationCollector.<init>(ImplementationCollector.java:32)
at org.jboss.tools.cdi.internal.core.impl.CDIProject.rebuildBeans(CDIProject.java:1309)
at org.jboss.tools.cdi.internal.core.impl.CDIProject.update(CDIProject.java:1216)
- locked <0x000000078ecd93d8> (a org.jboss.tools.cdi.internal.core.impl.CDICache)
at org.jboss.tools.cdi.internal.core.impl.definition.DefinitionContext.applyWorkingCopy(DefinitionContext.java:442)
at org.jboss.tools.cdi.core.CDICoreBuilder.build(CDICoreBuilder.java:267)
at org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:734)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:205)
at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:245)
at org.eclipse.core.internal.events.BuildManager$1.run(BuildManager.java:300)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:303)
at org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:359)
at org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:382)
at org.eclipse.core.internal.events.AutoBuildJob.doBuild(AutoBuildJob.java:144)
at org.eclipse.core.internal.events.AutoBuildJob.run(AutoBuildJob.java:235)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)
{noformat}
I debugged Eclipse with a second Eclipse, and it appeared that the code is repeatedly opening {{.m2/repository/fish/payara/extras/payara-embedded-all/4.1.1.162/payara-embedded-all-4.1.1.162.jar}} from {{CDIProject#rebuildBeans}}.
The specific line of code is:
{code:java}
ImplementationCollector ic = new ImplementationCollector(typeDefinitions);
{code}
The number of type definitions it seems to go through in {{ImplementationCollector#process}} is *33009* and the loop looks to be making progress, so it's more likely just incredibly slow and not an infinite hang.
The dependency in pom.xml looks as follows:
{code:xml}
<dependency>
<groupId>fish.payara.extras</groupId>
<artifactId>payara-embedded-all</artifactId>
<version>4.1.1.162</version>
<scope>test</scope>
</dependency>
{code}
--
This message was sent by Atlassian JIRA
(v6.4.11#64026)
More information about the jbosstools-issues
mailing list