From 476919639cd44d2670bc663ab02bf4bc892db89e Mon Sep 17 00:00:00 2001 From: ST-DDT Date: Wed, 13 Oct 2021 11:16:51 +0200 Subject: [PATCH] Fix PageantConnector struct class visibility The visibility of the struct classes need to be public otherwise the following exception will be thrown: ````txt Caused by: java.lang.IllegalAccessException: Class com.sun.jna.Structure can not access a member of class com.jcraft.jsch.PageantConnector$COPYDATASTRUCT64 with modifiers "public" at sun.reflect.Reflection.ensureMemberAccess(Reflection.java:102) at java.lang.reflect.AccessibleObject.slowCheckMemberAccess(AccessibleObject.java:296) at java.lang.reflect.AccessibleObject.checkAccess(AccessibleObject.java:288) at java.lang.reflect.Field.get(Field.java:390) at com.sun.jna.Structure.getFieldValue(Structure.java:650) ... 101 more ```` `protected` seems to work as well, but this might be due to the test setup. --- src/main/java/com/jcraft/jsch/PageantConnector.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/jcraft/jsch/PageantConnector.java b/src/main/java/com/jcraft/jsch/PageantConnector.java index 47a16a5e..621a08a9 100644 --- a/src/main/java/com/jcraft/jsch/PageantConnector.java +++ b/src/main/java/com/jcraft/jsch/PageantConnector.java @@ -88,7 +88,7 @@ private interface User32 extends com.sun.jna.platform.win32.User32 { long SendMessage(HWND hWnd, int msg, WPARAM num1, byte[] num2); } - private static class COPYDATASTRUCT32 extends Structure { + public static class COPYDATASTRUCT32 extends Structure { public int dwData; public int cbData; public Pointer lpData; @@ -99,7 +99,7 @@ protected List getFieldOrder() { } } - private static class COPYDATASTRUCT64 extends Structure { + public static class COPYDATASTRUCT64 extends Structure { public int dwData; public long cbData; public Pointer lpData;