Can you post your ConfigData class?

You could also try enabling debug logging for category
   org.apache.commons.digester
which will give a lot of info about which methods are called when.

Regards, Simon

Thanks for the suggestion. I'll try adding logging to the simplified
example. Logging on my working application looked as if the wrong
information was in my XML input, although there was a lot of output to
wade through. Logging on the example code should be much easier to analyze.
I should clarify, it just looked like the wrong information was in the XML even though it was correct. Some additional examples:

This digester_conf.xml
 <toplevel>
     <stringset
     attr1="1]"
     attr2="2]"
     attr3="3]"
     attr4="4]"
     attr5="5]"
     attr6="6]"
     attr7="7]seven"
     attr8="8]!"
     attr9="9]"
     attr10="ten"
     />
 </toplevel>

results in output (attr7 has attr8 overlaid):
 String set:
   attr1 =1]
   attr2 =2]
   attr3 =3]
   attr4 =4]
   attr5 =5]
   attr6 =6]
   attr7 =8]!even
   attr8 =8]!
   attr9 =9]
   attr10=ten

and this digester_conf.xml (same as before, but attr10 changed)
 <toplevel>
     <stringset
     attr1="1]"
     attr2="2]"
     attr3="3]"
     attr4="4]"
     attr5="5]"
     attr6="6]"
     attr7="7]seven"
     attr8="8]!"
     attr9="9]"
     attr10="ten]"
     />
 </toplevel>

results in output (attr7 has attr8 overlaid, attr9 has attr10 overlaid):
 String set:
   attr1 =1]
   attr2 =2]
   attr3 =3]
   attr4 =4]
   attr5 =5]
   attr6 =6]
   attr7 =8]!even
   attr8 =8]!
   attr9 =te
   attr10=ten]

Here is the logging output (log4j) for the first digester_conf.xml file. I'm not sure what to make of this.

-Ken

main INFO tryDigesterConfigLimit.TryDigester - Beginning TryDigester session ------------- main DEBUG Digester.sax - setDocumentLocator([EMAIL PROTECTED])
main DEBUG Digester.sax - startDocument()
main DEBUG Digester.sax - startElement(,,toplevel)
main DEBUG digester.Digester -   Pushing body text ''
main DEBUG digester.Digester -   New match='toplevel'
main DEBUG digester.Digester -   No rules found matching 'toplevel'.
main DEBUG Digester.sax - characters(

   )
main DEBUG Digester.sax - characters(
   )
main DEBUG Digester.sax - characters(
   )
main DEBUG Digester.sax - startElement(,,stringset)
main DEBUG digester.Digester -   Pushing body text '



   '
main DEBUG digester.Digester -   New match='toplevel/stringset'
main DEBUG digester.Digester - Fire begin() for ObjectCreateRule[className=gov.noaa.eds.byExample.tryDigesterConfigLimit.StringSet, attributeName=null] main DEBUG digester.Digester - [ObjectCreateRule]{toplevel/stringset}New gov.noaa.eds.byExample.tryDigesterConfigLimit.StringSet
main DEBUG digester.Digester -   Fire begin() for SetPropertiesRule[]
main DEBUG digester.Digester - [SetPropertiesRule]{toplevel/stringset} Setting property 'attr1' to '1]' main DEBUG digester.Digester - [SetPropertiesRule]{toplevel/stringset} Setting property 'attr2' to '2]' main DEBUG digester.Digester - [SetPropertiesRule]{toplevel/stringset} Setting property 'attr3' to '3]' main DEBUG digester.Digester - [SetPropertiesRule]{toplevel/stringset} Setting property 'attr4' to '4]' main DEBUG digester.Digester - [SetPropertiesRule]{toplevel/stringset} Setting property 'attr5' to '5]' main DEBUG digester.Digester - [SetPropertiesRule]{toplevel/stringset} Setting property 'attr6' to '6]' main DEBUG digester.Digester - [SetPropertiesRule]{toplevel/stringset} Setting property 'attr7' to '8]!even' main DEBUG digester.Digester - [SetPropertiesRule]{toplevel/stringset} Setting property 'attr8' to '8]!' main DEBUG digester.Digester - [SetPropertiesRule]{toplevel/stringset} Setting property 'attr9' to '9]' main DEBUG digester.Digester - [SetPropertiesRule]{toplevel/stringset} Setting property 'attr10' to 'ten' main DEBUG digester.Digester - [SetPropertiesRule]{toplevel/stringset} Set gov.noaa.eds.byExample.tryDigesterConfigLimit.StringSet properties main DEBUG beanutils.BeanUtils - BeanUtils.populate([EMAIL PROTECTED], {attr9=9], attr10=ten, attr2=2], attr1=1], attr4=4], attr3=3], attr6=6], attr5=5], attr8=8]!, attr7=8]!even}) main DEBUG beanutils.BeanUtils - setProperty([EMAIL PROTECTED], attr9, 9]) main DEBUG beanutils.ConvertUtils - Convert string '9]' to class 'java.lang.String' main DEBUG beanutils.ConvertUtils - Using converter [EMAIL PROTECTED] main DEBUG beanutils.PropertyUtils - setSimpleProperty: Invoking method public void gov.noaa.eds.byExample.tryDigesterConfigLimit.StringSet.setAttr9(java.lang.String) with value 9] (class java.lang.String) main DEBUG beanutils.BeanUtils - setProperty([EMAIL PROTECTED], attr10, ten) main DEBUG beanutils.ConvertUtils - Convert string 'ten' to class 'java.lang.String' main DEBUG beanutils.ConvertUtils - Using converter [EMAIL PROTECTED] main DEBUG beanutils.PropertyUtils - setSimpleProperty: Invoking method public void gov.noaa.eds.byExample.tryDigesterConfigLimit.StringSet.setAttr10(java.lang.String) with value ten (class java.lang.String) main DEBUG beanutils.BeanUtils - setProperty([EMAIL PROTECTED], attr2, 2]) main DEBUG beanutils.ConvertUtils - Convert string '2]' to class 'java.lang.String' main DEBUG beanutils.ConvertUtils - Using converter [EMAIL PROTECTED] main DEBUG beanutils.PropertyUtils - setSimpleProperty: Invoking method public void gov.noaa.eds.byExample.tryDigesterConfigLimit.StringSet.setAttr2(java.lang.String) with value 2] (class java.lang.String) main DEBUG beanutils.BeanUtils - setProperty([EMAIL PROTECTED], attr1, 1]) main DEBUG beanutils.ConvertUtils - Convert string '1]' to class 'java.lang.String' main DEBUG beanutils.ConvertUtils - Using converter [EMAIL PROTECTED] main DEBUG beanutils.PropertyUtils - setSimpleProperty: Invoking method public void gov.noaa.eds.byExample.tryDigesterConfigLimit.StringSet.setAttr1(java.lang.String) with value 1] (class java.lang.String) main DEBUG beanutils.BeanUtils - setProperty([EMAIL PROTECTED], attr4, 4]) main DEBUG beanutils.ConvertUtils - Convert string '4]' to class 'java.lang.String' main DEBUG beanutils.ConvertUtils - Using converter [EMAIL PROTECTED] main DEBUG beanutils.PropertyUtils - setSimpleProperty: Invoking method public void gov.noaa.eds.byExample.tryDigesterConfigLimit.StringSet.setAttr4(java.lang.String) with value 4] (class java.lang.String) main DEBUG beanutils.BeanUtils - setProperty([EMAIL PROTECTED], attr3, 3]) main DEBUG beanutils.ConvertUtils - Convert string '3]' to class 'java.lang.String' main DEBUG beanutils.ConvertUtils - Using converter [EMAIL PROTECTED] main DEBUG beanutils.PropertyUtils - setSimpleProperty: Invoking method public void gov.noaa.eds.byExample.tryDigesterConfigLimit.StringSet.setAttr3(java.lang.String) with value 3] (class java.lang.String) main DEBUG beanutils.BeanUtils - setProperty([EMAIL PROTECTED], attr6, 6]) main DEBUG beanutils.ConvertUtils - Convert string '6]' to class 'java.lang.String' main DEBUG beanutils.ConvertUtils - Using converter [EMAIL PROTECTED] main DEBUG beanutils.PropertyUtils - setSimpleProperty: Invoking method public void gov.noaa.eds.byExample.tryDigesterConfigLimit.StringSet.setAttr6(java.lang.String) with value 6] (class java.lang.String) main DEBUG beanutils.BeanUtils - setProperty([EMAIL PROTECTED], attr5, 5]) main DEBUG beanutils.ConvertUtils - Convert string '5]' to class 'java.lang.String' main DEBUG beanutils.ConvertUtils - Using converter [EMAIL PROTECTED] main DEBUG beanutils.PropertyUtils - setSimpleProperty: Invoking method public void gov.noaa.eds.byExample.tryDigesterConfigLimit.StringSet.setAttr5(java.lang.String) with value 5] (class java.lang.String) main DEBUG beanutils.BeanUtils - setProperty([EMAIL PROTECTED], attr8, 8]!) main DEBUG beanutils.ConvertUtils - Convert string '8]!' to class 'java.lang.String' main DEBUG beanutils.ConvertUtils - Using converter [EMAIL PROTECTED] main DEBUG beanutils.PropertyUtils - setSimpleProperty: Invoking method public void gov.noaa.eds.byExample.tryDigesterConfigLimit.StringSet.setAttr8(java.lang.String) with value 8]! (class java.lang.String) main DEBUG beanutils.BeanUtils - setProperty([EMAIL PROTECTED], attr7, 8]!even) main DEBUG beanutils.ConvertUtils - Convert string '8]!even' to class 'java.lang.String' main DEBUG beanutils.ConvertUtils - Using converter [EMAIL PROTECTED] main DEBUG beanutils.PropertyUtils - setSimpleProperty: Invoking method public void gov.noaa.eds.byExample.tryDigesterConfigLimit.StringSet.setAttr7(java.lang.String) with value 8]!even (class java.lang.String) main DEBUG digester.Digester - Fire begin() for SetNextRule[methodName=addStringset, paramType=null]
main DEBUG Digester.sax - endElement(,,stringset)
main DEBUG digester.Digester -   match='toplevel/stringset'
main DEBUG digester.Digester -   bodyText=''
main DEBUG digester.Digester - Fire body() for ObjectCreateRule[className=gov.noaa.eds.byExample.tryDigesterConfigLimit.StringSet, attributeName=null]
main DEBUG digester.Digester -   Fire body() for SetPropertiesRule[]
main DEBUG digester.Digester - Fire body() for SetNextRule[methodName=addStringset, paramType=null]
main DEBUG digester.Digester -   Popping body text '



   '
main DEBUG digester.Digester - Fire end() for SetNextRule[methodName=addStringset, paramType=null] main DEBUG digester.Digester - [SetNextRule]{toplevel/stringset} Call gov.noaa.eds.byExample.tryDigesterConfigLimit.ConfigData.addStringset([EMAIL PROTECTED]) main DEBUG beanutils.MethodUtils - Matching name=addStringset on class gov.noaa.eds.byExample.tryDigesterConfigLimit.ConfigData main DEBUG beanutils.MethodUtils - Found straight match: public void gov.noaa.eds.byExample.tryDigesterConfigLimit.ConfigData.addStringset(gov.noaa.eds.byExample.tryDigesterConfigLimit.StringSet)
main DEBUG beanutils.MethodUtils - isPublic:true
main DEBUG digester.Digester -   Fire end() for SetPropertiesRule[]
main DEBUG digester.Digester - Fire end() for ObjectCreateRule[className=gov.noaa.eds.byExample.tryDigesterConfigLimit.StringSet, attributeName=null] main DEBUG digester.Digester - [ObjectCreateRule]{toplevel/stringset} Pop gov.noaa.eds.byExample.tryDigesterConfigLimit.StringSet
main DEBUG Digester.sax - characters(

)
main DEBUG Digester.sax - endElement(,,toplevel)
main DEBUG digester.Digester -   match='toplevel'
main DEBUG digester.Digester -   bodyText='





'
main DEBUG digester.Digester -   No rules found matching 'toplevel'.
main DEBUG digester.Digester -   Popping body text ''
main DEBUG Digester.sax - endDocument()


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to