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

Bug 318596

Summary: [hotbug-request] Default facelets taglibs are not loaded when product is installed into a path with spaces
Product: [WebTools] Java Server Faces Reporter: Yury Kats <yurykats>
Component: CoreAssignee: Gerry Kessler <gerry.kessler>
Status: RESOLVED FIXED QA Contact:
Severity: major    
Priority: P3 CC: cameron.bateman, david_williams, raghunathan.srinivasan
Version: 3.2Flags: raghunathan.srinivasan: pmc_approved? (david_williams)
raghunathan.srinivasan: pmc_approved? (naci.dai)
deboer: pmc_approved+
raghunathan.srinivasan: pmc_approved? (neil.hauge)
raghunathan.srinivasan: pmc_approved? (kaloyan)
Target Milestone: 3.2.1   
Hardware: PC   
OS: Windows XP   
Whiteboard: PMC_approved
Attachments:
Description Flags
Patch none

Description Yury Kats CLA 2010-07-01 09:00:00 EDT
if the product is installed into a path that contains spaces (or at least product's configuration folder has spaces in its name), all standard facelets taglibs fail to load.

As a result, there is no Content Model, Content Assist or Metadata for any of the standard JSF2 tags.

Exception being logged:

!ENTRY org.eclipse.jst.jsf.facelet.core 4 0 2010-06-30 18:18:06.921
!MESSAGE Trying to load default taglib for: /std-taglibs/facelets_jsf_core.taglib.xml
!STACK 0
java.net.URISyntaxException: Illegal character in path at index 16: file:/C:/Program Files/IBM/SDP76/configuration/org.eclipse.osgi/bundles/1381/1/.cp/std-taglibs/facelets_jsf_core.taglib.xml
	at java.net.URI$Parser.fail(URI.java:2821)
	at java.net.URI$Parser.checkChars(URI.java:2994)
	at java.net.URI$Parser.parseHierarchical(URI.java:3078)
	at java.net.URI$Parser.parse(URI.java:3026)
	at java.net.URI.<init>(URI.java:590)
	at java.net.URL.toURI(URL.java:919)
	at org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.DefaultStandardTaglibLocator.<clinit>(DefaultStandardTaglibLocator.java:50)
....

Followed by:

!ENTRY org.eclipse.jst.jsf.facelet.core 4 0 2010-06-30 18:18:08.812
!MESSAGE Could not find taglib for uri: http://java.sun.com/jsp/jstl/core
!STACK 0
java.lang.Exception
	at org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.ProjectTaglibDescriptor.ensureStandardLibraries(ProjectTaglibDescriptor.java:109)
	at org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.ProjectTaglibDescriptor.initialize(ProjectTaglibDescriptor.java:90)
	at org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.ProjectTaglibDescriptor.getTagLibraries(ProjectTaglibDescriptor.java:117)
	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.metadata.FaceletNamespaceMetaDataLocator.locateMetaDataModelProviders(FaceletNamespaceMetaDataLocator.java:45)
	at org.eclipse.jst.jsf.common.metadata.internal.DomainLoadingStrategy.locateMetaDataSourceInstances(DomainLoadingStrategy.java:143)
	at org.eclipse.jst.jsf.common.metadata.internal.DomainLoadingStrategy.load(DomainLoadingStrategy.java:55)
	at org.eclipse.jst.jsf.common.metadata.internal.MetaDataModel.load(MetaDataModel.java:93)
	at org.eclipse.jst.jsf.common.metadata.internal.MetaDataModelManager.loadMetadata(MetaDataModelManager.java:147)
	at org.eclipse.jst.jsf.common.metadata.internal.MetaDataModelManager.getModel(MetaDataModelManager.java:90)
	at org.eclipse.jst.jsf.common.metadata.query.TaglibDomainMetaDataQueryHelper.getMDModel(TaglibDomainMetaDataQueryHelper.java:205)
	at org.eclipse.jst.jsf.common.metadata.query.TaglibDomainMetaDataQueryHelper.getModel(TaglibDomainMetaDataQueryHelper.java:90)
	at org.eclipse.jst.jsf.common.metadata.query.TaglibDomainMetaDataQueryHelper.getEntities(TaglibDomainMetaDataQueryHelper.java:123)
	at org.eclipse.jst.jsf.common.metadata.query.TaglibDomainMetaDataQueryHelper.getEntity(TaglibDomainMetaDataQueryHelper.java:101)
....

This happens for all standard taglibs.
Comment 1 Yury Kats CLA 2010-07-01 13:41:04 EDT
Created attachment 173245 [details]
Patch
Comment 2 Yury Kats CLA 2010-07-01 13:41:48 EDT
Patch attached. One line change. Please consider for 3.2.1. Thanks.
Comment 3 Yury Kats CLA 2010-07-08 10:28:11 EDT
Setting as hotbug-request.
1. Affiliation: IBM
2. Ideally this would be applied to 3.2.1.
3. Adopter product by default installs on Windows into "Program Files" folder, which means the problem is affecting majority of the product users.
Comment 4 Raghunathan Srinivasan CLA 2010-07-08 14:40:51 EDT
    * Explain why you believe this is a stop-ship defect. Or, if it is a "hotbug" (requested by an adopter) please document it as such. 
Hot bug request. JSF 2.0 support is broken when product is installed in a folder with spaces.
    * Is there a work-around? If so, why do you believe the work-around is insufficient? 
The workaround is not possible in scenarios where end-users are mandated to install the product in a specific path that contain spaces.
    * How has the fix been tested? Is there a test case attached to the bugzilla record? Has a JUnit Test been added? 
Manual testing
    * Give a brief technical overview. Who has reviewed this fix? 
See description
    * What is the risk associated with this fix?
low.
Comment 5 Raghunathan Srinivasan CLA 2010-07-12 19:24:06 EDT
Released to build
Comment 6 Yury Kats CLA 2010-07-12 20:51:33 EDT
Thank you.
Comment 7 Raghunathan Srinivasan CLA 2010-08-24 15:08:12 EDT
*** Bug 319445 has been marked as a duplicate of this bug. ***