Skip to content
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Fixes IllegalAccessExceptions
Adds missing setAccessible calls.
  • Loading branch information
Piotr P. Karwasz committed Nov 10, 2019
commit 2860e9c6b55f5d5232e5d2cac9b57ade7af67f4d
Original file line number Diff line number Diff line change
Expand Up @@ -100,11 +100,11 @@ enum DirectBufferConstructorType
mGetAddress = directByteBufferClass.getDeclaredMethod("address");
mGetAddress.setAccessible(true);

if (MessageBuffer.javaVersion >= 9) {
setupCleanerJava9(direct);
if (MessageBuffer.javaVersion <= 8) {
setupCleanerJava6(direct);
}
else {
setupCleanerJava6(direct);
setupCleanerJava9(direct);
}
}
catch (Exception e) {
Expand All @@ -127,7 +127,6 @@ public Object run()
throw new RuntimeException((Throwable) obj);
}
mCleaner = (Method) obj;
mCleaner.setAccessible(true);

obj = AccessController.doPrivileged(new PrivilegedAction<Object>()
{
Expand All @@ -141,7 +140,6 @@ public Object run()
throw new RuntimeException((Throwable) obj);
}
mClean = (Method) obj;
mClean.setAccessible(true);
}

private static void setupCleanerJava9(final ByteBuffer direct)
Expand Down Expand Up @@ -169,6 +167,7 @@ private static Object getCleanerMethod(ByteBuffer direct)
{
try {
Method m = direct.getClass().getDeclaredMethod("cleaner");
m.setAccessible(true);
m.invoke(direct);
return m;
}
Expand All @@ -194,6 +193,7 @@ private static Object getCleanMethod(ByteBuffer direct, Method mCleaner)
try {
Method m = mCleaner.getReturnType().getDeclaredMethod("clean");
Object c = mCleaner.invoke(direct);
m.setAccessible(true);
m.invoke(c);
return m;
}
Expand Down