Sorry, I really missed that your last question .. :-(. Yes, can you
please open a new issue with Jira and attach all relevant files (domain
objects, field handlers, mapping files, JUnit test case, etc.).

I will be having a look over the weekend, if time permits ....

Werner

michael.jira.codehaus.org wrote:
> Hello together!
> 
> Nobody out there with an idea how to solve this problem?
> 
> Should I open a new issue at http://jira.codehaus.org/browse/CASTOR ?
> 
> Any help would be appreciated.
> 
> Thanks in advance!
> Michael Schnell
> 
> 
> 
>> Hello again!
> 
>> I traced a bit into the code and found the problem seems to be the
>> "ContainerFieldHandler" - It's not an "ExtendedFieldHandler".
> 
>> The problem comes up when the first "<path name="/eng/hamburg"/>" gets
>> unmarshalled. The "UnmarshallHandler" is looking for constructor
>> arguments and the current "ContainerFieldHandler" is not able to
>> handle them...
> 
>> --- UnmarshallHandler.java ---
>> Arguments args = processConstructorArgs(atts, classDesc);
>> if ((args.values != null) && (args.values.length > 0)) {
>>     if (handler instanceof ExtendedFieldHandler) {
>>         ExtendedFieldHandler efh =
>>             (ExtendedFieldHandler)handler;
>>         state.object = efh.newInstance(parentState.object, args.values);
>>     }
>>     else {
>>         String err = "constructor arguments can only be " +
>>             "used with an ExtendedFieldHandler.";
>>           throw new SAXException(err);
>>    }
>> }
>> ------------------------------
> 
>> Any ideas if it's possible to extend "ContainerFieldHandler" to
>> implement "ExtendedFieldHandler"?
> 
>> Some help from the Castor "gurus" would be appreciated!
> 
>> Regards,
>> Michael
> 
> 
>>> Hello out there!
> 
>>> I got a problem unmarshalling the following two classes:
> 
>>> --- EXCEPTION: ---
>>> org.xml.sax.SAXException: constructor arguments can only be used with an 
>>> ExtendedFieldHandler.
> 
>>> --- CLASSES: ---
>>> public class Path {
>>>     private final String name;
>>>     public Path(final String name) {
>>>         super();
>>>         this.name = name;
>>>     }
>>>     public final String getName() {
>>>         return name;
>>>     }
>>> }
>>> public class Area {
>>>     private final String name;
>>>     private List pathList;
>>>     public Area(final String name) {
>>>         this.name = name;
>>>     }
>>>     public final String getName() {
>>>         return name;
>>>     }
>>>     public final List getPathList() {
>>>         return pathList;
>>>     }
>>>     public final void setPathList(final List list) {
>>>         this.pathList = list;
>>>     }
>>> }
> 
>>> --- MAPPING: ---
>>> <mapping>
>>>   <class name="xml.problem.Path" verify-constructable="false">
>>>     <field name="name" set-method="%1" get-method="getName" type="string">
>>>       <bind-xml node="attribute" />
>>>     </field>
>>>   </class>
>>>   <class name="xml.problem.Area" verify-constructable="false">
>>>     <field name="name" set-method="%1" get-method="getName" type="string">
>>>       <bind-xml node="attribute"/>      
>>>     </field>
>>>     <field name="pathList" 
>>>            type="xml.problem.Path" 
>>>            collection="arraylist"
>>>            container="false">
>>>       <bind-xml name="path-list" node="element" />
>>>     </field>
>>>   </class>
>>> </mapping>
> 
>>> --- XML: ---
>>> <area name="Hamburg">
>>>     <path-list>
>>>         <path name="/eng/hamburg"/>
>>>         <path name="/deu/hamburg"/>
>>>     </path-list>
>>> </area>
> 
>>> --- VERSIONS: ---
>>> Castor 1.0.5
>>> Java JRE 1.5
> 
> 
>>> The problem seems to be "container=false" - If you marshal/unmarshal
>>> without this attribute everything works fine (but the XML does not
>>> look as expected)!
> 
> 
>>> For a full example including a testcase see this ZIP-File:
>>> http://www.fuin.org/xml-problem.zip
>>> (I wasn't able to attach the file to this mail because "attachment
>>> type was not permitted")
> 
> 
>>> Greetings from (snowless) Germany,
>>> Michael
>>> ---------------------------------------------------------------------
> 
> 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe from this list please visit:
> 
>     http://xircles.codehaus.org/manage_email
> 


---------------------------------------------------------------------
To unsubscribe from this list please visit:

    http://xircles.codehaus.org/manage_email

Reply via email to