[jbossseam-issues] [JBoss JIRA] Created: (JBSEAM-3692) Seam 2.1.0.SP1 generate-ui fails

Tony Kay (JIRA) jira-events at lists.jboss.org
Tue Nov 11 17:46:36 EST 2008


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

        



More information about the seam-issues mailing list