Skip to content

Commit 6c7a76a

Browse files
committed
#262: don't initialize the default ExecutorService until the OperationalConfig is created for the new Mailer instance so we don't miss any related properties set on the builder
1 parent 80c87b6 commit 6c7a76a

File tree

2 files changed

+8
-14
lines changed

2 files changed

+8
-14
lines changed

modules/core-module/src/main/java/org/simplejavamail/api/mailer/MailerGenericBuilder.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -653,6 +653,9 @@ public interface MailerGenericBuilder<T extends MailerGenericBuilder<?>> {
653653
EnumSet<EmailAddressCriteria> getEmailAddressCriteria();
654654

655655
/**
656+
* Returns the user set ExecutorService or else null as the default ExecutorService is not created until the {@link org.simplejavamail.api.mailer.config.OperationalConfig} is created for the
657+
* new {@link Mailer} instance.
658+
*
656659
* @see #withExecutorService(ExecutorService)
657660
*/
658661
@Nullable

modules/simple-java-mail/src/main/java/org/simplejavamail/mailer/internal/MailerGenericBuilderImpl.java

Lines changed: 5 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -92,14 +92,9 @@ abstract class MailerGenericBuilderImpl<T extends MailerGenericBuilderImpl<?>> i
9292
/**
9393
* @see MailerGenericBuilder#withExecutorService(ExecutorService)
9494
*/
95-
@NotNull
95+
@Nullable
9696
private ExecutorService executorService;
9797

98-
/**
99-
* @see InternalMailerBuilder#isExecutorServiceUserProvided()
100-
*/
101-
private boolean executorServiceIsUserProvided = false;
102-
10398
/**
10499
* @see MailerGenericBuilder#withThreadPoolSize(Integer)
105100
*/
@@ -221,8 +216,6 @@ abstract class MailerGenericBuilderImpl<T extends MailerGenericBuilderImpl<?>> i
221216
}
222217

223218
this.emailAddressCriteria = EmailAddressCriteria.RFC_COMPLIANT.clone();
224-
225-
this.executorService = determineDefaultExecutorService();
226219
}
227220

228221
/**
@@ -270,7 +263,7 @@ OperationalConfig buildOperationalConfig() {
270263
getSslHostsToTrust(),
271264
isTrustAllSSLHost(),
272265
isVerifyingServerIdentity(),
273-
getExecutorService(),
266+
getExecutorService() != null ? getExecutorService() : determineDefaultExecutorService(),
274267
isExecutorServiceUserProvided(),
275268
getCustomMailer());
276269
}
@@ -382,7 +375,6 @@ public T withEmailAddressCriteria(@NotNull final EnumSet<EmailAddressCriteria> e
382375
@Override
383376
public T withExecutorService(@NotNull final ExecutorService executorService) {
384377
this.executorService = executorService;
385-
this.executorServiceIsUserProvided = true;
386378
return (T) this;
387379
}
388380

@@ -575,8 +567,7 @@ public T resetEmailAddressCriteria() {
575567
*/
576568
@Override
577569
public T resetExecutorService() {
578-
this.executorService = determineDefaultExecutorService();
579-
this.executorServiceIsUserProvided = false;
570+
this.executorService = null;
580571
return (T) this;
581572
}
582573

@@ -776,7 +767,7 @@ public EnumSet<EmailAddressCriteria> getEmailAddressCriteria() {
776767
* @see MailerGenericBuilder#getExecutorService()
777768
*/
778769
@Override
779-
@NotNull
770+
@Nullable
780771
public ExecutorService getExecutorService() {
781772
return executorService;
782773
}
@@ -786,7 +777,7 @@ public ExecutorService getExecutorService() {
786777
*/
787778
@Override
788779
public boolean isExecutorServiceUserProvided() {
789-
return executorServiceIsUserProvided;
780+
return executorService != null;
790781
}
791782

792783
/**

0 commit comments

Comments
 (0)