Seam 2.1.0.SP1 generate-ui fails
--------------------------------
Key: JBSEAM-3692
URL:
https://jira.jboss.org/jira/browse/JBSEAM-3692
Project: Seam
Issue Type: Bug
Components: Tools
Affects Versions: 2.1.0.SP1
Environment: Seam 2.1.0.SP1, Icefaces 1.7.2, Jboss AS 4.2.2
Reporter: Tony Kay
My application runs fine (schema generation works, deployment works, existing code runs);
however, running seam generate-ui produces the following error:
[hibernate] An exception occurred while running exporter #2:generic exportertemplate:
view/list.xhtml.ftl
[hibernate] To get the full stack trace run ant with -verbose
[hibernate] org.hibernate.tool.hbm2x.ExporterException: Error while processing Entity:
com.therapysites.cms.entity.Theme with template view/list.xhtml.ftl
[hibernate] freemarker.core.InvalidReferenceException: Expression property.value.typeName
is undefined on line 27, column 18 in util/TypeInfo.ftl.
BUILD FAILED
/Users/tonykay/seam/seam-gen/build.xml:1145: org.hibernate.tool.hbm2x.ExporterException:
Error while processing Entity: com.therapysites.cms.entity.Theme with template
view/list.xhtml.ftl
I've tried removing various mappings in the Theme class to see what is causing it, but
nothing I do seems to help. Is there any way to get the property name that was being
evaluated when it pukes?
Here are some of the classes, in case there is something obvious:
The Theme class looks like this:
@Entity
public class Theme implements Serializable {
private Long id;
private Integer version;
private String name;
private Design design;
private OverrideSet overrides;
public Theme() {
overrides = new OverrideSet();
}
@Id
@GeneratedValue
@Column(name = "theme_id")
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
@Version
@Column(columnDefinition = "integer not null default 0")
public Integer getVersion() {
return version;
}
private void setVersion(Integer version) {
this.version = version;
}
@Length(min = 1, max = 40)
@NotNull
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@ManyToOne
@NotNull
@ForeignKey(name = "fk_theme_design")
@JoinColumn(name = "design_id")
public Design getDesign() {
return design;
}
public void setDesign(Design design) {
this.design = design;
}
@NotNull
public OverrideSet getOverrides() {
return overrides;
}
public void setOverrides(OverrideSet overrides) {
this.overrides = overrides;
}
}
and the Design class has this:
@OneToMany(mappedBy="design", cascade=CascadeType.ALL)
public Set<Theme> getThemes() {
return themes;
}
public void setThemes(Set<Theme> themes) {
this.themes = themes;
}
The OverrideSet is an Embeddable with the following form:
@Embeddable
public class OverrideSet implements Serializable {
private static Log log = Logging.getLog(OverrideSet.class);
private Map<String, ColorOverride> colors = null;
private Set<ColorOverride> colorSet = new
HashSet<ColorOverride>();
@Transient
private <T extends ParameterOverride> void rebuildMap(Map<String, T> map,
Set<T> set) {
map.clear();
for(T p : set) {
map.put(p.getName(), p);
}
}
@Transient
public Map<String, ColorOverride> getColors() {
if(colors == null) { // Only rebuild if it does not exist!
colors = new HashMap<String, ColorOverride>();
rebuildMap(colors, colorSet);
}
return colors;
}
@CollectionOfElements
@JoinTable(joinColumns = @JoinColumn(name = "owner_id"), inverseJoinColumns =
@JoinColumn(name = "override_id"))
public Set<ColorOverride> getColorSet() {
return colorSet;
}
public void setColorSet(Set<ColorOverride> colorSet) {
this.colorSet = colorSet;
}
public void setColors(Map<String, ColorOverride> colors) {
this.colors = colors;
}
// Other kinds of overrides (images, etc), but just repeated form
}
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira