@@ -414,9 +414,14 @@ public static RubyModule getProxyClass(Ruby runtime, JavaClass javaClass) {
414414
415415 @ SuppressWarnings ("deprecation" )
416416 public static RubyModule getProxyClass (final Ruby runtime , final Class <?> clazz ) {
417+ return getProxyClass (runtime , clazz , false );
418+ }
419+
420+ @ SuppressWarnings ("deprecation" )
421+ public static RubyModule getProxyClass (final Ruby runtime , final Class <?> clazz , boolean setConstant ) {
417422 RubyModule proxy = runtime .getJavaSupport ().getUnfinishedProxy (clazz );
418423 if (proxy != null ) return proxy ;
419- return runtime .getJavaSupport ().getProxyClassFromCache (clazz );
424+ return runtime .getJavaSupport ().getProxyClassFromCache (clazz , setConstant );
420425 }
421426
422427 // expected to handle Java proxy (Ruby) sub-classes as well
@@ -473,7 +478,6 @@ private static void generateInterfaceProxy(final Ruby runtime, final Class javaC
473478 proxy .includeModule (extModule );
474479 }
475480 Initializer .setupProxyModule (runtime , javaClass , proxy );
476- addToJavaPackageModule (proxy );
477481 }
478482
479483 private static void generateClassProxy (Ruby runtime , Class <?> clazz , RubyClass proxy , RubyClass superClass ) {
@@ -495,7 +499,6 @@ else if ( clazz == Object.class ) {
495499 } else {
496500 proxy .getMetaClass ().defineAnnotatedMethods (OldStyleExtensionInherited .class );
497501 }
498- addToJavaPackageModule (proxy );
499502 }
500503 else {
501504 createProxyClass (runtime , proxy , clazz , superClass , false );
@@ -504,9 +507,6 @@ else if ( clazz == Object.class ) {
504507 for ( int i = interfaces .length ; --i >= 0 ; ) {
505508 proxy .includeModule (getInterfaceModule (runtime , interfaces [i ]));
506509 }
507- if ( Modifier .isPublic (clazz .getModifiers ()) ) {
508- addToJavaPackageModule (proxy );
509- }
510510 }
511511
512512 // JRUBY-1000, fail early when attempting to subclass a final Java class;
@@ -824,9 +824,7 @@ private static <T extends ParameterTypes> T checkCallableForArity(final int arit
824824
825825 // package scheme 2: separate module for each full package name, constructed
826826 // from the camel-cased package segments: Java::JavaLang::Object,
827- private static void addToJavaPackageModule (RubyModule proxyClass ) {
828- final Ruby runtime = proxyClass .getRuntime ();
829- final Class <?> clazz = (Class <?>)proxyClass .dataGetStruct ();
827+ static void addToJavaPackageModule (Ruby runtime , Class <?> clazz , RubyModule proxyClass ) {
830828 final String fullName ;
831829 if ( ( fullName = clazz .getName () ) == null ) return ;
832830
@@ -1074,7 +1072,7 @@ private static RubyModule getProxyClassOrNull(final Ruby runtime, final String c
10741072 } catch (ClassNotFoundException ex ) { // used to catch NoClassDefFoundError for whatever reason
10751073 return null ;
10761074 }
1077- return getProxyClass (runtime , clazz );
1075+ return getProxyClass (runtime , clazz , true );
10781076 }
10791077
10801078 private static int mapMajorMinorClassVersionToJavaVersion (String msg , final int offset ) {
0 commit comments