Skip to content

[bug] Mailer.close() exception because it attempts to shutdown batch-module connection pools, even if not available on the classpath #558

Closed
@rzam

Description

@rzam

It seems that attempting to close a non-async Mailer (either explicitly via .close() or implicitly via try-with) will cause it to throw a ModuleLoaderException.

Minimal working example:

// Gradle
dependencies {
    implementation("org.simplejavamail:simple-java-mail:8.12.2")
}
try (Mailer mailer = MailerBuilder
        .withSMTPServer("localhost", 25, null, null)
        .buildMailer()) {
    // Do nothing
}

Result:

Exception in thread "main" org.simplejavamail.internal.moduleloader.ModuleLoaderException: Batch module not found, make sure it is on the classpath (https://github.com/bbottema/simple-java-mail/tree/develop/modules/batch-module)
	at org.simplejavamail.internal.moduleloader.ModuleLoader.loadModule(ModuleLoader.java:133)
	at org.simplejavamail.internal.moduleloader.ModuleLoader.loadBatchModule(ModuleLoader.java:95)
	at org.simplejavamail.mailer.internal.MailerImpl.shutdownConnectionPool(MailerImpl.java:395)
	at org.simplejavamail.mailer.internal.MailerImpl.close(MailerImpl.java:474)
	at Test.main(Test.java:11)

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions