CastException with treeTable

UI Components for JSF
Post Reply
Bailey Cheng
Posts: 1
Joined: 16 Sep 2010, 03:04

16 Sep 2010, 03:26

I'm using JSF2.0, PrimeFaces-2.2.M1 ,

I copy the source code of treeTable to test (http://www.primefaces.org/showcase/ui/treeTable.jsf),

everything is working , but when I click the options command to show the dialog that the server will

display the error message and the dialog never display the information of

documentsController.selectedDocument , this problem also present on the "Tree - Ajax Selection", it can

display the node, but when I click the node, the ajax never work and the dialog never show, anyone can

help me?

error message:

Code: Select all

javax.faces.FacesException: java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to com.sun.faces.application.view.StateHolderSaver
	at javax.faces.component.UIComponent.invokeOnComponent(UIComponent.java:1256)
	at javax.faces.component.UIComponentBase.invokeOnComponent(UIComponentBase.java:672)
	at com.sun.faces.application.view.StateManagementStrategyImpl.restoreView(StateManagementStrategyImpl.java:284)
	at com.sun.faces.application.StateManagerImpl.restoreView(StateManagerImpl.java:177)
	at com.sun.faces.application.view.ViewHandlingStrategy.restoreView(ViewHandlingStrategy.java:131)
	at com.sun.faces.application.view.FaceletViewHandlingStrategy.restoreView(FaceletViewHandlingStrategy.java:430)
	at com.sun.faces.application.view.MultiViewHandler.restoreView(MultiViewHandler.java:143)
	at com.sun.faces.lifecycle.RestoreViewPhase.execute(RestoreViewPhase.java:199)
	at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
	at com.sun.faces.lifecycle.RestoreViewPhase.doPhase(RestoreViewPhase.java:110)
	at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:312)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:857)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
	at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to com.sun.faces.application.view.StateHolderSaver
	at com.sun.faces.application.view.StateManagementStrategyImpl$4.invokeContextCallback(StateManagementStrategyImpl.java:288)
	at javax.faces.component.UIComponent.invokeOnComponent(UIComponent.java:1253)
	... 23 more
treeTable.xhtml:

Code: Select all

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
	  xmlns:h="http://java.sun.com/jsf/html"
	  xmlns:f="http://java.sun.com/jsf/core"
	  xmlns:p="http://primefaces.prime.com.tr/ui">
<h:head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<title>Insert title here</title>
</h:head>
<h:body>
<h:form prependId="false">

	<p:treeTable value="#{documentsController.root}" var="document">
		<p:column>
			<f:facet name="header">
				Name
			</f:facet>
			<h:outputText value="#{document.name}" />
		</p:column>
		
		<p:column>
			<f:facet name="header">
				Size
			</f:facet>
			<h:outputText value="#{document.size}" />
		</p:column>
		
		<p:column>
			<f:facet name="header">
				Type
			</f:facet>
			<h:outputText value="#{document.type}" />
		</p:column>
		
		<p:column>
			<f:facet name="header">
				Options
			</f:facet>
			<p:commandLink update="documentPanel" oncomplete="documentDialog.show()" title="View Detail">
				<p:graphicImage value="/images/search.png"/> 
				<f:setPropertyActionListener value="#{document}" 
					target="#{documentsController.selectedDocument}" />
			</p:commandLink>
		</p:column>
		
	</p:treeTable>
	
	<p:dialog header="Document Detail" fixedCenter="true" effect="FADE" effectDuration="0.3"
		widgetVar="documentDialog" modal="true">
	
		<p:outputPanel id="documentPanel">
			<h:panelGrid  columns="2" cellpadding="5">
				<h:outputLabel for="name" value="Name: " />
				<h:outputText id="name" style="font-weight:bold"
					value="#{documentsController.selectedDocument.name}"  />
				
				<h:outputLabel for="size" value="Size: " />
				<h:outputText id="size" style="font-weight:bold" 
					value="#{documentsController.selectedDocument.size}"  />
				
				<h:outputLabel for="type" value="Type " />
				<h:outputText id="type" style="font-weight:bold"
					value="#{documentsController.selectedDocument.type}"  />
			</h:panelGrid>
		</p:outputPanel>
	</p:dialog>
	
