diff --git a/core/src/main/java/com/wechat/pay/java/core/certificate/RSAAutoCertificateProvider.java b/core/src/main/java/com/wechat/pay/java/core/certificate/RSAAutoCertificateProvider.java index 6e1072f2..d24c6c5f 100644 --- a/core/src/main/java/com/wechat/pay/java/core/certificate/RSAAutoCertificateProvider.java +++ b/core/src/main/java/com/wechat/pay/java/core/certificate/RSAAutoCertificateProvider.java @@ -79,7 +79,8 @@ public Builder merchantSerialNumber(String merchantSerialNumber) { } public Builder httpClientBuilder(AbstractHttpClientBuilder builder) { - this.httpClientBuilder = builder; + // httpClientBuilder 不是不可变的,所以为了避免过程中修改入参或者值发生变化,这里制作了一个副本 + this.httpClientBuilder = builder.newInstance(); return this; } diff --git a/core/src/main/java/com/wechat/pay/java/core/http/AbstractHttpClientBuilder.java b/core/src/main/java/com/wechat/pay/java/core/http/AbstractHttpClientBuilder.java index 3b00fb5d..1f1b6164 100644 --- a/core/src/main/java/com/wechat/pay/java/core/http/AbstractHttpClientBuilder.java +++ b/core/src/main/java/com/wechat/pay/java/core/http/AbstractHttpClientBuilder.java @@ -5,11 +5,18 @@ public interface AbstractHttpClientBuilder> { + /** + * 复制工厂,复制一个当前对象 + * + * @return 对象的副本 + */ + T newInstance(); + /** * 设置验证器 * * @param validator 验证器 - * @return T the AbstractHttpClientBuilder + * @return the AbstractHttpClientBuilder */ T validator(Validator validator); @@ -17,12 +24,12 @@ public interface AbstractHttpClientBuilder