B4J Question HELP! WARNING: Unknown module: jdk.proxy2 specified to --add-opens

MrKim

Well-Known Member
Licensed User
Longtime User
Edit: evidently WARNING: Unknown module: jdk.proxy2 specified to --add-opens is a red herring. I get that error on systems that work as well.

B4J only program that is released as a stand-alone executable.
I made some minor updates to the program recently and now at SOME clients it will not run. If I use run_debug.bat I get the following on the machines that fail:
B4X:
C:\Sk2010\SKSchedule>cd bin

C:\Sk2010\SKSchedule\bin>java.exe @release_java_modules.txt --add-opens jdk.proxy2/com.sun.proxy.jdk.proxy2=b4j -m b4j/com.stevel05.draganddrop.main
WARNING: Unknown module: jdk.proxy2 specified to --add-opens
com.microsoft.sqlserver.jdbc.SQLServerException: The driver could not establish a secure connection to SQL Server by using Secure Sockets Layer (SSL) encryption. Error: "The server selected protocol version TLS10 is not accepted by client preferences [TLS13, TLS12]". ClientConnectionId:88374d31-001a-4b74-8695-ca1aa4d479f7
        at b4j/com.microsoft.sqlserver.jdbc.SQLServerConnection.terminate(Unknown Source)
        at b4j/com.microsoft.sqlserver.jdbc.TDSChannel.enableSSL(Unknown Source)
        at b4j/com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(Unknown Source)
        at b4j/com.microsoft.sqlserver.jdbc.SQLServerConnection.login(Unknown Source)
        at b4j/com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(Unknown Source)
        at b4j/com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(Unknown Source)
        at b4j/com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(Unknown Source)
        at java.sql/java.sql.DriverManager.getConnection(Unknown Source)
        at java.sql/java.sql.DriverManager.getConnection(Unknown Source)
        at b4j/anywheresoftware.b4j.objects.SQL.Initialize2(Unknown Source)
        at b4j/anywheresoftware.b4j.objects.SQL$1.call(Unknown Source)
        at b4j/anywheresoftware.b4j.objects.SQL$1.call(Unknown Source)
        at b4j/anywheresoftware.b4a.BA$4.run(Unknown Source)
        at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
        at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
        at java.base/java.lang.Thread.run(Unknown Source)
Caused by: javax.net.ssl.SSLHandshakeException: The server selected protocol version TLS10 is not accepted by client preferences [TLS13, TLS12]
        at java.base/sun.security.ssl.Alert.createSSLException(Unknown Source)
        at java.base/sun.security.ssl.Alert.createSSLException(Unknown Source)
        at java.base/sun.security.ssl.TransportContext.fatal(Unknown Source)
        at java.base/sun.security.ssl.TransportContext.fatal(Unknown Source)
        at java.base/sun.security.ssl.TransportContext.fatal(Unknown Source)
        at java.base/sun.security.ssl.ServerHello$ServerHelloConsumer.onServerHello(Unknown Source)
        at java.base/sun.security.ssl.ServerHello$ServerHelloConsumer.consume(Unknown Source)
        at java.base/sun.security.ssl.SSLHandshake.consume(Unknown Source)
        at java.base/sun.security.ssl.HandshakeContext.dispatch(Unknown Source)
        at java.base/sun.security.ssl.HandshakeContext.dispatch(Unknown Source)
        at java.base/sun.security.ssl.TransportContext.dispatch(Unknown Source)
        at java.base/sun.security.ssl.SSLTransport.decode(Unknown Source)
        at java.base/sun.security.ssl.SSLSocketImpl.decode(Unknown Source)
        at java.base/sun.security.ssl.SSLSocketImpl.readHandshakeRecord(Unknown Source)
        at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(Unknown Source)
        at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(Unknown Source)
        ... 17 more
If I reinstall an older version it runs just fine.
I MAY have updated the Java version? I am not sure.
Possibly it is related to THIS post?
Note this only happens on some windows computers and I have no idea what the common denominator is.
This i my java path C:\Java\jdk-19.0.2\bin\javac.exe
Thanks for any help.
 
Last edited:

MrKim

Well-Known Member
Licensed User
Longtime User
I MAY have found the solution - this thanks to copilot. But I still need to get access to a computer with the problem to confirm. I just don't want anyone wasting time on this if I have the answer.I will keep you posted.
Here are the two proposed solutions:
Step-by-Step: Enable TLS 1.0 for on Java 11
1. 🛑 Java 11 disables TLS 1.0 by default
You’ll need to override this in the file:
• Locate: $JAVA_HOME/lib/security/java.security


• Find the line: jdk.tls.disabledAlgorithms=SSLv3, TLSv1, TLSv1.1, ...


• Remove - TLSv1 from that list.



2. 🔧 Force TLS 1.0 via JDBC Connection String
Add this to your JDBC URL: encrypt=true;trustServerCertificate=true;sslProtocol=TLSv1
 
Upvote 0
Top