-
Bug
-
Resolution: Done
-
Major
-
3.3.0.M4
-
None
Test case:
1. Create Dynamic Web Project
2. Add JSF 2 Facet
3. Create TestConverter class
package demo; import javax.faces.convert.FacesConverter; @FacesConverter("test") public class TestConverter { }
4. Create main.xhtml page:
<!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <ui:composition xmlns="http://www.w3.org/1999/xhtml" xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core" xmlns:s="http://jboss.com/products/seam/taglib" xmlns:a="http://richfaces.org/a4j" template="template.xhtml"> <!-- content --> <ui:define name="content"> <div class="section"> <h:form id="main"> <span class="errors"> <h:messages globalOnly="true"/> </span> <h1>Search Hotels</h1> <fieldset> <h:outputText value="#{hotelSearch.searchString}"> <f:converter converterId="test"/> </h:outputText> <h:inputText id="searchString" value="#{hotelSearch.searchString}" style="width: 165px;"> <a:support event="onkeyup" actionListener="#{hotelSearch.find}" reRender="searchResults" /> </h:inputText>   <a:commandButton id="findHotels" value="Find Hotels" action="#{hotelSearch.find}" reRender="searchResults"/>   <a:status> <f:facet name="start"> <h:graphicImage value="/img/spinner.gif"/> </f:facet> </a:status> <br/> <h:outputLabel for="pageSize">Maximum results:</h:outputLabel>  <h:selectOneMenu value="#{hotelSearch.pageSize}" id="pageSize"> <f:selectItem itemLabel="5" itemValue="5"/> <f:selectItem itemLabel="10" itemValue="10"/> <f:selectItem itemLabel="20" itemValue="20"/> </h:selectOneMenu> </fieldset> </h:form> </div> <a:outputPanel id="searchResults"> <div class="section"> <h:outputText value="No Hotels Found" rendered="#{hotels != null and hotels.rowCount==0}"/> <h:dataTable id="hotels" value="#{hotels}" var="hot" rendered="#{hotels.rowCount>0}"> <h:column> <f:facet name="header">Name</f:facet> #{hot.name} </h:column> <h:column> <f:facet name="header">Address</f:facet> #{hot.address} </h:column> <h:column> <f:facet name="header">City, State</f:facet> #{hot.city}, #{hot.state}, #{hot.country} </h:column> <h:column> <f:facet name="header">Zip</f:facet> #{hot.zip} </h:column> <h:column> <f:facet name="header">Action</f:facet> <s:link id="viewHotel" value="View Hotel" action="#{hotelBooking.selectHotel(hot)}"/> </h:column> </h:dataTable> <s:link value="More results" action="#{hotelSearch.nextPage}" rendered="#{hotelSearch.nextPageAvailable}"/> </div> </a:outputPanel> <div class="section"> <h1>Current Hotel Bookings</h1> </div> <div class="section"> <h:form id="bookings"> <h:outputText value="No Bookings Found" rendered="#{bookings.rowCount==0}"/> <h:dataTable id="bookings" value="#{bookings}" var="book" rendered="#{bookings.rowCount>0}"> <h:column> <f:facet name="header">Name</f:facet> #{book.hotel.name} </h:column> <h:column> <f:facet name="header">Address</f:facet> #{book.hotel.address} </h:column> <h:column> <f:facet name="header">City, State</f:facet> #{book.hotel.city}, #{book.hotel.state} </h:column> <h:column> <f:facet name="header">Check in date</f:facet> <h:outputText value="#{book.checkinDate}"/> </h:column> <h:column> <f:facet name="header">Check out date</f:facet> <h:outputText value="#{book.checkoutDate}"/> </h:column> <h:column> <f:facet name="header">Confirmation number</f:facet> #{book.id} </h:column> <h:column> <f:facet name="header">Action</f:facet> <h:commandLink id="cancel" value="Cancel" action="#{bookingList.cancel}"/> </h:column> </h:dataTable> </h:form> </div> </ui:define> <!-- sidebar --> <ui:define name="sidebar"> </ui:define> </ui:composition>
5. Build project
6. Restart Studio
Fail:
!SUBENTRY 1 org.jboss.tools.jst.web.kb 4 75 2011-12-02 11:53:28.783 !MESSAGE Errors running builder 'JBoss Knowledge Base Builder' on project 'JSF2ComponentsValidator'. !STACK 0 java.lang.ClassCastException: java.lang.String cannot be cast to org.jboss.tools.common.model.XModelObject at org.jboss.tools.jst.web.kb.internal.scanner.LibraryProxy.loadXML(LibraryProxy.java:49) at org.jboss.tools.jst.web.kb.internal.KbProject.loadSourcePaths2(KbProject.java:568) at org.jboss.tools.jst.web.kb.internal.KbProject.load(KbProject.java:323) at org.jboss.tools.jst.web.kb.internal.KbProject.resolveStorage(KbProject.java:282) at org.jboss.tools.jst.web.kb.internal.KbBuilder.build(KbBuilder.java:100) at org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:728) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:199) at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:239) at org.eclipse.core.internal.events.BuildManager$1.run(BuildManager.java:292) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:295) at org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:351) at org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:374) at org.eclipse.core.internal.events.AutoBuildJob.doBuild(AutoBuildJob.java:143) at org.eclipse.core.internal.events.AutoBuildJob.run(AutoBuildJob.java:241) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)