commons-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Chad Woolley <wool...@thewoolleyweb.com>
Subject Digester / BeanUtils - No Such Accessible Method error
Date Tue, 10 Feb 2004 08:38:50 GMT
Hello,

I am trying to use Digester, and am getting an exception "No such 
accessible method" when using Digester.addSetNext(...).

I have debugged this down to the 
"MethodUtils.getMatchingAccessibleMethod()" method in BeanUtils.

The problem appears to be on line 616:

if (!isAssignmentCompatible(methodsParams[n], parameterTypes[n])) {

If I use the Eclipse debugger to inspect these two arguments, I see that 
parameterTypes[n] has the Class data correctly populated 
(declaredConstructors, declaredMethods, etc).

However, methodParams[n] has null for all of these properties of the 
Class.  This means that in MethodUtils.isAssignmentCompatible(), the 
isAssignableFrom() call returns false, even though the names of the 
classes are identical.

The original value of methodParams[n] comes from this line just above:
Class[] methodsParams = methods[i].getParameterTypes();

I have searched for the answer to this problem, but all other references 
seem to deal with default-access superclasses, which I don't have. 

Both the parent and child objects on the stack when I call 
Digester.addSetNext() are plain public java objects, with no 
superclasses, and all public methods.

It seems like this should be working fine, it's just that the Class 
object that is created from getParameterTypes() has all null fields 
instead of the being properly populated.

I can provide any additional information that is required.  This is an 
open source project, so the problem can be recreated via my unit tests, 
if you want to look at it.

Thanks,
Chad


---------------------------------------------------------------------
To unsubscribe, e-mail: commons-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-user-help@jakarta.apache.org


Mime
View raw message