Yes, I discovered the same exact thing you did, over the weekend. As far as I can tell, this "bug" means that the "field-handler" element doesn't allow you to reuse the handler across more than one field.
In my case, I have 50 fields, and each field will use 1 of 4 different types of custom handlers: StringHandler, IntegerHandler, DecimalHandler, and DateHandler. I had hoped to declare each handler once (using a param to tell it which type of field class to handle), and use them in my field mappings. But since each handler only gets instantiated *once* (not once *per field*), it means the handler will only work for the last field it was assigned to! Does anyone know if this has been reported as a bug? The "test case" is the mapping Paulo provided below, which is simplified even more here: <field-handler name="*myHandlerName*" class="myHandler"/> <field name="*myField1*" type="string" handler="*myHandlerName*"> <bind-xml name="my-field-1" node="attribute"/> </field> <field name="*myField2*" type="string" handler="*myHandlerName*"> <bind-xml name="my-field-2" node="attribute"/> </field> If you use this to unmarshall an XML document, "myHandler" only gets called for "myField2", not "myField1". Steve On Wed, Oct 15, 2008 at 2:24 PM, Paulo Silveira <[EMAIL PROTECTED]>wrote: > Hi, > > > I extended *GeneralizedFieldHandler* to create my own handler. > > > I'm trying to pass a parameter to it (since *GeneralizedFieldHandler* > implements > *ConfigurableFieldHandler*) and use it for many fields that are binding > for different methods. > > > > My mapping file: > > > > <!-- Handler mapping --> > > <field-handler name="*myHandlerName*" class="myHandler"> > > <param name="myFlag" value="true"/> > > </field-handler> > > > > <!-- fields mapping --> > > <field name="*myField1*" required="true" type="string" handler="* > myHandlerName*"> > > <bind-xml name="my-field-1" node="attribute"/> > > </field> > > <field name="*myField2*" required="true" type="string" handler="* > myHandlerName*"> > > <bind-xml name=" my-field-2" node="attribute"/> > > </field> > > > > The issue is that castor is calling *getMyField2* all the time (it never > calls *getMyField1 *for the first field). > > > > After some debug in castor source code I saw that the myHandler instance is > the same all the time (it looks fine to me, since I have only one handler in > this mapping), but it has a reference to *FieldHandlerImpl* object > (attribute *_handler*) and this object has an attribute *_getMethod,* this > attribute is set for each field that I have in my mapping file, but the > handler instance is the same and in the moment of use it, *_getMethod*will > have the method that I have in my last mapped field that > uses myHandlerName (in this example: *myField2*). > > Does anyone have similar issue? > > Thanks, > Paulo >

