I'm using the edtFTPj/SSL client in a JBoss J2EE container. I have the client working fine for file transfers. However, when we do a hot re-deploy of our .ear archive the SSLFTPClient begins failing. Specifically, calling SSLFTPClient.auth(SSLFTPClient.AUTH_SSL) throws a NullPointerException.
If we do a restart of the JBoss container when we do a deploy everything is fine. So, this seems to be a ClassLoader issue of some kind, but I'm having trouble tracking it down.
Any suggestions on how I can force a reinitialization of the TLS keys programmatically?
I've included a portion of the stack trace here:
11:39:00,066 INFO [STDOUT] java.lang.NullPointerException
11:39:00,066 INFO [STDOUT] at org.jboss.mx.loading.LoadMgr3.beginLoadTask(LoadMgr3.java:143)
11:39:00,066 INFO [STDOUT] at org.jboss.mx.loading.UnifiedClassLoader3.loadClassImpl(UnifiedClassLoader3.java:178)
11:39:00,066 INFO [STDOUT] at org.jboss.mx.loading.UnifiedClassLoader3.loadClass(UnifiedClassLoader3.java:132)
11:39:00,066 INFO [STDOUT] at java.lang.ClassLoader.loadClass(ClassLoader.java:235)
11:39:00,066 INFO [STDOUT] at java.security.Security.doGetImpl(Security.java:1123)
11:39:00,076 INFO [STDOUT] at java.security.Security.doGetImpl(Security.jav
a:1084)
11:39:00,076 INFO [STDOUT] at java.security.Security.getImpl Security.java:1045)
11:39:00,076 INFO [STDOUT] at java.security.MessageDigest.getInstance(MessageDigest.java:120)
11:39:00,076 INFO [STDOUT] at com.enterprisedt.net.puretls.TLSPRF.<init>(TLSPRF.java:132)
11:39:00,076 INFO [STDOUT] at com.enterprisedt.net.puretls.SSLPRF.getPRFInstance(SSLPRF.java:58)
11:39:00,076 INFO [STDOUT] at com.enterprisedt.net.puretls.SSLHandshake.computeMasterSecret(SSLHandshake.java:306)
11:39:00,076 INFO [STDOUT] at com.enterprisedt.net.puretls.SSLHandshakeClient.sendClientKeyExchange(SSLHandshakeClient.java:312)
11:39:00,076 INFO [STDOUT] at com.enterprisedt.net.puretls.SSLHandshakeClient.handshakeContinue(SSLHandshakeClient.java:138)
11:39:00,076 INFO [STDOUT] at com.enterprisedt.net.puretls.SSLHandshake.handshake(SSLHandshake.java:125)
11:39:00,076 INFO [STDOUT] at com.enterprisedt.net.puretls.SSLConn.handshake(SSLConn.java:143)
11:39:00,076 INFO [STDOUT] at com.enterprisedt.net.puretls.SSLSocket.handshake(SSLSocket.java:437)
11:39:00,076 INFO [STDOUT] at com.enterprisedt.net.ftp.ssl.B.H(Unknown Source)
11:39:00,076 INFO [STDOUT] at com.enterprisedt.net.ftp.ssl.SSLFTPClient.auth(Unknown Source)