Archie, This test seems to pass ok, any way the problem in eclipse was fixed by following change. (Sorry, do not have enough time to write the test)
-------------------- --- a/libjc/resolve.c +++ b/libjc/resolve.c @@ -222,17 +222,12 @@ _jc_resolve_field(_jc_env *env, _jc_type return field; } - /* Search for field in superclasses */ - while (JNI_TRUE) { - if ((type = type->superclass) == NULL) - break; - if ((field = _jc_get_declared_field(env, - type, name, sig, is_static)) != NULL) - return field; - } + if (!type->superclass) + return NULL; - /* Not found */ - return NULL; + /* Search for field in superclasses */ + return _jc_resolve_field(env, + type->superclass, name, sig, is_static); } /* ----------------- 2006/6/5, Ivan Volosyuk <[EMAIL PROTECTED]>:
The difference is that access to that field should be done without reflection. I don't have the jchevm at hand, but I think the problematic code should look like: interface I { static final int field = 123; } class S implements I { } public static C extends S { public static void main(String[] args) { System.out.println(field); } } I didn't tested wether it fails. I will check it when get home. -- Ivan 2006/6/5, Archie Cobbs <[EMAIL PROTECTED]>: > Ivan Volosyuk wrote: > > Btw, I have found problem is classloader in jchevm. > > Resolution of field in interface of superclass of some class fails. > > Reproducible at eclipse. I have a patch with fix. It's quite simple. I > > can send it at evening too. > > Do you have a simple test case? This one seems to work OK:
--------------------------------------------------------------------- Terms of use : http://incubator.apache.org/harmony/mailing.html To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]