Browse Source

fix issue with healthcheck null pointer when no email servers configured

Jason Rivard 4 years ago
parent
commit
aa8a24ed65

+ 5 - 0
server/src/main/java/password/pwm/svc/email/EmailConnectionPool.java

@@ -54,6 +54,11 @@ public class EmailConnectionPool
     private final AtomicBoolean closed = new AtomicBoolean( false );
     private final AtomicLoopIntIncrementer serverIncrementer;
 
+    public static EmailConnectionPool emptyConnectionPool()
+    {
+        return new EmailConnectionPool( Collections.emptyList(), EmailServiceSettings.builder().build() );
+    }
+
     public EmailConnectionPool(
             final List<EmailServer> servers,
             final EmailServiceSettings settings )

+ 2 - 2
server/src/main/java/password/pwm/svc/email/EmailService.java

@@ -71,7 +71,7 @@ public class EmailService implements PwmService
     private ErrorInformation startupError;
     private WorkQueueProcessor<EmailItemBean> workQueueProcessor;
     private EmailServiceSettings emailServiceSettings;
-    private EmailConnectionPool connectionPool;
+    private EmailConnectionPool connectionPool = EmailConnectionPool.emptyConnectionPool();
 
     private final AtomicReference<ErrorInformation> lastSendError = new AtomicReference<>();
 
@@ -160,7 +160,7 @@ public class EmailService implements PwmService
         if ( connectionPool != null )
         {
             connectionPool.close();
-            connectionPool = null;
+            connectionPool = EmailConnectionPool.emptyConnectionPool();
         }
     }