Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 315574

Summary: [JSF2.0] Three exceptions when there is an invalid folder under "WebContent/resources"
Product: [WebTools] Java Server Faces Reporter: Xiaonan Jiang <xiaonan_jiang>
Component: JSF ToolsAssignee: Ian Trimble <ian.trimble>
Status: RESOLVED FIXED QA Contact: Cameron Bateman <cameron.bateman>
Severity: normal    
Priority: P3 CC: gerry.kessler, raghunathan.srinivasan, yurykats
Version: unspecified   
Target Milestone: 3.2.3   
Hardware: PC   
OS: Windows XP   
Whiteboard: JSF2.0
Attachments:
Description Flags
the test project to reproduce the problem
none
Fixes the issue by narrowing the exception catching so resource location isn't prematurely terminated by a bad resource id
none
Regression coverage none

Description Xiaonan Jiang CLA 2010-06-03 08:55:57 EDT
Build Identifier: 3.2.0RC1-20100513125036

The third exception is caused by the second.

Reproducible: Always

Steps to Reproduce:
1. Import the attached project
2. Restart the workspace

After a while, will the following three exceptions in the error log:


!ENTRY org.eclipse.jst.jsf.core 4 0 2010-06-03 08:47:03.781
!MESSAGE While trying to locate JSF resources in the workspace
!STACK 0
org.eclipse.jst.jsf.designtime.internal.resources.ResourceIdentifierFactory$InvalidIdentifierException
	at org.eclipse.jst.jsf.designtime.internal.resources.ResourceIdentifierFactory.createLibraryResource(ResourceIdentifierFactory.java:56)
	at org.eclipse.jst.jsf.designtime.internal.resources.WorkspaceResourceManager.track(WorkspaceResourceManager.java:126)
	at org.eclipse.jst.jsf.designtime.internal.resources.WorkspaceResourceManager.trackAllInFolder(WorkspaceResourceManager.java:104)
	at org.eclipse.jst.jsf.designtime.internal.resources.WorkspaceResourceManager.initResources(WorkspaceResourceManager.java:86)
	at org.eclipse.jst.jsf.designtime.internal.resources.WorkspaceJSFResourceLocator.start(WorkspaceJSFResourceLocator.java:68)
	at org.eclipse.jst.jsf.designtime.internal.resources.WorkspaceJSFResourceLocator.start(WorkspaceJSFResourceLocator.java:1)
	at org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.CompositeComponentTaglibLocator.start(CompositeComponentTaglibLocator.java:169)
	at org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.CompositeComponentTaglibLocator.start(CompositeComponentTaglibLocator.java:1)
	at org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.ProjectTaglibDescriptor$1.run(ProjectTaglibDescriptor.java:79)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
	at org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.ProjectTaglibDescriptor.initialize(ProjectTaglibDescriptor.java:68)
	at org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.ProjectTaglibDescriptor.getTagLibraries(ProjectTaglibDescriptor.java:90)
	at org.eclipse.jst.jsf.facelet.core.internal.registry.FaceletTagRegistry.initialize(FaceletTagRegistry.java:155)
	at org.eclipse.jst.jsf.facelet.core.internal.registry.FaceletTagRegistry.getAllTagLibraries(FaceletTagRegistry.java:110)
	at org.eclipse.jst.jsf.facelet.core.internal.registry.FaceletTagRegistry.getTagLibrary(FaceletTagRegistry.java:201)
	at org.eclipse.jst.jsf.facelet.core.internal.cm.FaceletDocumentFactory.getOrCreateCMDocument(FaceletDocumentFactory.java:160)
	at org.eclipse.jst.jsf.facelet.core.internal.cm.FaceletDocumentFactory.createCMDocumentForContext(FaceletDocumentFactory.java:56)
	at org.eclipse.jst.jsf.facelet.core.internal.cm.FaceletDocumentFactory.createCMElementDeclaration(FaceletDocumentFactory.java:78)
	at org.eclipse.jst.jsf.facelet.ui.internal.hover.FaceletHover$MyHTMLTagInfoHoverProcessor.getCMElementDeclaration(FaceletHover.java:132)
	at org.eclipse.wst.xml.ui.internal.taginfo.XMLTagInfoHoverProcessor.computeTagNameHelp(XMLTagInfoHoverProcessor.java:143)
	at org.eclipse.wst.xml.ui.internal.taginfo.XMLTagInfoHoverProcessor.computeRegionHelp(XMLTagInfoHoverProcessor.java:105)
	at org.eclipse.wst.xml.ui.internal.taginfo.XMLTagInfoHoverProcessor.computeHoverHelp(XMLTagInfoHoverProcessor.java:86)
	at org.eclipse.wst.xml.ui.internal.taginfo.XMLTagInfoHoverProcessor.getHoverInfo(XMLTagInfoHoverProcessor.java:257)
	at org.eclipse.jst.jsf.facelet.ui.internal.hover.FaceletHover.getHoverInfo(FaceletHover.java:58)
	at org.eclipse.wst.sse.ui.internal.taginfo.BestMatchHover.getHoverInfo(BestMatchHover.java:90)
	at org.eclipse.jface.text.TextViewerHoverManager$4.run(TextViewerHoverManager.java:168)

