mguessan / davmail

DavMail POP/IMAP/SMTP/Caldav/Carddav/LDAP Exchange and Office 365 Gateway - Synced with main subversion repository at
http://davmail.sourceforge.net
GNU General Public License v2.0
576 stars 85 forks source link

Problem with opening 2FA window with Zulu JDK 17 #327

Closed atelszewski closed 8 months ago

atelszewski commented 8 months ago

Hi,

I'm trying to run DavMail 6.2.1-3496 with Zulu JDK17.

It works ok for an account that does not require 2FA.

But, when an account requires 2FA, and the authentication window is about to be opened, I receive the following error:

Exception in thread "AWT-EventQueue-0" java.lang.IllegalAccessError: superclass access check failed: class davmail.exchange.auth.O365InteractiveAuthenticatorFrame$2 (in unnamed module @0x67655b67) cannot access class sun.net.www.protocol.https.Handler (in module java.base) because module java.base does not export sun.net.www.protocol.https to unnamed module @0x67655b67
        at java.base/java.lang.ClassLoader.defineClass1(Native Method)
        at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1017)
        at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:150)
        at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:862)
        at java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:760)
        at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:681)
        at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:639)
        at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:525)
        at davmail.exchange.auth.O365InteractiveAuthenticator.lambda$authenticate$0(O365InteractiveAuthenticator.java:150)
        at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:318)
        at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:773)
        at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:720)
        at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:714)
        at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
        at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
        at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:742)
        at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
        at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
        at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
        at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
        at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
        at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)

Could you please assist?

-- Best regards, Andrzej Telszewski

atelszewski commented 8 months ago

Tried with Oracle JDK 17 from here and the issue is the same.

atelszewski commented 8 months ago

And now tried with Zulu JDK 11 version 11.0.21 and it worked.

I got a warning WARNING: Unsupported JavaFX configuration: classes were loaded from 'unnamed module @965f73c', but I was still able to successfully authenticate.

What is the best suited combination of versions of JDK and JFX to run DavMail?

mguessan commented 8 months ago

Missing option in launch script for recent JDKs:

--add-exports java.base/sun.net.www.protocol.https=ALL-UNNAMED

Already fixed in trunk/master, see: https://github.com/mguessan/davmail/blob/master/src/bin/davmail

atelszewski commented 8 months ago

Hi,

that did the trick, JDK17 now works! :-)

I still receive WARNING: Unsupported JavaFX configuration: classes were loaded from 'unnamed module @3a0af711', but the 2FA page loads and I can authenticate.

Thanks for the support! :-)

-- Best regards, Andrzej Telszewski