You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by gs...@apache.org on 2006/11/10 15:43:42 UTC

svn commit: r473357 - in /incubator/harmony/enhanced/drlvm/trunk/vm/vmcore: include/version_svn_tag.h src/kernel_classes/javasrc/java/lang/reflect/ReflectExporter.java

Author: gshimansky
Date: Fri Nov 10 06:43:42 2006
New Revision: 473357

URL: http://svn.apache.org/viewvc?view=rev&rev=473357
Log:
Applied HARMONY-1931 [drlvm][unit] Classlib test javax.swing.AbstractActionTest.testClone fails on drlvm

Tests passed on win32 and ubuntu


Modified:
    incubator/harmony/enhanced/drlvm/trunk/vm/vmcore/include/version_svn_tag.h
    incubator/harmony/enhanced/drlvm/trunk/vm/vmcore/src/kernel_classes/javasrc/java/lang/reflect/ReflectExporter.java

Modified: incubator/harmony/enhanced/drlvm/trunk/vm/vmcore/include/version_svn_tag.h
URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/drlvm/trunk/vm/vmcore/include/version_svn_tag.h?view=diff&rev=473357&r1=473356&r2=473357
==============================================================================
--- incubator/harmony/enhanced/drlvm/trunk/vm/vmcore/include/version_svn_tag.h (original)
+++ incubator/harmony/enhanced/drlvm/trunk/vm/vmcore/include/version_svn_tag.h Fri Nov 10 06:43:42 2006
@@ -18,6 +18,6 @@
 #ifndef _VERSION_SVN_TAG_
 #define _VERSION_SVN_TAG_
 
-#define VERSION_SVN_TAG  "473137"
+#define VERSION_SVN_TAG  "473316"
 
 #endif // _VERSION_SVN_TAG_

Modified: incubator/harmony/enhanced/drlvm/trunk/vm/vmcore/src/kernel_classes/javasrc/java/lang/reflect/ReflectExporter.java
URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/drlvm/trunk/vm/vmcore/src/kernel_classes/javasrc/java/lang/reflect/ReflectExporter.java?view=diff&rev=473357&r1=473356&r2=473357
==============================================================================
--- incubator/harmony/enhanced/drlvm/trunk/vm/vmcore/src/kernel_classes/javasrc/java/lang/reflect/ReflectExporter.java (original)
+++ incubator/harmony/enhanced/drlvm/trunk/vm/vmcore/src/kernel_classes/javasrc/java/lang/reflect/ReflectExporter.java Fri Nov 10 06:43:42 2006
@@ -158,21 +158,25 @@
             return true;
         }
         int modifiers = callee.getModifiers();
-        if (Modifier.isPrivate(modifiers)) {
+	    Class calleeDeclaringClass = callee.getDeclaringClass();
+	    if (calleeDeclaringClass == null) {
+	        // the callee is either a top level class or a local class
+            if (Modifier.isPublic(modifiers) || hasSamePackage(callee, caller)) {
+	            return true;
+	        }
+	        // other top level classes and local classes 
             return false;
-        }
-        if (Modifier.isPublic(modifiers) || hasSamePackage(callee, caller)) {
-            return allowClassAccess(callee.getDeclaringClass(), caller);
-        }
-        return false;
+	    }
+	    // here callee is a member class
+   	    return allowAccess(caller, calleeDeclaringClass, calleeDeclaringClass, modifiers);
     }
 
     private boolean hasSameTopLevelClass(Class<?> class1, Class<?> class2) {
         Class topClass;
-        while ( (topClass = class1.getDeclaringClass()) != null) {
+        while ( (topClass = class1.getEnclosingClass()) != null) {
             class1 = topClass;
         }
-        while ( (topClass = class2.getDeclaringClass()) != null) {
+        while ( (topClass = class2.getEnclosingClass()) != null) {
             class2 = topClass;
         }
         return class1 == class2;