!ENTRY org.eclipse.jst.jsf.facelet.core 4 2 2010-06-03 08:47:04.125
!MESSAGE Problems occurred when invoking code from plug-in: "org.eclipse.jst.jsf.facelet.core".
!STACK 0
java.lang.NullPointerException
	at org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.CompositeComponentTaglibLocator.start(CompositeComponentTaglibLocator.java:180)
	at org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.CompositeComponentTaglibLocator.start(CompositeComponentTaglibLocator.java:1)
	at org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.ProjectTaglibDescriptor$1.run(ProjectTaglibDescriptor.java:79)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
	at org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.ProjectTaglibDescriptor.initialize(ProjectTaglibDescriptor.java:68)
	at org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.ProjectTaglibDescriptor.getTagLibraries(ProjectTaglibDescriptor.java:90)
	at org.eclipse.jst.jsf.facelet.core.internal.registry.FaceletTagRegistry.initialize(FaceletTagRegistry.java:155)
	at org.eclipse.jst.jsf.facelet.core.internal.registry.FaceletTagRegistry.getAllTagLibraries(FaceletTagRegistry.java:110)
	at org.eclipse.jst.jsf.facelet.core.internal.registry.FaceletTagRegistry.getTagLibrary(FaceletTagRegistry.java:201)
	at org.eclipse.jst.jsf.facelet.core.internal.cm.FaceletDocumentFactory.getOrCreateCMDocument(FaceletDocumentFactory.java:160)
	at org.eclipse.jst.jsf.facelet.core.internal.cm.FaceletDocumentFactory.createCMDocumentForContext(FaceletDocumentFactory.java:56)
	at org.eclipse.jst.jsf.facelet.core.internal.cm.FaceletDocumentFactory.createCMElementDeclaration(FaceletDocumentFactory.java:78)
	at org.eclipse.jst.jsf.facelet.ui.internal.hover.FaceletHover$MyHTMLTagInfoHoverProcessor.getCMElementDeclaration(FaceletHover.java:132)
	at org.eclipse.wst.xml.ui.internal.taginfo.XMLTagInfoHoverProcessor.computeTagNameHelp(XMLTagInfoHoverProcessor.java:143)
	at org.eclipse.wst.xml.ui.internal.taginfo.XMLTagInfoHoverProcessor.computeRegionHelp(XMLTagInfoHoverProcessor.java:105)
	at org.eclipse.wst.xml.ui.internal.taginfo.XMLTagInfoHoverProcessor.computeHoverHelp(XMLTagInfoHoverProcessor.java:86)
	at org.eclipse.wst.xml.ui.internal.taginfo.XMLTagInfoHoverProcessor.getHoverInfo(XMLTagInfoHoverProcessor.java:257)
	at org.eclipse.jst.jsf.facelet.ui.internal.hover.FaceletHover.getHoverInfo(FaceletHover.java:58)
	at org.eclipse.wst.sse.ui.internal.taginfo.BestMatchHover.getHoverInfo(BestMatchHover.java:90)
	at org.eclipse.jface.text.TextViewerHoverManager$4.run(TextViewerHoverManager.java:168)