</h:form>
					
</h:body>
</html>

DocumentsController.java

Code: Select all

@ManagedBean
@SessionScoped
public class DocumentsController implements Serializable{
	
	private static final long serialVersionUID = 1L;
    private static final Logger logger = Logger.getLogger(DocumentsController.class.getName());

		private TreeNode root;

		private Document selectedDocument;
		
		public DocumentsController() {
			root = new DefaultTreeNode("root", null);
			
			TreeNode documents = new DefaultTreeNode(new Document("Documents", "-", "Folder"), root);
			TreeNode pictures = new DefaultTreeNode(new Document("Pictures", "-", "Folder"), root);
			TreeNode music = new DefaultTreeNode(new Document("Music", "-", "Folder"), root);
			
			TreeNode work = new DefaultTreeNode(new Document("Work", "-", "Folder"), documents);
			TreeNode primefaces = new DefaultTreeNode(new Document("PrimeFaces", "-", "Folder"), documents);
			
			//Documents
			TreeNode expenses = new DefaultTreeNode("document", new Document("Expenses.doc", "30 KB", "Word Document"), work);
			TreeNode resume = new DefaultTreeNode("document", new Document("Resume.doc", "10 KB", "Word Document"), work);
			TreeNode refdoc = new DefaultTreeNode("document", new Document("RefDoc.pages", "40 KB", "Pages Document"), primefaces);
			
			//Pictures
			TreeNode barca = new DefaultTreeNode("picture", new Document("barcelona.jpg", "30 KB", "JPEG Image"), pictures);
			TreeNode primelogo = new DefaultTreeNode("picture", new Document("logo.jpg", "45 KB", "JPEG Image"), pictures);
			TreeNode optimus = new DefaultTreeNode("picture", new Document("optimusprime.png", "96 KB", "PNG Image"), pictures);
			
			//Music
			TreeNode turkish = new DefaultTreeNode(new Document("Turkish", "-", "Folder"), music);
			
			TreeNode cemKaraca = new DefaultTreeNode(new Document("Cem Karaca", "-", "Folder"), turkish);
			TreeNode erkinKoray = new DefaultTreeNode(new Document("Erkin Koray", "-", "Folder"), turkish);
			TreeNode mogollar = new DefaultTreeNode(new Document("Mogollar", "-", "Folder"), turkish);
			
			TreeNode nemalacak = new DefaultTreeNode("mp3", new Document("Nem Alacak Felek Benim", "1500 KB", "Audio File"), cemKaraca);
			TreeNode resimdeki = new DefaultTreeNode("mp3", new Document("Resimdeki Gozyaslari", "2400 KB", "Audio File"), cemKaraca);
			
			TreeNode copculer = new DefaultTreeNode("mp3", new Document("Copculer", "2351 KB", "Audio File"), erkinKoray);
			TreeNode oylebirgecer = new DefaultTreeNode("mp3", new Document("Oyle bir Gecer", "1794 KB", "Audio File"), erkinKoray);
			
			TreeNode toprakana = new DefaultTreeNode("mp3", new Document("Toprak Ana", "1536 KB", "Audio File"), mogollar);
			TreeNode bisiyapmali = new DefaultTreeNode("mp3", new Document("Bisi Yapmali", "2730 KB", "Audio File"), mogollar);
		} 
............getter and setter 

maximiliano
Posts: 18
Joined: 27 Apr 2011, 08:52

23 Jan 2012, 05:03

Could someone help with this ?
I'm having the same problem.
Is there a solution for people who is still using primefaces 2.2 ?
thanks

MTornros
Posts: 102
Joined: 23 Dec 2011, 16:43

23 Jan 2012, 16:27

Primefaces 2.2.M1 is not a supported version, you should be using 2.2.1 (or preferably 3.X).
Primefaces 3.4.1-jQueryfix
Spring webflow 2.3.1
Mojarra jsf 2.1.7

cagatay.civici
Prime
Posts: 18616
Joined: 05 Jan 2009, 00:21
Location: Cybertron
Contact:

23 Jan 2012, 16:28

Upgrade to PrimeFaces 3.x.

Post Reply

Return to “PrimeFaces”

  • Information
  • Who is online

    Users browsing this forum: No registered users and 28 guests