浏览代码

google errorprone warning fixes

Jason Rivard 5 年之前
父节点
当前提交
1fa47126d7
共有 42 个文件被更改,包括 93 次插入173 次删除
  1. 1 1
      onejar/src/main/java/password/pwm/onejar/TomcatOnejarRunner.java
  2. 2 2
      server/src/main/java/password/pwm/bean/LoginInfoBean.java
  3. 4 6
      server/src/main/java/password/pwm/config/PwmSetting.java
  4. 2 3
      server/src/main/java/password/pwm/config/option/IdentityVerificationMethod.java
  5. 2 2
      server/src/main/java/password/pwm/config/stored/StoredConfigXmlSerializer.java
  6. 2 2
      server/src/main/java/password/pwm/config/stored/StoredConfigurationImpl.java
  7. 1 1
      server/src/main/java/password/pwm/error/PwmError.java
  8. 2 2
      server/src/main/java/password/pwm/health/LDAPHealthChecker.java
  9. 1 1
      server/src/main/java/password/pwm/http/PwmHttpRequestWrapper.java
  10. 2 2
      server/src/main/java/password/pwm/http/PwmRequest.java
  11. 2 2
      server/src/main/java/password/pwm/http/PwmResponse.java
  12. 2 2
      server/src/main/java/password/pwm/http/auth/HttpAuthenticationUtilities.java
  13. 2 3
      server/src/main/java/password/pwm/http/bean/AdminBean.java
  14. 2 3
      server/src/main/java/password/pwm/http/bean/ChangePasswordBean.java
  15. 2 3
      server/src/main/java/password/pwm/http/bean/DeleteAccountBean.java
  16. 2 3
      server/src/main/java/password/pwm/http/bean/GuestRegistrationBean.java
  17. 2 3
      server/src/main/java/password/pwm/http/bean/LoginServletBean.java
  18. 2 2
      server/src/main/java/password/pwm/http/bean/NewUserBean.java
  19. 2 3
      server/src/main/java/password/pwm/http/bean/SetupOtpBean.java
  20. 2 3
      server/src/main/java/password/pwm/http/bean/ShortcutsBean.java
  21. 1 2
      server/src/main/java/password/pwm/http/bean/UpdateProfileBean.java
  22. 1 1
      server/src/main/java/password/pwm/http/servlet/admin/AdminServlet.java
  23. 2 2
      server/src/main/java/password/pwm/http/servlet/admin/ReportStatusBean.java
  24. 2 2
      server/src/main/java/password/pwm/http/servlet/forgottenpw/ForgottenPasswordStageProcessor.java
  25. 2 2
      server/src/main/java/password/pwm/http/servlet/forgottenpw/ForgottenPasswordUtil.java
  26. 5 5
      server/src/main/java/password/pwm/http/servlet/helpdesk/HelpdeskVerificationOptionsBean.java
  27. 2 1
      server/src/main/java/password/pwm/http/servlet/newuser/NewUserUtils.java
  28. 1 1
      server/src/main/java/password/pwm/http/servlet/updateprofile/UpdateProfileUtil.java
  29. 4 8
      server/src/main/java/password/pwm/http/tag/value/PwmValue.java
  30. 2 2
      server/src/main/java/password/pwm/ldap/auth/SessionAuthenticator.java
  31. 1 0
      server/src/main/java/password/pwm/svc/email/EmailService.java
  32. 1 1
      server/src/main/java/password/pwm/svc/event/AuditService.java
  33. 20 40
      server/src/main/java/password/pwm/svc/event/AuditSettings.java
  34. 1 1
      server/src/main/java/password/pwm/util/cli/MainClass.java
  35. 1 2
      server/src/main/java/password/pwm/util/java/LicenseInfoReader.java
  36. 0 28
      server/src/main/java/password/pwm/util/java/PwmSupplier.java
  37. 1 3
      server/src/main/java/password/pwm/util/localdb/LocalDBStoredQueue.java
  38. 2 2
      server/src/main/java/password/pwm/util/macro/MacroMachine.java
  39. 2 1
      server/src/main/java/password/pwm/util/password/RandomPasswordGenerator.java
  40. 1 1
      server/src/main/java/password/pwm/util/secure/HttpsServerCertificateManager.java
  41. 0 18
      server/src/test/java/password/pwm/config/PwmSettingCategoryTest.java
  42. 2 1
      server/src/test/java/password/pwm/svc/wordlist/WordlistUtilTest.java

+ 1 - 1
onejar/src/main/java/password/pwm/onejar/TomcatOnejarRunner.java

@@ -298,6 +298,6 @@ public class TomcatOnejarRunner
                 jarURLList.add( jarFile.toURI().toURL() );
             }
         }
-        return URLClassLoader.newInstance( jarURLList.toArray( new URL[ jarURLList.size() ] ) );
+        return URLClassLoader.newInstance( jarURLList.toArray( new URL[0] ) );
     }
 }

+ 2 - 2
server/src/main/java/password/pwm/bean/LoginInfoBean.java

@@ -33,7 +33,7 @@ import password.pwm.util.java.JsonUtil;
 import java.io.Serializable;
 import java.time.Instant;
 import java.util.ArrayList;
-import java.util.HashSet;
+import java.util.EnumSet;
 import java.util.List;
 import java.util.Set;
 
@@ -99,7 +99,7 @@ public class LoginInfoBean implements Serializable
     private int reqCounter;
 
     @SerializedName( "lf" )
