[jbosstools-issues] [JBoss JIRA] Commented: (JBIDE-6372) Jboss Tools Richfaces breaks Eclipse for big projects

Viacheslav Kabanovich (JIRA) jira-events at lists.jboss.org
Fri May 28 06:43:09 EDT 2010


    [ https://jira.jboss.org/browse/JBIDE-6372?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12532967#action_12532967 ] 

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

        


More information about the jbosstools-issues mailing list