Mantis - Resin
Viewing Issue Advanced Details
5334 minor always 01-16-13 13:21 09-08-14 18:00
alex  
ferg  
normal  
closed 4.0.32  
unable to reproduce  
none    
none  
0005334: Classloading issue (bouncycastle: java crypto provider)
rep by Trung Nguyen

2013-01-12 04:42:50,825 [resin-port-172.20.11.162:6802-61] ERROR edeal.util.SessionManager - Error while looking for user: Error encrypting password data using DefaultPciDataEncryptionPolicy
com.truition.conventions.DataEncryptionPolicyException: Error encrypting password data using DefaultPciDataEncryptionPolicy
                at com.truition.internal.conventions.pci.DefaultPciDataEncryptionPolicy.encryptPassword(DefaultPciDataEncryptionPolicy.java:164)
                at com.truition.internal.model.jdbc.user.AccountJDBCManagerImpl.encrypt(AccountJDBCManagerImpl.java:69)
                at com.truition.internal.model.jdbc.user.BackofficeUserJDBCManagerImpl.findBackofficeUserByLogin(BackofficeUserJDBCManagerImpl.java:139)
                at edeal.util.SessionManager.getAdminCookies(SessionManager.java:283)
                at edeal.util.SessionManager.doAdminLogon(SessionManager.java:187)
                at edeal.ecmd.Logon.process(Logon.java:30)
                at edealcore.ecmd.ServletCmd.preProcess(ServletCmd.java:1516)
                at edealcore.ecmd.ServletCmd.commonPreProcess(ServletCmd.java:962)
                at edealcore.ecmd.ServletCmd.doPost(ServletCmd.java:986)
                at javax.servlet.http.HttpServlet.service(HttpServlet.java:159)
                at javax.servlet.http.HttpServlet.service(HttpServlet.java:97)
                at com.caucho.server.dispatch.ServletFilterChain.doFilter(ServletFilterChain.java:109)
                at com.truition.mobile.MobileDeviceDetectorFilter.doFilter(MobileDeviceDetectorFilter.java:66)
                at com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:89)
                at com.caucho.server.httpcache.ProxyCacheFilterChain.doFilter(ProxyCacheFilterChain.java:169)
                at com.caucho.server.webapp.WebAppFilterChain.doFilter(WebAppFilterChain.java:156)
                at com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:289)
                at com.caucho.server.hmux.HmuxRequest.handleInvocation(HmuxRequest.java:472)
                at com.caucho.server.hmux.HmuxRequest.handleRequestImpl(HmuxRequest.java:373)
                at com.caucho.server.hmux.HmuxRequest.handleRequest(HmuxRequest.java:340)
                at com.caucho.network.listen.TcpSocketLink.dispatchRequest(TcpSocketLink.java:1341)
                at com.caucho.network.listen.TcpSocketLink.handleRequest(TcpSocketLink.java:1297)
                at com.caucho.network.listen.TcpSocketLink.handleRequestsImpl(TcpSocketLink.java:1281)
                at com.caucho.network.listen.TcpSocketLink.handleRequests(TcpSocketLink.java:1189)
                at com.caucho.network.listen.TcpSocketLink.handleAcceptTaskImpl(TcpSocketLink.java:988)
                at com.caucho.network.listen.ConnectionTask.runThread(ConnectionTask.java:117)
                at com.caucho.network.listen.ConnectionTask.run(ConnectionTask.java:93)
                at com.caucho.network.listen.SocketLinkThreadLauncher.handleTasks(SocketLinkThreadLauncher.java:169)
                at com.caucho.network.listen.TcpSocketAcceptThread.run(TcpSocketAcceptThread.java:61)
                at com.caucho.env.thread2.ResinThread2.runTasks(ResinThread2.java:173)
                at com.caucho.env.thread2.ResinThread2.run(ResinThread2.java:118)
Caused by: edealcore.util.EdealException: Error encrypting data: Error creating cipher: No such algorithm: AES/ECB/PKCS5Padding
                at edealcore.util.crypto.AESCrypto.encrypt(AESCrypto.java:80)
                at com.truition.internal.conventions.pci.DefaultPciDataEncryptionPolicy.encryptPassword(DefaultPciDataEncryptionPolicy.java:161)
                ... 30 more
Caused by: edealcore.util.EdealException: Error creating cipher: No such algorithm: AES/ECB/PKCS5Padding
                at edealcore.util.crypto.AbstractJceCrypto.getCipher(AbstractJceCrypto.java:67)
                at edealcore.util.crypto.AESCrypto.encrypt(AESCrypto.java:58)
                ... 31 more
Caused by: java.security.NoSuchAlgorithmException: No such algorithm: AES/ECB/PKCS5Padding
                at javax.crypto.Cipher.getInstance(DashoA13*..)
                at javax.crypto.Cipher.getInstance(DashoA13*..)
                at edealcore.util.crypto.AbstractJceCrypto.getCipher(AbstractJceCrypto.java:56)
                ... 32 more
Caused by: java.security.NoSuchAlgorithmException: Error constructing implementation (algorithm: AES, provider: BC, class: org.bouncycastle.jce.provider.symmetric.AES$ECB)
                at java.security.Provider$Service.newInstance(Provider.java:1245)
                ... 35 more
Caused by: java.lang.SecurityException: class "org.bouncycastle.jce.provider.symmetric.AES$ECB"'s signer information does not match signer information of other classes in the same package
                at java.lang.ClassLoader.checkCerts(ClassLoader.java:806)
                at java.lang.ClassLoader.preDefineClass(ClassLoader.java:487)
                at java.lang.ClassLoader.defineClassCond(ClassLoader.java:625)
                at java.lang.ClassLoader.defineClass(ClassLoader.java:615)
                at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
                at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
                at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
                at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
                at java.security.AccessController.doPrivileged(Native Method)
                at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
                at com.caucho.loader.DynamicClassLoader.findClassImpl(DynamicClassLoader.java:1639)
                at com.caucho.loader.DynamicClassLoader.findClass(DynamicClassLoader.java:1616)
                at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
                at com.caucho.loader.DynamicClassLoader.loadClassImpl(DynamicClassLoader.java:1543)
                at com.caucho.loader.DynamicClassLoader.loadClass(DynamicClassLoader.java:1497)
                at com.caucho.loader.DynamicClassLoader.loadClass(DynamicClassLoader.java:1479)
                at java.security.Provider$Service.getImplClass(Provider.java:1262)
                at java.security.Provider$Service.newInstance(Provider.java:1220)
                ... 35 more
We've scanned the classpath, even the whole machine but there is only one copy of the org.bouncycastle library in the system. The problem, unfortunately, is not consistent but intermittent and very hard to reproduce.
 
I wonder why the loader sometimes get different signed information from one jar. Is it possible that Resin has an abnormal termination, restarts and reloads that jar in a different way which in turn causes the problem?
 
Your thoughts?

There are no notes attached to this issue.