Folks,

I am wondering if null properties are suppose to be dealt with morwe gracefully 
within T-5.4 as everytime I create an object it works fine and is displayed 
within my gallery widget but if I omit property fields declared inside 
@Embeddable classes, they get stored in hibernate as nulls and any subsequent 
Edits crash the app due to these omissions. Is tapestry suppose to handle this 
properly to avoid crash ?

Alleged as follows...

I have a curious EditBlock DisplayBlock issue with regard to entity in 
hibernate database.

Here is the model layout

I have Person.Java where Person is a base class Player class

But Person.Java has a data member
private Demographics demographics = new Demographics();

and here is how Demographics is declared

Demographics.Java...
@Embeddable
public class Demographics


ok so 
Player extends from Person
Person has demographics
Player declares the following:

    @Column(columnDefinition = "longtext", length = 6291456)
    @PropertyDescriptor(readOnly = false)
    public String getBio() {
        return bio;
    }

My issue is weird... Currently I can create Players at this demo site
http://psinh.ddns.net:9011/psi/home

If I create a player it gets saved fine

On subsequent EDIT operations (you can edit as player by clicking on any image 
in Gallery)...

Only Players who's demographics were all filled in with legitimate string data 
get displayed and edited.

The problem being... the app crashes on Players who's Demographics were omitted 
on creation and all properties within the @Embedded instance are null.

Its reproducible everytime at  http://psinh.ddns.net:9011/psi/home


Here is the crash trace
An exception has occurred processing this request.
Render queue error in SetupRender[tynamo/PropertyEditBlocks:editor]: Exception 
instantiating instance of org.tynamo.psi.psi.model.Demographics (for component 
'tynamo/PropertyEditBlocks:editor'): 
org.apache.tapestry5.ioc.internal.OperationException: No service implements the 
interface java.lang.String.

with reload: Force a reload of component classes. This is often necessary after 
fixing a class that previously failed to compile due to errors.
org.apache.tapestry5.internal.services.RenderQueueException

Render queue error in SetupRender[tynamo/PropertyEditBlocks:editor]: Exception 
instantiating instance of org.tynamo.psi.psi.model.Demographics (for component 
'tynamo/PropertyEditBlocks:editor'): 
org.apache.tapestry5.ioc.internal.OperationException: No service implements the 
interface java.lang.String.

activeComponents

        edit/Player (class org.tynamo.psi.psi.pages.edit.PlayerEdit)
        edit/Player:layout (class org.tynamo.psi.psi.components.Layout)
        classpath:org/tynamo/psi/psi/pages/edit/PlayerEdit.tml, line 2
        1    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd";>
        2    <t:layout title="title" 
xmlns:t="http://tapestry.apache.org/schema/tapestry_5_3.xsd"; 
xmlns:p="tapestry:parameter">
        3    <p:subMenuBlock>
        4    <ul>
        5    <ul id="local">
        6    </ul>
        7    </ul>
        edit/Player:form (class org.apache.tapestry5.corelib.components.Form)
        classpath:org/tynamo/psi/psi/pages/edit/PlayerEdit.tml, line 17
        12    
        13    <h1>${title}</h1>
        14    
        15    <br/>
        16    
        17    <t:form validate="bean">
        18    <t:errors/>
        19    
        20    <div class="t-beaneditor">
        21    
        22    <t:beaneditor object="mb:bean" t:mixins="tynamo/BeanModelAdvisor">
        edit/Player:beaneditor (class 
org.apache.tapestry5.corelib.components.BeanEditor)
        classpath:org/tynamo/psi/psi/pages/edit/PlayerEdit.tml, line 22
        17    <t:form validate="bean">
        18    <t:errors/>
        19    
        20    <div class="t-beaneditor">
        21    
        22    <t:beaneditor object="mb:bean" t:mixins="tynamo/BeanModelAdvisor">
        23    
        24    <p:bio>
        25    <t:label for="bio">BIO</t:label>
        26    <t:textarea t:id="bio" value="bean.bio" />
        27    </p:bio>
        edit/Player:beaneditor.loop (class 
org.apache.tapestry5.corelib.components.Loop)
        classpath:org/apache/tapestry5/corelib/components/BeanEditor.tml, line 3
        1    <t:loop 
xmlns:t="http://tapestry.apache.org/schema/tapestry_5_3.xsd";
        2    source="model.propertyNames" formState="ITERATION"
        3    value="propertyName">
        4    <t:propertyEditor property="propertyName" object="object" 
model="model" overrides="overrides"/>
        5    </t:loop>
        edit/Player:beaneditor.propertyeditor (class 
org.apache.tapestry5.corelib.components.PropertyEditor)
        classpath:org/apache/tapestry5/corelib/components/BeanEditor.tml, line 4
        1    <t:loop 
xmlns:t="http://tapestry.apache.org/schema/tapestry_5_3.xsd";
        2    source="model.propertyNames" formState="ITERATION"
        3    value="propertyName">
        4    <t:propertyEditor property="propertyName" object="object" 
model="model" overrides="overrides"/>
        5    </t:loop>
        tynamo/PropertyEditBlocks:editor (class 
org.apache.tapestry5.corelib.components.BeanEditor)
        classpath:org/tynamo/pages/PropertyEditBlocks.tml, line 58
        53    </t:block>
        54    
        55    <t:block id="embedded">
        56    <fieldset class="group">
        57    <legend>${propertyEditContext.label}</legend>
        58    <t:beaneditor t:id="editor" 
object="propertyEditContext.propertyValue" model="embeddedModel" />
        59    </fieldset>
        60    </t:block>
        61    
        62    <t:block id="blob">
        63    <label>${propertyEditContext.label}</label>

location
    classpath:org/tynamo/pages/PropertyEditBlocks.tml, line 58

org.apache.tapestry5.ioc.internal.util.TapestryException

Exception instantiating instance of org.tynamo.psi.psi.model.Demographics (for 
component 'tynamo/PropertyEditBlocks:editor'): 
org.apache.tapestry5.ioc.internal.OperationException: No service implements the 
interface java.lang.String.

location
    classpath:org/tynamo/pages/PropertyEditBlocks.tml, line 58

                                          

Reply via email to