ソースを参照

fixes a bug reported in #228

tags/rel_3_24_1_ga
chibash 5年前
コミット
a82e2d71bd
3個のファイルの変更15行の追加1行の削除
  1. バイナリ
      javassist.jar
  2. 3
    1
      src/main/javassist/util/proxy/ProxyFactory.java
  3. 12
    0
      src/test/javassist/proxyfactory/ProxyFactoryTest.java

バイナリ
javassist.jar ファイルの表示


+ 3
- 1
src/main/javassist/util/proxy/ProxyFactory.java ファイルの表示

@@ -622,7 +622,9 @@ public class ProxyFactory {
* {@code java.lang.invoke.MethodHandles.Lookup}.
*/
private Class<?> getClassInTheSamePackage() {
if (superClass != null && superClass != OBJECT_TYPE)
if (basename.startsWith("javassist.util.proxy.")) // maybe the super class is java.*
return this.getClass();
else if (superClass != null && superClass != OBJECT_TYPE)
return superClass;
else if (interfaces != null && interfaces.length > 0)
return interfaces[0];

+ 12
- 0
src/test/javassist/proxyfactory/ProxyFactoryTest.java ファイルの表示

@@ -128,4 +128,16 @@ public class ProxyFactoryTest extends TestCase {
public static class TestDefaultC2 extends TestDefaultC {
public int baz() { return super.foo(); }
}

public void testJava11() throws Exception {
ProxyFactory factory = new ProxyFactory();
factory.setSuperclass(java.util.HashMap.class);
java.util.HashMap e = (java.util.HashMap)factory.create(null, null, new MethodHandler() {
@Override
public Object invoke(Object self, Method thisMethod,
Method proceed, Object[] args) throws Throwable {
return proceed.invoke(self, args);
}
});
}
}

読み込み中…
キャンセル
保存