!ENTRY org.eclipse.jst.jsf.facelet.core 4 0 2010-06-03 08:47:04.140
!MESSAGE While locating facelet libraries on project: Test
!STACK 0
java.lang.Exception: java.lang.NullPointerException
	at org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.ProjectTaglibDescriptor$1.handleException(ProjectTaglibDescriptor.java:74)
	at org.eclipse.core.runtime.SafeRunner.handleException(SafeRunner.java:75)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:44)
	at org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.ProjectTaglibDescriptor.initialize(ProjectTaglibDescriptor.java:68)
	at org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.ProjectTaglibDescriptor.getTagLibraries(ProjectTaglibDescriptor.java:90)
	at org.eclipse.jst.jsf.facelet.core.internal.registry.FaceletTagRegistry.initialize(FaceletTagRegistry.java:155)
	at org.eclipse.jst.jsf.facelet.core.internal.registry.FaceletTagRegistry.getAllTagLibraries(FaceletTagRegistry.java:110)
	at org.eclipse.jst.jsf.facelet.core.internal.registry.FaceletTagRegistry.getTagLibrary(FaceletTagRegistry.java:201)
	at org.eclipse.jst.jsf.facelet.core.internal.cm.FaceletDocumentFactory.getOrCreateCMDocument(FaceletDocumentFactory.java:160)
	at org.eclipse.jst.jsf.facelet.core.internal.cm.FaceletDocumentFactory.createCMDocumentForContext(FaceletDocumentFactory.java:56)
	at org.eclipse.jst.jsf.facelet.core.internal.cm.FaceletDocumentFactory.createCMElementDeclaration(FaceletDocumentFactory.java:78)
	at org.eclipse.jst.jsf.facelet.ui.internal.hover.FaceletHover$MyHTMLTagInfoHoverProcessor.getCMElementDeclaration(FaceletHover.java:132)
	at org.eclipse.wst.xml.ui.internal.taginfo.XMLTagInfoHoverProcessor.computeTagNameHelp(XMLTagInfoHoverProcessor.java:143)
	at org.eclipse.wst.xml.ui.internal.taginfo.XMLTagInfoHoverProcessor.computeRegionHelp(XMLTagInfoHoverProcessor.java:105)
	at org.eclipse.wst.xml.ui.internal.taginfo.XMLTagInfoHoverProcessor.computeHoverHelp(XMLTagInfoHoverProcessor.java:86)
	at org.eclipse.wst.xml.ui.internal.taginfo.XMLTagInfoHoverProcessor.getHoverInfo(XMLTagInfoHoverProcessor.java:257)
	at org.eclipse.jst.jsf.facelet.ui.internal.hover.FaceletHover.getHoverInfo(FaceletHover.java:58)
	at org.eclipse.wst.sse.ui.internal.taginfo.BestMatchHover.getHoverInfo(BestMatchHover.java:90)
	at org.eclipse.jface.text.TextViewerHoverManager$4.run(TextViewerHoverManager.java:168)
Caused by: java.lang.NullPointerException
	at org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.CompositeComponentTaglibLocator.start(CompositeComponentTaglibLocator.java:180)
	at org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.CompositeComponentTaglibLocator.start(CompositeComponentTaglibLocator.java:1)
	at org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.ProjectTaglibDescriptor$1.run(ProjectTaglibDescriptor.java:79)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
	... 16 more
Comment 1 Xiaonan Jiang CLA 2010-06-03 08:56:33 EDT
Created attachment 170946 [details]
the test project to reproduce the problem
Comment 2 Cameron Bateman CLA 2010-06-03 16:51:16 EDT
Created attachment 171026 [details]
Fixes the issue by narrowing the exception catching so resource location isn't prematurely terminated by a bad resource id
Comment 3 Cameron Bateman CLA 2010-06-03 16:53:11 EDT
Created attachment 171027 [details]
Regression coverage
Comment 4 Cameron Bateman CLA 2010-06-03 16:54:12 EDT
Deferring since it is due to an invalid user data case that can be worked around, so isn't stop-ship.
Comment 5 Yury Kats CLA 2010-12-01 13:45:53 EST
Is anything preventing the patch from being applied to 3.2.3? Any other assistance we can offer to help resolve this bug?
Comment 6 Raghunathan Srinivasan CLA 2010-12-01 14:25:02 EST
Mass update: The JSF Tools team is currently focused on performance and deadlock issues in the product. We plan to address other WTP bugs later this month and will review and checkin the patches soon. Thanks for your contribution and understanding.
-Raghu
Comment 7 Ian Trimble CLA 2011-01-04 17:03:24 EST
This appears to have been fixed on 2010/08/24, but not marked fixed. I am now seeing the "invalid resource" message as info in the log, without a thrown exception.