-    private Set<LoginFlag> loginFlags = new HashSet<>();
+    private Set<LoginFlag> loginFlags = EnumSet.noneOf( LoginFlag.class );
 
     public boolean isLoginFlag( final LoginFlag loginStateFlag )
     {

+ 4 - 6
server/src/main/java/password/pwm/config/PwmSetting.java

@@ -1590,19 +1590,17 @@ public enum PwmSetting
             {
                 for ( final XmlElement permissionElement : permissionElements )
                 {
-                    final LDAPPermissionInfo.Actor actor = JavaHelper.readEnumFromString(
+                    final Optional<LDAPPermissionInfo.Actor> actor = JavaHelper.readEnumFromString(
                             LDAPPermissionInfo.Actor.class,
-                            null,
                             permissionElement.getAttributeValue( PwmSettingXml.XML_ATTRIBUTE_PERMISSION_ACTOR )
                     );
-                    final LDAPPermissionInfo.Access type = JavaHelper.readEnumFromString(
+                    final Optional<LDAPPermissionInfo.Access> type = JavaHelper.readEnumFromString(
                             LDAPPermissionInfo.Access.class,
-                            null,
                             permissionElement.getAttributeValue( PwmSettingXml.XML_ATTRIBUTE_PERMISSION_ACCESS )
                     );
-                    if ( actor != null && type != null )
+                    if ( actor.isPresent() && type.isPresent() )
                     {
-                        final LDAPPermissionInfo permissionInfo = new LDAPPermissionInfo( type, actor );
+                        final LDAPPermissionInfo permissionInfo = new LDAPPermissionInfo( type.get(), actor.get() );
                         returnObj.add( permissionInfo );
                     }
                 }

+ 2 - 3
server/src/main/java/password/pwm/config/option/IdentityVerificationMethod.java

@@ -67,8 +67,7 @@ public enum IdentityVerificationMethod implements Serializable, ConfigurationOpt
 
     public static IdentityVerificationMethod[] availableValues( )
     {
-        final List<IdentityVerificationMethod> values = new ArrayList<>();
-        values.addAll( Arrays.asList( IdentityVerificationMethod.values() ) );
-        return values.toArray( new IdentityVerificationMethod[ values.size() ] );
+        final List<IdentityVerificationMethod> values = new ArrayList<>( Arrays.asList( IdentityVerificationMethod.values() ) );
+        return values.toArray( new IdentityVerificationMethod[0] );
     }
 }

+ 2 - 2
server/src/main/java/password/pwm/config/stored/StoredConfigXmlSerializer.java

@@ -57,7 +57,7 @@ import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collections;
 import java.util.EnumMap;
-import java.util.HashSet;
+import java.util.EnumSet;
 import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.Map;
@@ -273,7 +273,7 @@ public class StoredConfigXmlSerializer implements StoredConfigSerializer
 
         private final LazySupplier<PwmSettingTemplateSet> templateSetSupplier = new LazySupplier<>( () ->
         {
-            final Set<PwmSettingTemplate> templates = new HashSet<>();
+            final Set<PwmSettingTemplate> templates = EnumSet.noneOf( PwmSettingTemplate.class );
             templates.add( readTemplateValue( PwmSetting.TEMPLATE_LDAP ) );
             templates.add( readTemplateValue( PwmSetting.TEMPLATE_STORAGE ) );
             templates.add( readTemplateValue( PwmSetting.DB_VENDOR_TEMPLATE ) );

+ 2 - 2
server/src/main/java/password/pwm/config/stored/StoredConfigurationImpl.java

@@ -38,7 +38,7 @@ import password.pwm.util.secure.SecureEngine;
 
 import java.time.Instant;
 import java.util.Collections;
-import java.util.HashSet;
+import java.util.EnumSet;
 import java.util.List;
 import java.util.Map;
 import java.util.Objects;
@@ -160,7 +160,7 @@ public class StoredConfigurationImpl implements StoredConfiguration
 
     private static PwmSettingTemplateSet readTemplateSet( final Map<StoredConfigItemKey, StoredValue> valueMap )
     {
-        final Set<PwmSettingTemplate> templates = new HashSet<>();
+        final Set<PwmSettingTemplate> templates = EnumSet.noneOf( PwmSettingTemplate.class );
         readTemplateValue( valueMap, PwmSetting.TEMPLATE_LDAP ).ifPresent( templates::add );
         readTemplateValue( valueMap, PwmSetting.TEMPLATE_STORAGE ).ifPresent( templates::add );
         readTemplateValue( valueMap, PwmSetting.DB_VENDOR_TEMPLATE ).ifPresent( templates::add );

+ 1 - 1
server/src/main/java/password/pwm/error/PwmError.java

@@ -376,7 +376,7 @@ public enum PwmError
         this.errorCode = errorCode;
         this.errorIsPermanent = JavaHelper.enumArrayContainsValue( errorFlags, ErrorFlag.Permanent );
         this.forceLogout = JavaHelper.enumArrayContainsValue( errorFlags, ErrorFlag.ForceLogout );
-        this.chaiErrorCode = chaiErrorCode == null ? null : chaiErrorCode.toArray( new ChaiError[ chaiErrorCode.size() ] );
+        this.chaiErrorCode = chaiErrorCode == null ? null : chaiErrorCode.toArray( new ChaiError[0] );
 
     }
 

+ 2 - 2
server/src/main/java/password/pwm/health/LDAPHealthChecker.java

@@ -74,8 +74,8 @@ import java.time.Instant;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Collections;
+import java.util.EnumSet;
 import java.util.HashMap;
-import java.util.HashSet;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Locale;
@@ -706,7 +706,7 @@ public class LDAPHealthChecker implements HealthChecker
         }
 
         final ArrayList<HealthRecord> healthRecords = new ArrayList<>();
-        final Set<DirectoryVendor> discoveredVendors = new HashSet<>( replicaVendorMap.values() );
+        final Set<DirectoryVendor> discoveredVendors = EnumSet.copyOf( replicaVendorMap.values() );
 
         if ( discoveredVendors.size() >= 2 )
         {

+ 1 - 1
server/src/main/java/password/pwm/http/PwmHttpRequestWrapper.java

@@ -65,7 +65,7 @@ public class PwmHttpRequestWrapper
             );
 
     private static final Set<String> HTTP_HEADER_DEBUG_STRIP_VALUES =
-            Collections.unmodifiableSet( new HashSet<>( Arrays.asList(
+            Collections.unmodifiableSet( new HashSet<>( Collections.singletonList(
                     HttpHeader.Authorization.getHttpName() ) )
             );
 

+ 2 - 2
server/src/main/java/password/pwm/http/PwmRequest.java

@@ -63,7 +63,7 @@ import java.io.Serializable;
 import java.time.Instant;
 import java.util.ArrayList;
 import java.util.Collections;
-import java.util.HashSet;
+import java.util.EnumSet;
 import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.Locale;
@@ -83,7 +83,7 @@ public class PwmRequest extends PwmHttpRequestWrapper
     private final transient PwmSession pwmSession;
     private final transient Supplier<SessionLabel> sessionLabelLazySupplier = new LazySupplier<>( this::makeSessionLabel );
 
-    private final Set<PwmRequestFlag> flags = new HashSet<>();
+    private final Set<PwmRequestFlag> flags = EnumSet.noneOf( PwmRequestFlag.class );
     private final Instant requestStartTime = Instant.now();
 
     public static PwmRequest forRequest(

+ 2 - 2
server/src/main/java/password/pwm/http/PwmResponse.java

@@ -44,7 +44,7 @@ import java.io.Serializable;
 import java.util.Arrays;
 import java.util.Collection;
 import java.util.Collections;
-import java.util.HashSet;
+import java.util.EnumSet;
 import java.util.Set;
 
 public class PwmResponse extends PwmHttpResponseWrapper
@@ -276,7 +276,7 @@ public class PwmResponse extends PwmHttpResponseWrapper
         pwmRequest.getPwmApplication().getSessionStateService().saveSessionBeans( pwmRequest );
     }
 
-    private final Set<PwmResponseFlag> pwmResponseFlags = new HashSet<>();
+    private final Set<PwmResponseFlag> pwmResponseFlags = EnumSet.noneOf( PwmResponseFlag.class );
 
     private Collection<PwmResponseFlag> getResponseFlags( )
     {

+ 2 - 2
server/src/main/java/password/pwm/http/auth/HttpAuthenticationUtilities.java

@@ -35,14 +35,14 @@ import password.pwm.util.logging.PwmLogger;
 import javax.servlet.ServletException;
 import java.io.IOException;
 import java.time.Instant;
-import java.util.HashSet;
+import java.util.EnumSet;
 import java.util.Set;
 
 public abstract class HttpAuthenticationUtilities
 {
     private static final PwmLogger LOGGER = PwmLogger.forClass( HttpAuthenticationUtilities.class );
 
-    private static final Set<AuthenticationMethod> IGNORED_AUTH_METHODS = new HashSet<>();
+    private static final Set<AuthenticationMethod> IGNORED_AUTH_METHODS = EnumSet.noneOf( AuthenticationMethod.class );
 
 
     public static ProcessStatus attemptAuthenticationMethods( final PwmRequest pwmRequest ) throws IOException, ServletException

+ 2 - 3
server/src/main/java/password/pwm/http/bean/AdminBean.java

@@ -27,9 +27,8 @@ import lombok.Setter;
 import password.pwm.bean.UserIdentity;
 import password.pwm.config.option.SessionBeanMode;
 
-import java.util.Arrays;
 import java.util.Collections;
-import java.util.HashSet;
+import java.util.EnumSet;
 import java.util.Set;
 
 public class AdminBean extends PwmSessionBean
@@ -49,6 +48,6 @@ public class AdminBean extends PwmSessionBean
     @Override
     public Set<SessionBeanMode> supportedModes( )
     {
-        return Collections.unmodifiableSet( new HashSet<>( Arrays.asList( SessionBeanMode.LOCAL, SessionBeanMode.CRYPTCOOKIE, SessionBeanMode.CRYPTREQUEST ) ) );
+        return Collections.unmodifiableSet( EnumSet.of( SessionBeanMode.LOCAL, SessionBeanMode.CRYPTCOOKIE, SessionBeanMode.CRYPTREQUEST ) );
     }
 }

+ 2 - 3
server/src/main/java/password/pwm/http/bean/ChangePasswordBean.java

@@ -25,9 +25,8 @@ import password.pwm.config.option.SessionBeanMode;
 import password.pwm.ldap.PasswordChangeProgressChecker;
 
 import java.time.Instant;
-import java.util.Arrays;
 import java.util.Collections;
-import java.util.HashSet;
+import java.util.EnumSet;
 import java.util.Set;
 
 /**
@@ -161,7 +160,7 @@ public class ChangePasswordBean extends PwmSessionBean
     @Override
     public Set<SessionBeanMode> supportedModes( )
     {
-        return Collections.unmodifiableSet( new HashSet<>( Arrays.asList( SessionBeanMode.LOCAL, SessionBeanMode.CRYPTCOOKIE, SessionBeanMode.CRYPTREQUEST ) ) );
+        return Collections.unmodifiableSet( EnumSet.of( SessionBeanMode.LOCAL, SessionBeanMode.CRYPTCOOKIE, SessionBeanMode.CRYPTREQUEST ) );
     }
 }
 

+ 2 - 3
server/src/main/java/password/pwm/http/bean/DeleteAccountBean.java

@@ -22,9 +22,8 @@ package password.pwm.http.bean;
 
 import password.pwm.config.option.SessionBeanMode;
 
-import java.util.Arrays;
 import java.util.Collections;
-import java.util.HashSet;
+import java.util.EnumSet;
 import java.util.Set;
 
 public class DeleteAccountBean extends PwmSessionBean
@@ -50,6 +49,6 @@ public class DeleteAccountBean extends PwmSessionBean
     @Override
     public Set<SessionBeanMode> supportedModes( )
     {
-        return Collections.unmodifiableSet( new HashSet<>( Arrays.asList( SessionBeanMode.LOCAL, SessionBeanMode.CRYPTCOOKIE ) ) );
+        return Collections.unmodifiableSet( EnumSet.of( SessionBeanMode.LOCAL, SessionBeanMode.CRYPTCOOKIE ) );
     }
 }

+ 2 - 3
server/src/main/java/password/pwm/http/bean/GuestRegistrationBean.java

@@ -26,9 +26,8 @@ import password.pwm.http.servlet.GuestRegistrationServlet;
 import password.pwm.util.FormMap;
 
 import java.time.Instant;
-import java.util.Arrays;
 import java.util.Collections;
-import java.util.HashSet;
+import java.util.EnumSet;
 import java.util.Set;
 
 /**
@@ -90,7 +89,7 @@ public class GuestRegistrationBean extends PwmSessionBean
     @Override
     public Set<SessionBeanMode> supportedModes( )
     {
-        return Collections.unmodifiableSet( new HashSet<>( Arrays.asList( SessionBeanMode.LOCAL, SessionBeanMode.CRYPTCOOKIE ) ) );
+        return Collections.unmodifiableSet( EnumSet.of( SessionBeanMode.LOCAL, SessionBeanMode.CRYPTCOOKIE ) );
     }
 
 }

+ 2 - 3
server/src/main/java/password/pwm/http/bean/LoginServletBean.java

@@ -23,9 +23,8 @@ package password.pwm.http.bean;
 import com.google.gson.annotations.SerializedName;
 import password.pwm.config.option.SessionBeanMode;
 
-import java.util.Arrays;
 import java.util.Collections;
-import java.util.HashSet;
+import java.util.EnumSet;
 import java.util.Set;
 
 public class LoginServletBean extends PwmSessionBean
@@ -51,7 +50,7 @@ public class LoginServletBean extends PwmSessionBean
     @Override
     public Set<SessionBeanMode> supportedModes( )
     {
-        return Collections.unmodifiableSet( new HashSet<>( Arrays.asList( SessionBeanMode.LOCAL, SessionBeanMode.CRYPTCOOKIE ) ) );
+        return Collections.unmodifiableSet( EnumSet.of( SessionBeanMode.LOCAL, SessionBeanMode.CRYPTCOOKIE ) );
     }
 
 }

+ 2 - 2
server/src/main/java/password/pwm/http/bean/NewUserBean.java

@@ -29,8 +29,8 @@ import password.pwm.config.option.SessionBeanMode;
 import password.pwm.http.servlet.newuser.NewUserForm;
 
 import java.time.Instant;
-import java.util.Arrays;
 import java.util.Collections;
+import java.util.EnumSet;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.Map;
@@ -87,7 +87,7 @@ public class NewUserBean extends PwmSessionBean
     @Override
     public Set<SessionBeanMode> supportedModes( )
     {
-        return Collections.unmodifiableSet( new HashSet<>( Arrays.asList( SessionBeanMode.LOCAL, SessionBeanMode.CRYPTCOOKIE ) ) );
+        return Collections.unmodifiableSet( EnumSet.of( SessionBeanMode.LOCAL, SessionBeanMode.CRYPTCOOKIE ) );
     }
 
 

+ 2 - 3
server/src/main/java/password/pwm/http/bean/SetupOtpBean.java

@@ -27,10 +27,9 @@ import password.pwm.util.operations.otp.OTPUserRecord;
 import java.security.NoSuchAlgorithmException;
 import java.security.NoSuchProviderException;
 import java.security.SecureRandom;
-import java.util.Arrays;
 import java.util.Collections;
 import java.util.Date;
-import java.util.HashSet;
+import java.util.EnumSet;
 import java.util.List;
 import java.util.Set;
 
@@ -146,7 +145,7 @@ public class SetupOtpBean extends PwmSessionBean
     @Override
     public Set<SessionBeanMode> supportedModes( )
     {
-        return Collections.unmodifiableSet( new HashSet<>( Arrays.asList( SessionBeanMode.LOCAL, SessionBeanMode.CRYPTCOOKIE ) ) );
+        return Collections.unmodifiableSet( EnumSet.of( SessionBeanMode.LOCAL, SessionBeanMode.CRYPTCOOKIE ) );
     }
 
 }

+ 2 - 3
server/src/main/java/password/pwm/http/bean/ShortcutsBean.java

@@ -23,9 +23,8 @@ package password.pwm.http.bean;
 import password.pwm.config.option.SessionBeanMode;
 import password.pwm.config.value.data.ShortcutItem;
 
-import java.util.Arrays;
 import java.util.Collections;
-import java.util.HashSet;
+import java.util.EnumSet;
 import java.util.Map;
 import java.util.Set;
 
@@ -52,6 +51,6 @@ public class ShortcutsBean extends PwmSessionBean
     @Override
     public Set<SessionBeanMode> supportedModes( )
     {
-        return Collections.unmodifiableSet( new HashSet<>( Arrays.asList( SessionBeanMode.LOCAL, SessionBeanMode.CRYPTCOOKIE ) ) );
+        return Collections.unmodifiableSet( EnumSet.of( SessionBeanMode.LOCAL, SessionBeanMode.CRYPTCOOKIE ) );
     }
 }

+ 1 - 2
server/src/main/java/password/pwm/http/bean/UpdateProfileBean.java

@@ -25,7 +25,6 @@ import lombok.Data;
 import lombok.EqualsAndHashCode;
 import password.pwm.config.option.SessionBeanMode;
 
-import java.util.Arrays;
 import java.util.Collections;
 import java.util.HashSet;
 import java.util.LinkedHashMap;
@@ -69,6 +68,6 @@ public class UpdateProfileBean extends PwmSessionBean
     @Override
     public Set<SessionBeanMode> supportedModes( )
     {
-        return Collections.unmodifiableSet( new HashSet<>( Arrays.asList( SessionBeanMode.LOCAL ) ) );
+        return Collections.singleton( SessionBeanMode.LOCAL );
     }
 }

+ 1 - 1
server/src/main/java/password/pwm/http/servlet/admin/AdminServlet.java

@@ -615,7 +615,7 @@ public class AdminServlet extends ControlledPwmServlet
                     pwmRequest.getPwmApplication(),
                     pwmRequest.getContextManager(),
                     pwmRequest.getLocale(),
-                    flags.toArray( new AppDashboardData.Flag[ flags.size() ] )
+                    flags.toArray( new AppDashboardData.Flag[0] )
             );
             pwmRequest.setAttribute( PwmRequestAttribute.AppDashboardData, appDashboardData );
         }

+ 2 - 2
server/src/main/java/password/pwm/http/servlet/admin/ReportStatusBean.java

@@ -33,7 +33,7 @@ import java.io.Serializable;
 import java.math.BigDecimal;
 import java.math.RoundingMode;
 import java.util.ArrayList;
-import java.util.HashSet;
+import java.util.EnumSet;
 import java.util.List;
 import java.util.Locale;
 import java.util.Set;
@@ -52,7 +52,7 @@ public class ReportStatusBean implements Serializable
         final PwmNumberFormat numberFormat = PwmNumberFormat.forLocale( locale );
         final ReportStatusInfo reportInfo = reportService.getReportStatusInfo();
         final List<DisplayElement> presentableMap = new ArrayList<>();
-        final Set<ReportService.ReportCommand> availableCommands = new HashSet<>();
+        final Set<ReportService.ReportCommand> availableCommands = EnumSet.noneOf( ReportService.ReportCommand.class );
 
         presentableMap.add( new DisplayElement( "jobEngine", DisplayElement.Type.string, "Job Engine", reportInfo.getCurrentProcess().getLabel() ) );
 

+ 2 - 2
server/src/main/java/password/pwm/http/servlet/forgottenpw/ForgottenPasswordStageProcessor.java

@@ -44,7 +44,7 @@ import password.pwm.util.password.PasswordUtility;
 
 import java.util.ArrayList;
 import java.util.Collections;
-import java.util.HashSet;
+import java.util.EnumSet;
 import java.util.List;
 import java.util.Map;
 import java.util.Objects;
@@ -235,7 +235,7 @@ class ForgottenPasswordStageProcessor
 
                     // for rest method, fail if any required methods are not supported
                     {
-                        final Set<IdentityVerificationMethod> tempSet = new HashSet<>( remainingAvailableOptionalMethods );
+                        final Set<IdentityVerificationMethod> tempSet = EnumSet.copyOf( remainingAvailableOptionalMethods );
                         tempSet.removeAll( ForgottenPasswordStateMachine.supportedVerificationMethods() );
                         if ( !tempSet.isEmpty() )
                         {

+ 2 - 2
server/src/main/java/password/pwm/http/servlet/forgottenpw/ForgottenPasswordUtil.java

@@ -77,7 +77,7 @@ import javax.servlet.ServletException;
 import java.io.IOException;
 import java.util.ArrayList;
 import java.util.Collections;
-import java.util.HashSet;
+import java.util.EnumSet;
 import java.util.LinkedHashMap;
 import java.util.LinkedHashSet;
 import java.util.List;
@@ -859,7 +859,7 @@ public class ForgottenPasswordUtil
                     commonValues,
                     forgottenPasswordBean
             );
-            final Set<IdentityVerificationMethod> otherOptionalMethodChoices = new HashSet<>( remainingAvailableOptionalMethods );
+            final Set<IdentityVerificationMethod> otherOptionalMethodChoices = EnumSet.copyOf( remainingAvailableOptionalMethods );
             otherOptionalMethodChoices.remove( thisMethod );
 
             if ( !otherOptionalMethodChoices.isEmpty() )

+ 5 - 5
server/src/main/java/password/pwm/http/servlet/helpdesk/HelpdeskVerificationOptionsBean.java

@@ -46,8 +46,8 @@ import java.io.Serializable;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Collections;
+import java.util.EnumSet;
 import java.util.HashMap;
-import java.util.HashSet;
 import java.util.List;
 import java.util.Locale;
 import java.util.Map;
@@ -126,8 +126,8 @@ public class HelpdeskVerificationOptionsBean implements Serializable
 
         final Set<IdentityVerificationMethod> unavailableMethods;
         {
-            final Set<IdentityVerificationMethod> returnSet = new HashSet<>();
-            final Set<IdentityVerificationMethod> workSet = new HashSet<>();
+            final Set<IdentityVerificationMethod> returnSet = EnumSet.noneOf( IdentityVerificationMethod.class );
+            final Set<IdentityVerificationMethod> workSet = EnumSet.noneOf( IdentityVerificationMethod.class );
             workSet.addAll( helpdeskProfile.readOptionalVerificationMethods()  );
             workSet.addAll( helpdeskProfile.readRequiredVerificationMethods()  );
 
@@ -175,12 +175,12 @@ public class HelpdeskVerificationOptionsBean implements Serializable
         {
             final Map<VerificationMethodValue.EnabledState, Collection<IdentityVerificationMethod>> returnMap = new HashMap<>();
             {
-                final Set<IdentityVerificationMethod> optionalMethods = new HashSet<>( helpdeskProfile.readOptionalVerificationMethods() );
+                final Set<IdentityVerificationMethod> optionalMethods = EnumSet.copyOf( helpdeskProfile.readOptionalVerificationMethods() );
                 optionalMethods.removeAll( unavailableMethods );
                 returnMap.put( VerificationMethodValue.EnabledState.optional, optionalMethods );
             }
             {
-                final Set<IdentityVerificationMethod> requiredMethods = new HashSet<>( helpdeskProfile.readRequiredVerificationMethods() );
+                final Set<IdentityVerificationMethod> requiredMethods = EnumSet.copyOf( helpdeskProfile.readRequiredVerificationMethods() );
                 requiredMethods.removeAll( unavailableMethods );
                 returnMap.put( VerificationMethodValue.EnabledState.required, requiredMethods );
             }

+ 2 - 1
server/src/main/java/password/pwm/http/servlet/newuser/NewUserUtils.java

@@ -84,6 +84,7 @@ import javax.servlet.ServletException;
 import java.io.IOException;
 import java.util.ArrayList;
 import java.util.Collections;
+import java.util.EnumSet;
 import java.util.HashSet;
 import java.util.Iterator;
 import java.util.LinkedHashMap;
@@ -632,7 +633,7 @@ class NewUserUtils
                 formFields
         ) );
 
-        final Set<TokenDestinationItem.Type> interestedTypes = new HashSet<>(  );
+        final Set<TokenDestinationItem.Type> interestedTypes = EnumSet.noneOf( TokenDestinationItem.Type.class );
         if ( newUserProfile.readSettingAsBoolean( PwmSetting.NEWUSER_EMAIL_VERIFICATION ) )
         {
             interestedTypes.add( TokenDestinationItem.Type.email );

+ 1 - 1
server/src/main/java/password/pwm/http/servlet/updateprofile/UpdateProfileUtil.java

@@ -142,7 +142,7 @@ public class UpdateProfileUtil
                 formValues,
                 userLocale,
                 Collections.singletonList( userIdentity ),
-                validationFlags.toArray( new FormUtility.ValidationFlag[ validationFlags.size() ] )
+                validationFlags.toArray( new FormUtility.ValidationFlag[0] )
         );
     }
 

+ 4 - 8
server/src/main/java/password/pwm/http/tag/value/PwmValue.java

@@ -33,14 +33,12 @@ import password.pwm.http.PwmRequest;
 import password.pwm.http.servlet.ClientApiServlet;
 import password.pwm.i18n.Admin;
 import password.pwm.util.i18n.LocaleHelper;
+import password.pwm.util.java.JavaHelper;
 import password.pwm.util.logging.PwmLogger;
 import password.pwm.util.macro.MacroMachine;
 
 import javax.servlet.jsp.JspPage;
 import javax.servlet.jsp.PageContext;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.HashSet;
 import java.util.Locale;
 import java.util.Set;
 
@@ -66,7 +64,7 @@ public enum PwmValue
     private static final PwmLogger LOGGER = PwmLogger.forClass( PwmValueTag.class );
 
     private final ValueOutput valueOutput;
-    private final Flag[] flags;
+    private final Set<Flag> flags;
 
     enum Flag
     {
@@ -76,7 +74,7 @@ public enum PwmValue
     PwmValue( final ValueOutput valueOutput, final Flag... flags )
     {
         this.valueOutput = valueOutput;
-        this.flags = flags;
+        this.flags = JavaHelper.enumSetFromArray( flags );
     }
 
     public ValueOutput getValueOutput( )
@@ -86,9 +84,7 @@ public enum PwmValue
 
     public Set<Flag> getFlags( )
     {
-        return flags == null
-                ? Collections.emptySet()
-                : Collections.unmodifiableSet( new HashSet<>( Arrays.asList( flags ) ) );
+        return flags;
     }
 
     static class CspNonceOutput implements ValueOutput

+ 2 - 2
server/src/main/java/password/pwm/ldap/auth/SessionAuthenticator.java

@@ -56,7 +56,7 @@ import password.pwm.util.java.StringUtil;
 import password.pwm.util.logging.PwmLogger;
 
 import java.time.Instant;
-import java.util.HashSet;
+import java.util.EnumSet;
 import java.util.List;
 import java.util.Set;
 
@@ -133,7 +133,7 @@ public class SessionAuthenticator
     private Set<PwmError> readHiddenErrorTypes( )
     {
         final String appProperty = pwmApplication.getConfig().readAppProperty( AppProperty.SECURITY_LOGIN_HIDDEN_ERROR_TYPES );
-        final Set<PwmError> returnSet = new HashSet<>();
+        final Set<PwmError> returnSet = EnumSet.noneOf( PwmError.class );
         if ( !StringUtil.isEmpty( appProperty ) )
         {
             try

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

@@ -280,6 +280,7 @@ public class EmailService implements PwmService
                 }
             }
         }
+        stats.put( "maxThreads", String.valueOf( emailServiceSettings.getMaxThreads() ) );
 
         return Collections.unmodifiableMap( stats );
     }

+ 1 - 1
server/src/main/java/password/pwm/svc/event/AuditService.java

@@ -94,7 +94,7 @@ public class AuditService implements PwmService
 
         final Instant startTime = Instant.now();
 
-        settings = new AuditSettings( pwmApplication.getConfig() );
+        settings = AuditSettings.fromConfig( pwmApplication.getConfig() );
 
         if ( pwmApplication.getApplicationMode() == null || pwmApplication.getApplicationMode() == PwmApplicationMode.READ_ONLY )
         {

+ 20 - 40
server/src/main/java/password/pwm/svc/event/AuditSettings.java

@@ -20,61 +20,41 @@
 
 package password.pwm.svc.event;
 
+import lombok.Builder;
+import lombok.Value;
 import password.pwm.AppProperty;
 import password.pwm.config.Configuration;
 import password.pwm.config.PwmSetting;
 
-import java.util.ArrayList;
 import java.util.Collections;
-import java.util.HashSet;
+import java.util.EnumSet;
 import java.util.List;
 import java.util.Set;
 
+@Value
+@Builder
 class AuditSettings
 {
-    private List<String> systemEmailAddresses = new ArrayList<>();
-    private List<String> userEmailAddresses = new ArrayList<>();
-    private String alertFromAddress = "";
-    private Set<AuditEvent> userStoredEvents = new HashSet<>();
-    private Set<AuditEvent> permittedEvents = new HashSet<>();
+    private List<String> systemEmailAddresses;
+    private List<String> userEmailAddresses;
+    private String alertFromAddress;
+    private Set<AuditEvent> userStoredEvents;
+    private Set<AuditEvent> permittedEvents;
 
-    AuditSettings( final Configuration configuration )
+    static AuditSettings fromConfig( final Configuration configuration )
     {
-        systemEmailAddresses = configuration.readSettingAsStringArray( PwmSetting.AUDIT_EMAIL_SYSTEM_TO );
-        userEmailAddresses = configuration.readSettingAsStringArray( PwmSetting.AUDIT_EMAIL_USER_TO );
-        alertFromAddress = configuration.readAppProperty( AppProperty.AUDIT_EVENTS_EMAILFROM );
-        permittedEvents = figurePermittedEvents( configuration );
-        userStoredEvents = figureUserStoredEvents( configuration );
-    }
-
-    List<String> getSystemEmailAddresses( )
-    {
-        return systemEmailAddresses;
-    }
-
-    List<String> getUserEmailAddresses( )
-    {
-        return userEmailAddresses;
-    }
-
-    Set<AuditEvent> getUserStoredEvents( )
-    {
-        return userStoredEvents;
-    }
-
-    String getAlertFromAddress( )
-    {
-        return alertFromAddress;
-    }
-
-    Set<AuditEvent> getPermittedEvents( )
-    {
-        return permittedEvents;
+        return AuditSettings.builder()
+                .systemEmailAddresses( configuration.readSettingAsStringArray( PwmSetting.AUDIT_EMAIL_SYSTEM_TO ) )
+                .userEmailAddresses( configuration.readSettingAsStringArray( PwmSetting.AUDIT_EMAIL_USER_TO ) )
+                .alertFromAddress( configuration.readAppProperty( AppProperty.AUDIT_EVENTS_EMAILFROM ) )
+                .permittedEvents( figurePermittedEvents( configuration ) )
+                .userStoredEvents( figureUserStoredEvents( configuration ) )
+                .build();
     }
 
     private static Set<AuditEvent> figurePermittedEvents( final Configuration configuration )
     {
-        final Set<AuditEvent> eventSet = new HashSet<>();
+        final Set<AuditEvent> eventSet = EnumSet.noneOf( AuditEvent.class );
         eventSet.addAll( configuration.readSettingAsOptionList( PwmSetting.AUDIT_SYSTEM_EVENTS, AuditEvent.class ) );
         eventSet.addAll( configuration.readSettingAsOptionList( PwmSetting.AUDIT_USER_EVENTS, AuditEvent.class ) );
         return Collections.unmodifiableSet( eventSet );
@@ -82,7 +62,7 @@ class AuditSettings
 
     private static Set<AuditEvent> figureUserStoredEvents( final Configuration configuration )
     {
-        final Set<AuditEvent> eventSet = new HashSet<>();
+        final Set<AuditEvent> eventSet = EnumSet.noneOf( AuditEvent.class );
         eventSet.addAll( configuration.readSettingAsOptionList( PwmSetting.EVENTS_USER_EVENT_TYPES, AuditEvent.class ) );
         return Collections.unmodifiableSet( eventSet );
     }

+ 1 - 1
server/src/main/java/password/pwm/util/cli/MainClass.java

@@ -342,7 +342,7 @@ public class MainClass
                 if ( commandStr.equalsIgnoreCase( command.getCliParameters().commandName ) )
                 {
                     commandExceuted = true;
-                    executeCommand( command, commandStr, workingArgs.toArray( new String[ workingArgs.size() ] ) );
+                    executeCommand( command, commandStr, workingArgs.toArray( new String[0] ) );
                     break;
                 }
             }

+ 1 - 2
server/src/main/java/password/pwm/util/java/LicenseInfoReader.java

@@ -25,7 +25,6 @@ import password.pwm.error.PwmUnrecoverableException;
 
 import java.io.InputStream;
 import java.util.ArrayList;
-import java.util.Arrays;
 import java.util.Collections;
 import java.util.List;
 import java.util.Optional;
@@ -38,7 +37,7 @@ public class LicenseInfoReader
 
     public static List<DependencyInfo> getLicenseInfos() throws PwmUnrecoverableException
     {
-        final List<String> attributionFiles = Arrays.asList( "/attribution.xml" );
+        final List<String> attributionFiles = Collections.singletonList( "/attribution.xml" );
         final List<DependencyInfo> returnList = new ArrayList<>();
         final XmlFactory factory = new XmlFactory.XmlFactoryW3c();
 

+ 0 - 28
server/src/main/java/password/pwm/util/java/PwmSupplier.java

@@ -1,28 +0,0 @@
-/*
- * Password Management Servlets (PWM)
- * http://www.pwm-project.org
- *
- * Copyright (c) 2006-2009 Novell, Inc.
- * Copyright (c) 2009-2020 The PWM Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package password.pwm.util.java;
-
-import password.pwm.error.PwmUnrecoverableException;
-
-public interface PwmSupplier<T>
-{
-    T get() throws PwmUnrecoverableException;
-}

+ 1 - 3
server/src/main/java/password/pwm/util/localdb/LocalDBStoredQueue.java

@@ -28,12 +28,10 @@ import password.pwm.util.logging.PwmLogger;
 
 import java.math.BigInteger;
 import java.util.ArrayList;
-import java.util.Arrays;
 import java.util.Collection;
 import java.util.Collections;
 import java.util.Deque;
 import java.util.HashMap;
-import java.util.HashSet;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
@@ -684,7 +682,7 @@ LocalDBStoredQueue implements Queue<String>, Deque<String>
         private static final int DEBUG_MAX_ROWS = 50;
         private static final int DEBUG_MAX_WIDTH = 120;
         private static final Set<LocalDB.DB> DEBUG_IGNORED_DB = Collections.unmodifiableSet(
-                Collections.unmodifiableSet( new HashSet<>( Arrays.asList( LocalDB.DB.EVENTLOG_EVENTS ) ) )
+                Collections.unmodifiableSet( Collections.singleton( LocalDB.DB.EVENTLOG_EVENTS ) )
         );
 
         private final ReadWriteLock lock = new ReentrantReadWriteLock();

+ 2 - 2
server/src/main/java/password/pwm/util/macro/MacroMachine.java

@@ -38,7 +38,7 @@ import password.pwm.util.logging.PwmLogger;
 
 import java.time.Instant;
 import java.util.Collections;
-import java.util.HashSet;
+import java.util.EnumSet;
 import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.Locale;
@@ -211,7 +211,7 @@ public class MacroMachine
 
     private static Set<MacroImplementation.Scope> effectiveScopes( final MacroImplementation.MacroRequestInfo macroRequestInfo )
     {
-        final Set<MacroImplementation.Scope> scopes = new HashSet<>();
+        final Set<MacroImplementation.Scope> scopes = EnumSet.noneOf( MacroImplementation.Scope.class );
         scopes.add( MacroImplementation.Scope.Static );
 
         final PwmApplication pwmApplication = macroRequestInfo.getPwmApplication();

+ 2 - 1
server/src/main/java/password/pwm/util/password/RandomPasswordGenerator.java

@@ -47,6 +47,7 @@ import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collection;
 import java.util.Collections;
+import java.util.EnumSet;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.List;
@@ -259,7 +260,7 @@ public class RandomPasswordGenerator
             return;
         }
 
-        final Set<PwmError> errorMessages = new HashSet<>();
+        final Set<PwmError> errorMessages = EnumSet.noneOf( PwmError.class );
         for ( final ErrorInformation errorInfo : errors )
         {
             errorMessages.add( errorInfo.getError() );

+ 1 - 1
server/src/main/java/password/pwm/util/secure/HttpsServerCertificateManager.java

@@ -91,7 +91,7 @@ public class HttpsServerCertificateManager
                     alias,
                     new KeyStore.PrivateKeyEntry(
                             privateKeyCertificate.getKey(),
-                            privateKeyCertificate.getCertificates().toArray( new X509Certificate[ privateKeyCertificate.getCertificates().size() ] )
+                            privateKeyCertificate.getCertificates().toArray( new X509Certificate[0] )
                     ),
                     passwordProtection
             );

+ 0 - 18
server/src/test/java/password/pwm/config/PwmSettingCategoryTest.java

@@ -24,9 +24,6 @@ import org.junit.Assert;
 import org.junit.Test;
 import password.pwm.PwmConstants;
 
-import java.util.HashSet;
-import java.util.Set;
-
 public class PwmSettingCategoryTest
 {
     @Test
@@ -86,19 +83,4 @@ public class PwmSettingCategoryTest
             }
         }
     }
-
-    @Test
-    public void testProfileSettingUniqueness()
-    {
-        final Set<PwmSetting> seenSettings = new HashSet<>();
-        /*
-        for (final PwmSettingCategory category : PwmSettingCategory.values()) {
-            if (category.hasProfiles()) {
-                Assert.assertTrue(!seenSettings.contains(category.getProfileSetting())); // duplicate category
-                seenSettings.add(category.getProfileSetting());
-            }
-        }
-        */
-        //@todo removed during multi-level profiled-category introduction
-    }
 }

+ 2 - 1
server/src/test/java/password/pwm/svc/wordlist/WordlistUtilTest.java

@@ -24,6 +24,7 @@ import org.junit.Assert;
 import org.junit.Test;
 
 import java.util.Arrays;
+import java.util.Collections;
 import java.util.HashSet;
 import java.util.Set;
 
@@ -42,7 +43,7 @@ public class WordlistUtilTest
     public void testChunkWordNoSize()
     {
         final String input = "zoogam";
-        final Set<String> expectedOutput = new HashSet<>( Arrays.asList( "zoogam" ) );
+        final Set<String> expectedOutput = new HashSet<>( Collections.singletonList( "zoogam" ) );
         final Set<String> output = WordlistUtil.chunkWord( input, 0 );
         Assert.assertEquals( expectedOutput, output );
     }