alibaba / alibaba/testable-mock

增加TestableMock依赖使用mongo-java-driver报错

Open
#131 1 comment 0 reactions 0 assignees View on GitHub
need verify
Dominant language
Java
Stars
1.8k
Forks
306
PR merge metrics
No merged PRs in 30d

Description

mongo-java-driver创建MongoClientOptions对象报错

```
@Configuration
public class MongoConfig {
@Bean
public MongoClientOptions mongoClientOptions() {
MongoClientOptions.Builder build = new MongoClientOptions.Builder();
build.connectionsPerHost(100);
build.threadsAllowedToBlockForConnectionMultiplier(10);
build.maxWaitTime(120000);
build.connectTimeout(6000);
build.socketTimeout(600000);
MongoClientOptions options = build.build();
return options;
}
}

```
jdk版本号:java version "1.8.0_191"
Java(TM) SE Runtime Environment (build 1.8.0_191-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.191-b12, mixed mode)

testable版本号:0.6.2

Caused by: java.lang.ClassCircularityError: javax/crypto/BadPaddingException
at sun.security.rsa.RSASignature.engineVerify(RSASignature.java:194)
at java.security.Signature$Delegate.engineVerify(Signature.java:1222)
at java.security.Signature.verify(Signature.java:655)
at sun.security.x509.X509CertImpl.verify(X509CertImpl.java:444)
at sun.security.x509.X509CertImpl.verify(X509CertImpl.java:392)
at javax.crypto.JarVerifier.testSignatures(JarVerifier.java:775)
at javax.crypto.JarVerifier.access$400(JarVerifier.java:37)
at javax.crypto.JarVerifier$1.run(JarVerifier.java:222)
at javax.crypto.JarVerifier$1.run(JarVerifier.java:187)
at java.security.AccessController.doPrivileged(Native Method)
at javax.crypto.JarVerifier.(JarVerifier.java:186)
at javax.crypto.JceSecurity.loadPolicies(JceSecurity.java:378)
at javax.crypto.JceSecurity.setupJurisdictionPolicies(JceSecurity.java:323)
at javax.crypto.JceSecurity.access$000(JceSecurity.java:50)
at javax.crypto.JceSecurity$1.run(JceSecurity.java:85)
at java.security.AccessController.doPrivileged(Native Method)
at javax.crypto.JceSecurity.(JceSecurity.java:82)
at javax.crypto.JceSecurityManager.(JceSecurityManager.java:65)
at javax.crypto.Cipher.getConfiguredPermission(Cipher.java:2586)
at javax.crypto.Cipher.getMaxAllowedKeyLength(Cipher.java:2610)
at sun.security.ssl.CipherSuite$BulkCipher.isUnlimited(CipherSuite.java:535)
at sun.security.ssl.CipherSuite$BulkCipher.(CipherSuite.java:507)
at sun.security.ssl.CipherSuite.(CipherSuite.java:614)
at sun.security.ssl.SSLContextImpl.getApplicableCipherSuiteList(SSLContextImpl.java:294)
at sun.security.ssl.SSLContextImpl.access$100(SSLContextImpl.java:42)
at sun.security.ssl.SSLContextImpl$AbstractTLSContext.(SSLContextImpl.java:432)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:264)
at java.security.Provider$Service.getImplClass(Provider.java:1634)
at java.security.Provider$Service.newInstance(Provider.java:1592)
at sun.security.jca.GetInstance.getInstance(GetInstance.java:236)
at sun.security.jca.GetInstance.getInstance(GetInstance.java:164)
at javax.net.ssl.SSLContext.getInstance(SSLContext.java:156)
at javax.net.ssl.SSLContext.getDefault(SSLContext.java:96)
at javax.net.ssl.SSLSocketFactory.getDefault(SSLSocketFactory.java:122)
at com.mongodb.MongoClientOptions.(MongoClientOptions.java:54)
at com.mongodb.MongoClientOptions$Builder.build(MongoClientOptions.java:1396)
at com.k8stest.mongo.MongoConfig.mongoClientOptions(MongoConfig.java:17)

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by reproducing the MongoConfig.mongoClientOptions() call with Java 8u191, TestableMock 0.6.2, and mongo-java-driver, then trace the failure through com.mongodb.MongoClientOptions and the JCE/SSL stack shown in the report. Done means the reported configuration no longer raises ClassCircularityError, with the dependency or runtime conditions responsible identified.

Written by the indexing model from the issue text.

Assessment

Tech stack
java, mongodb
Domain
testing
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.