| Summary: | Error initializing facelet registry entry | ||
|---|---|---|---|
| Product: | [WebTools] Java Server Faces | Reporter: | Andrey Melentyev <andrey.melentyev> |
| Component: | JSF Tools | Assignee: | Ian Trimble <ian.trimble> |
| Status: | RESOLVED WONTFIX | QA Contact: | |
| Severity: | normal | ||
| Priority: | P3 | CC: | Andrew.McCulloch, raghunathan.srinivasan, vyemialyanchyk |
| Version: | 3.2.1 | ||
| Target Milestone: | 3.3 M7 | ||
| Hardware: | PC | ||
| OS: | Windows XP | ||
| Whiteboard: | |||
|
Description
Andrey Melentyev
(In reply to comment #0) > What steps will reproduce the problem? > 1. Start Eclipse with WTP > 2. Open dynamic web project with JSF 2.0 and Facelets > 3. An exception appears in the Error Log. Are you adding the JSF 2.0 Facet AND the Facelets facet on the project? If so, please note that the Facelets facet should not be added and is not required to get the JSF 2.0 features. Please re-open the bug if this is not true. I have not been able to recreate this issue. I received the following stack trace this morning when opening a workspace with 2 projects. One was JSF 2.0 the other JSF 1.2 neither uses facelets as far as I know. I am using Version: 3.7.0 Build id: I20110310-1119 with added plugins that I am working on.
org.eclipse.emf.ecore.resource.Resource$IOWrappedException: Feature 'span' not found. (file:///C:/OEPE/tools-eclipse/k2/indigo/dev-eclipse/com/sun/faces/metadata/taglib/facelets_jsf_core.taglib.xml, 453, 52)
at org.eclipse.emf.ecore.xmi.impl.XMLLoadImpl.handleErrors(XMLLoadImpl.java:83)
at org.eclipse.emf.ecore.xmi.impl.XMLLoadImpl.load(XMLLoadImpl.java:191)
at org.eclipse.emf.ecore.xmi.impl.XMLResourceImpl.doLoad(XMLResourceImpl.java:231)
at org.eclipse.emf.ecore.resource.impl.ResourceImpl.load(ResourceImpl.java:1497)
at org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.TagModelLoader.loadFromInputStream(TagModelLoader.java:100)
at org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.JarFileFaceletTaglibLocator.processJar(JarFileFaceletTaglibLocator.java:237)
at org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.JarFileFaceletTaglibLocator.access$2(JarFileFaceletTaglibLocator.java:215)
at org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.JarFileFaceletTaglibLocator$1.changed(JarFileFaceletTaglibLocator.java:149)
at org.eclipse.jst.jsf.common.internal.resource.AbstractJarLocator.fireChangeEvent(AbstractJarLocator.java:58)
at org.eclipse.jst.jsf.common.internal.resource.DefaultJarLocator$1.acceptEvent(DefaultJarLocator.java:104)
at org.eclipse.jst.jsf.common.internal.resource.DefaultJarLocator$1.acceptEvent(DefaultJarLocator.java:1)
at org.eclipse.jst.jsf.common.internal.resource.AbstractLifecycleListener.fireLifecycleEvent(AbstractLifecycleListener.java:101)
at org.eclipse.jst.jsf.common.internal.resource.ClasspathEntryLifecycleListener$1.handlePackageFragmentRoot(ClasspathEntryLifecycleListener.java:145)
at org.eclipse.jst.jsf.common.internal.resource.ClasspathEntryLifecycleListener$1.visit(ClasspathEntryLifecycleListener.java:96)
at org.eclipse.jst.jsf.common.internal.resource.ClasspathEntryLifecycleListener$DeltaAcceptor.accept(ClasspathEntryLifecycleListener.java:205)
at org.eclipse.jst.jsf.common.internal.resource.ClasspathEntryLifecycleListener$DeltaAcceptor.accept(ClasspathEntryLifecycleListener.java:209)
at org.eclipse.jst.jsf.common.internal.resource.ClasspathEntryLifecycleListener$DeltaAcceptor.accept(ClasspathEntryLifecycleListener.java:209)
at org.eclipse.jst.jsf.common.internal.resource.ClasspathEntryLifecycleListener.handlePostChangeEvent(ClasspathEntryLifecycleListener.java:79)
at org.eclipse.jst.jsf.common.internal.resource.ClasspathEntryLifecycleListener.elementChanged(ClasspathEntryLifecycleListener.java:72)
at org.eclipse.jdt.internal.core.DeltaProcessor$4.run(DeltaProcessor.java:1661)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
at org.eclipse.jdt.internal.core.DeltaProcessor.notifyListeners(DeltaProcessor.java:1651)
at org.eclipse.jdt.internal.core.DeltaProcessor.firePostChangeDelta(DeltaProcessor.java:1485)
at org.eclipse.jdt.internal.core.DeltaProcessor.fire(DeltaProcessor.java:1461)
at org.eclipse.jdt.internal.core.DeltaProcessor.resourceChanged(DeltaProcessor.java:2073)
at org.eclipse.jdt.internal.core.DeltaProcessingState.resourceChanged(DeltaProcessingState.java:470)
at org.eclipse.core.internal.events.NotificationManager$1.run(NotificationManager.java:291)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
at org.eclipse.core.internal.events.NotificationManager.notify(NotificationManager.java:285)
at org.eclipse.core.internal.events.NotificationManager.broadcastChanges(NotificationManager.java:149)
at org.eclipse.core.internal.resources.Workspace.broadcastPostChange(Workspace.java:395)
at org.eclipse.core.internal.resources.Workspace.endOperation(Workspace.java:1496)
at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2319)
at org.eclipse.jdt.internal.core.JavaModelOperation.runOperation(JavaModelOperation.java:793)
at org.eclipse.jdt.core.JavaCore.setClasspathContainer(JavaCore.java:4921)
at oracle.eclipse.tools.weblogic.j2eelib.LibraryModuleContainer.refresh(LibraryModuleContainer.java:260)
at oracle.eclipse.tools.weblogic.j2eelib.LibraryModuleContainer.refresh(LibraryModuleContainer.java:218)
at oracle.eclipse.tools.weblogic.j2eelib.LibraryModuleContainer.handleRegistryChangedEvent(LibraryModuleContainer.java:205)
at oracle.eclipse.tools.weblogic.j2eelib.internal.SharedLibraryRegistryListener.registryChanged(SharedLibraryRegistryListener.java:19)
at oracle.eclipse.tools.weblogic.j2eelib.LibraryModuleRegistry.notifyListeners(LibraryModuleRegistry.java:320)
at oracle.eclipse.tools.weblogic.j2eelib.LibraryModuleRegistry.add(LibraryModuleRegistry.java:260)
at oracle.eclipse.tools.weblogic.j2eelib.LibraryModulesSvc.registerLibraryModule(LibraryModulesSvc.java:236)
at oracle.eclipse.tools.weblogic.j2eelib.LibraryModulesSvc.registerLibraryModule(LibraryModulesSvc.java:174)
at oracle.eclipse.tools.weblogic.j2eelib.LibraryModulesSvc.registerLibraryModules(LibraryModulesSvc.java:103)
at oracle.eclipse.tools.weblogic.internal.WlsRuntimeLifecycleListener.handleEvent(WlsRuntimeLifecycleListener.java:86)
at oracle.eclipse.tools.weblogic.WlsRuntimeSpy$EventType$1.run(WlsRuntimeSpy.java:84)
Caused by: org.eclipse.emf.ecore.xmi.FeatureNotFoundException: Feature 'span' not found. (file:///C:/OEPE/tools-eclipse/k2/indigo/dev-eclipse/com/sun/faces/metadata/taglib/facelets_jsf_core.taglib.xml, 453, 52)
at org.eclipse.emf.ecore.xmi.impl.XMLHandler.handleFeature(XMLHandler.java:1777)
at org.eclipse.emf.ecore.xmi.impl.XMLHandler.processElement(XMLHandler.java:1023)
at org.eclipse.emf.ecore.xmi.impl.XMLHandler.startElement(XMLHandler.java:1001)
at org.eclipse.emf.ecore.xmi.impl.XMLHandler.startElement(XMLHandler.java:712)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(AbstractSAXParser.java:501)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanStartElement(XMLDocumentFragmentScannerImpl.java:1363)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2755)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:648)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:511)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:808)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:737)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:119)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1205)
at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:522)
at javax.xml.parsers.SAXParser.parse(SAXParser.java:395)
at org.eclipse.emf.ecore.xmi.impl.XMLLoadImpl.load(XMLLoadImpl.java:181)
... 44 more
For review I hit this again and was able to break on the exception. The error is when loading com/sun/faces/metadata/taglib/facelets_jsf_core.taglib.xml from glassfish.jsf_1.0.0.0_2-0-4.jar The tld has many sections that are improperly escaped. The first is at line 453 colum 52 as suggested by the exception.
<attribute>
<description>
<p class="changed_added_2_0">Evaluates to
Collection<String>. This is a space separated
list of client ids of components that will participate
in the "execute" portion of the Request Processing
Lifecycle. If a literal is specified the identifiers
must be space delimited. Any of the keywords "@this",
"@form", "@all", "@none" may be specified in the
identifier list. If not specified, the default value of
---> "@this" is assumed. <span
---> class="changed_modified_2_0_rev_a">For example,
<code>@this clientIdOne
clientIdTwo</code>.</span></p>
</description> ...
Notice that the span tag in the description text is not escaped. This tld is full of such instances.
To reproduce, some or all of the following is necessary: - at workspace startup - facelet XHTML file open in Web Page Editor - separate pallete view open - at least one other JSF project open in workspace This is due to invalid XML in the Glassfish JSF JAR (see http://java.net/jira/browse/GLASSFISH-14509). We log the error and move on to the next JAr entry; there is nothing more we can do. The Glassfish JAR is not valid (HTML tags in the description element need to be escaped). We log the issue and move on, there is no more we can do. |