Uploaded image for project: 'Tools (JBoss Tools)'
  1. Tools (JBoss Tools)
  2. JBIDE-10324

Class Cast Exception in org.jboss.tools.jst.web.kb.internal.scanner.LibraryProxy class

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Major Major
    • 3.3.0.Beta1
    • 3.3.0.M4
    • common
    • 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>
             &#160;
      	   <a:commandButton id="findHotels" value="Find Hotels" action="#{hotelSearch.find}" reRender="searchResults"/>
             &#160;
             <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>&#160;
             <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)
      

            scabanovich Viacheslav Kabanovich (Inactive)
            dazarov_jira Daniel Azarov (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved: