Hi I am trying to parse an XML document that has a numeric attribute (size) in one of its elements. I was trying to invoke a setNumber(int value) method in the bean by adding a CallMethodRule and a CallParamRule:
digester.addCallMethod("result/stats", "setNumber", 1, new String[] {"java.lang.Integer"}); digester.addCallParam("result/stats", 0, "size"); This code throws a NullPointerException in the CallMethodRule(String methodName,int paramCount, String paramTypes[]) constructor (in line 229). (I am using digester 1.2 over Linux with the Sun Java 1.3.1).I have been looking for the error cause, and I have found that the constructor uses a "digester.getClassLoader().load..." method when the paramTypes array specified is not empty. Well, looking at the digester source code, it seems that the CallMethodRule is created in the addCallMethod method, so in that constructor the digester object has not been set (the setDigester method is invoked in the addRule method of the Digester class, after creating the CallMethodRule). So, IMHO, the NullPointerException will appear whenever a non-empty paramTypes array is specified in the CallMethodRule creation, because the Digester object will never be set in that point of the program. Do you think that this is correct? I have been also looking at the RuleTestCase, and there are no tests checking this constructor with a non-empty paramTypes array, so this situation is not tested. In my opinion, the ClassLoader must be obtained using another object and a new test line should be added in the TestCase. What do you think about this? Is this correct? Has anybody had this problem before? Thanks, Álvaro Barge -- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>