[
https://jira.jboss.org/browse/JBIDE-6372?page=com.atlassian.jira.plugin.s...
]
Viacheslav Kabanovich commented on JBIDE-6372:
----------------------------------------------
Max, we keep an object JarAccess with tree structure of entry names for fast access to
child entries of any entry. We do not keep jar itself, accessing it only on request
through JarAccess object. I agree that this duplicates some features provided by JDT.
However, it is ready to work with any zip or jar, not only in classpath which is needed to
use JDT. Also, it is very fast, not large (just entry names), and quite simple. The cause
of this issue is the failure to share loaded model objects for shared jars. For example,
if there are just 10 jars shared by 100 projects, model loaded 1000 sub-structures, while
it should load only 10, resulting in 100 times loss in time and memory. So, I believe that
the proposed solution that shares both JarAccess objects and sub-structures created of
them, solves the issue.
Jboss Tools Richfaces breaks Eclipse for big projects
-----------------------------------------------------
Key: JBIDE-6372
URL:
https://jira.jboss.org/browse/JBIDE-6372
Project: Tools (JBoss Tools)
Issue Type: Bug
Components: jsp/jsf/xml source editing, Visual Page Editor core
Affects Versions: 3.1.0.GA
Reporter: Borislav Andruschuk
Assignee: Viacheslav Kabanovich
Priority: Blocker
Fix For: 3.1.x
Attachments: JarAccessFactory_6372.patch
I have 111 projects in my workspace and after Jboss Tools Richfaces installation Eclipse
fails during build or validation with OutOfMemory.
I've checked jstack of my Eclipse process and see the following traces related to KB
builder:
"Worker-2" prio=10 tid=0x0000000041154000 nid=0x5a9a waiting on condition
[0x00007f589d10b000]
java.lang.Thread.State: RUNNABLE
at java.io.BufferedInputStream.<init>(BufferedInputStream.java:178)
at java.io.BufferedInputStream.<init>(BufferedInputStream.java:158)
at
org.jboss.tools.common.model.filesystems.impl.JarAccess.getContent(JarAccess.java:201)
at
org.jboss.tools.common.model.filesystems.impl.JarFolderImpl.createFileObject(JarFolderImpl.java:92)
at
org.jboss.tools.common.model.filesystems.impl.JarFolderImpl.loadChildren(JarFolderImpl.java:74)
at
org.jboss.tools.common.model.impl.RegularObjectImpl.getChildren(RegularObjectImpl.java:58)
at
org.jboss.tools.jst.web.kb.internal.scanner.LibraryScanner.parseInPackages(LibraryScanner.java:104)
at
org.jboss.tools.jst.web.kb.internal.scanner.LibraryScanner.parseInPackages(LibraryScanner.java:114)
at
org.jboss.tools.jst.web.kb.internal.scanner.LibraryScanner.parseInPackages(LibraryScanner.java:114)
at
org.jboss.tools.jst.web.kb.internal.scanner.LibraryScanner.parseInPackages(LibraryScanner.java:114)
at
org.jboss.tools.jst.web.kb.internal.scanner.LibraryScanner.parse(LibraryScanner.java:95)
at
org.jboss.tools.jst.web.kb.internal.scanner.ClassPathMonitor.process(ClassPathMonitor.java:90)
at org.jboss.tools.jst.web.kb.internal.KbBuilder.build(KbBuilder.java:98)
at org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:627)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:170)
at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:201)
at org.eclipse.core.internal.events.BuildManager$1.run(BuildManager.java:253)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:256)
at org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:309)
at org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:341)
at org.eclipse.core.internal.events.AutoBuildJob.doBuild(AutoBuildJob.java:140)
at org.eclipse.core.internal.events.AutoBuildJob.run(AutoBuildJob.java:238)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)
and
"Text Viewer Hover Presenter" daemon prio=10 tid=0x00007f58a4cb2800 nid=0x5ad9
runnable [0x00007f588fd02000]
java.lang.Thread.State: RUNNABLE
at java.lang.String.intern(Native Method)
at org.jboss.tools.common.model.impl.XModelObjectImpl.set(XModelObjectImpl.java:135)
at org.jboss.tools.common.model.impl.RegularObjectImpl.set(RegularObjectImpl.java:103)
at org.jboss.tools.common.model.filesystems.impl.FileAnyImpl.set(FileAnyImpl.java:181)
at
org.jboss.tools.common.meta.impl.adapters.XAdapterModelElement.setProperty(XAdapterModelElement.java:26)
at org.jboss.tools.common.model.impl.XModelObjectImpl.set_0(XModelObjectImpl.java:146)
at org.jboss.tools.common.model.impl.XModelImpl.createModelObject(XModelImpl.java:264)
at
org.jboss.tools.common.model.filesystems.impl.JarFolderImpl.createFileObject(JarFolderImpl.java:96)
at
org.jboss.tools.common.model.filesystems.impl.JarFolderImpl.loadChildren(JarFolderImpl.java:74)
at
org.jboss.tools.common.model.impl.RegularObjectImpl.getChildren(RegularObjectImpl.java:58)
at
org.jboss.tools.jst.web.kb.internal.scanner.LibraryScanner.parseInPackages(LibraryScanner.java:104)
at
org.jboss.tools.jst.web.kb.internal.scanner.LibraryScanner.parseInPackages(LibraryScanner.java:114)
at
org.jboss.tools.jst.web.kb.internal.scanner.LibraryScanner.parseInPackages(LibraryScanner.java:114)
at
org.jboss.tools.jst.web.kb.internal.scanner.LibraryScanner.parseInPackages(LibraryScanner.java:114)
at
org.jboss.tools.jst.web.kb.internal.scanner.LibraryScanner.parseInPackages(LibraryScanner.java:114)
at
org.jboss.tools.jst.web.kb.internal.scanner.LibraryScanner.parse(LibraryScanner.java:95)
at
org.jboss.tools.jst.web.kb.internal.scanner.ClassPathMonitor.process(ClassPathMonitor.java:90)
at org.jboss.tools.jst.web.kb.internal.KbProject.load(KbProject.java:270)
at org.jboss.tools.jst.web.kb.internal.KbProject.resolveStorage(KbProject.java:228)
at org.jboss.tools.jst.web.kb.internal.KbProject.resolve(KbProject.java:238)
at org.jboss.tools.jst.web.kb.internal.KbProject.addKbProject(KbProject.java:162)
at
org.jboss.tools.jst.web.kb.internal.scanner.ClassPathMonitor.validateProjectDependencies(ClassPathMonitor.java:121)
at org.jboss.tools.jst.web.kb.internal.KbProject.load(KbProject.java:255)
at org.jboss.tools.jst.web.kb.internal.KbProject.resolveStorage(KbProject.java:228)
at org.jboss.tools.jst.web.kb.internal.KbProject.resolve(KbProject.java:238)
at org.jboss.tools.jst.web.kb.internal.KbProject.addKbProject(KbProject.java:162)
at
org.jboss.tools.jst.web.kb.internal.scanner.ClassPathMonitor.validateProjectDependencies(ClassPathMonitor.java:121)
at org.jboss.tools.jst.web.kb.internal.KbProject.load(KbProject.java:255)
at org.jboss.tools.jst.web.kb.internal.KbProject.resolveStorage(KbProject.java:228)
at org.jboss.tools.jst.web.kb.internal.KbProject.resolve(KbProject.java:238)
at org.jboss.tools.jst.web.kb.KbProjectFactory.getKbProject(KbProjectFactory.java:60)
at
org.jboss.tools.jst.web.kb.taglib.TagLibraryManager.getLibraries(TagLibraryManager.java:35)
at
org.jboss.tools.jst.web.kb.PageContextFactory.fillXMLNamespacesForNode(PageContextFactory.java:646)
at
org.jboss.tools.jst.web.kb.PageContextFactory.fillContextForNode(PageContextFactory.java:461)
at
org.jboss.tools.jst.web.kb.PageContextFactory.fillContextForChildNodes(PageContextFactory.java:445)
at
org.jboss.tools.jst.web.kb.PageContextFactory.createPageContext(PageContextFactory.java:380)
at
org.jboss.tools.jst.web.kb.PageContextFactory.createPageContext(PageContextFactory.java:179)
at
org.jboss.tools.jst.web.kb.PageContextFactory.createPageContext(PageContextFactory.java:169)
at
org.jboss.tools.jst.jsp.jspeditor.info.FaceletTagInfoHoverProcessor.computeHoverHelp(FaceletTagInfoHoverProcessor.java:62)
at
org.eclipse.wst.xml.ui.internal.taginfo.XMLTagInfoHoverProcessor.getHoverInfo(XMLTagInfoHoverProcessor.java:257)
at
org.jboss.tools.jst.jsp.jspeditor.info.ChainTextHover.getHoverInfo(ChainTextHover.java:106)
at org.eclipse.jface.text.TextViewerHoverManager$4.run(TextViewerHoverManager.java:168)
My Eclipse Vmargs are -XX:MaxPermSize=256m -Xmx1024m.
Disabling validation in Eclipse wont help.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
https://jira.jboss.org/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira