I'm getting a strange cast class exception with the grid component, along the lines of: Render queue error in BeginRender[admin/WidgetList:grid.rows.gridcell]: com.companyname.data.Widget cannot be cast to com.companyname.data.Widget_$$_javassist_0
The code is simple and clean and I don't get it elsewhere, so I'm puzzled. Any ideas of where to look? The code is similar to the following (names changed to protect the innocent): tml includes: <t:grid t:pagerPosition="both" source="widgetList" row="widgetLoop" rowsPerPage="50" > <t:parameter name="nameCell"> <t:pagelink page="admin/stuff/WidgetEdit" context="widgetLoop.id"> ${widgetLoop.name} </t:pagelink> </t:parameter> </t:grid> .java: package com.companyname.web.pages.admin; import java.util.List; import org.apache.tapestry5.annotations.Property; import org.apache.tapestry5.ioc.annotations.Inject; import org.hibernate.Session; import com.companyname.data.Widget; import com.companyname.web.pages.SecuredPage; public class WidgetList extends SecuredPage { @Inject private Session session; @Property List<Widget> widgets; /** * stores current group for loop usage */ @Property private Widget widgetLoop; void onActivate(Object[] context) { //no-op } @SuppressWarnings("unchecked") void setupRender() { widgets = (List<Widget>) session.createCriteria(Widget.class).list(); } public List<Widget> getWidgetList() { return widgets; } } package com.companyname.data; import java.util.Date; import java.util.GregorianCalendar; import java.util.HashSet; import java.util.Set; public class Widget { public static final String USEFUL_NAME = "help"; private Long id; private String name; private Set<Item> items = new HashSet<Item>(); private Date createdDate; private String description; public Widget() { //if this is a persistent instance, then the createdDate will be //recovered from the DB and set post-constructor createdDate = new GregorianCalendar().getTime(); } public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Set<Item> getItems() { return items; } public void setItems(Set<Item> items) { this.items = items; } public Date getCreatedDate() { return createdDate; } public void setCreatedDate(Date createdDate) { this.createdDate = createdDate; } public String getDescription() { return description; } public void setDescription(String description) { this.description = description; } }