bbottema / simple-java-mail

Simple API, Complex Emails (Jakarta Mail smtp wrapper)
http://www.simplejavamail.org
Apache License 2.0
1.23k stars 270 forks source link

`Mailer::close` attempts to access the batch module regardless of configuration #558

Open rzam opened 1 month ago

rzam commented 1 month ago

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)
bbottema commented 1 month ago

I thought I was had addressed this recently. I'll have a look.