2012-08-29 60 views
0

我在項目中使用jre6和NSS(版本3.4.12),它工作正常。NSS不能使用Java 7更新6

我最近更新到jre7更新6(發佈2012年8月14日),並突然應用程序停止工作,給出以下例外。

java.lang.UnsatisfiedLinkError: sun.security.pkcs11.wrapper.PKCS11.C_GetOperationState(J)[B 
    at sun.security.pkcs11.wrapper.PKCS11.C_GetOperationState(Native Method) 
    at sun.security.pkcs11.P11Digest.clone(P11Digest.java:308) 
    at java.security.MessageDigest$Delegate.clone(Unknown Source) 
    at sun.security.ssl.HandshakeHash.cloneDigest(Unknown Source) 
    at sun.security.ssl.HandshakeHash.getMD5Clone(Unknown Source) 
    at sun.security.ssl.HandshakeMessage$Finished.getFinished(Unknown Source) 
    at sun.security.ssl.HandshakeMessage$Finished.<init>(Unknown Source) 
    at sun.security.ssl.ClientHandshaker.sendChangeCipherAndFinish(Unknown Source) 
    at sun.security.ssl.ClientHandshaker.serverHelloDone(Unknown Source) 
    at sun.security.ssl.ClientHandshaker.processMessage(Unknown Source) 
    at sun.security.ssl.Handshaker.processLoop(Unknown Source) 
    at sun.security.ssl.Handshaker.process_record(Unknown Source) 
    at sun.security.ssl.SSLSocketImpl.readRecord(Unknown Source) 
    at sun.security.ssl.SSLSocketImpl.performInitialHandshake(Unknown Source) 
    at sun.security.ssl.SSLSocketImpl.startHandshake(Unknown Source) 
    at sun.security.ssl.SSLSocketImpl.startHandshake(Unknown Source) 

如果我使用jre 7 update 5,它的工作正常!我經歷了更新6 http://www.oracle.com/technetwork/java/javase/7u6-relnotes-1729681.html的發行說明,我找不到任何可能導致的結果。

任何幫助表示讚賞。

+0

當我比較了來自更新的Java源代碼的5至6,我已發現,在更新6,sun.security.pkcs11.wrapper.P11Digest.java已經新實施克隆(),其試圖調用本機方法PKCS11。 C_GetOperationState這也是在更新6中新添加的。 我不知道他們是否可以像這樣添加本地方法。另外我沒有看到更新6修訂歷史中的任何此類提及。 對我來說,它看起來像PKCS11接口在jre7更新6中被破壞 –

回答

0

Java 7中RSA的SunPKCS11發生了變化。但是我不確定上述行爲是否因此而發生變化。