Ver Fonte

remove spotbugs exclusion for IC_INIT_CIRCULARITY.

jrivard@gmail.com há 6 anos atrás
pai
commit
2f5125f35e

+ 1 - 1
build/spotbugs-exclude.xml

@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <FindBugsFilter>
     <Match>
-        <Bug pattern="SE_NO_SERIALVERSIONID,IC_INIT_CIRCULARITY,RCN_REDUNDANT_NULLCHECK_OF_NONNULL_VALUE,DP_CREATE_CLASSLOADER_INSIDE_DO_PRIVILEGED,SQL_PREPARED_STATEMENT_GENERATED_FROM_NONCONSTANT_STRING"/>
+        <Bug pattern="SE_NO_SERIALVERSIONID,RCN_REDUNDANT_NULLCHECK_OF_NONNULL_VALUE,DP_CREATE_CLASSLOADER_INSIDE_DO_PRIVILEGED,SQL_PREPARED_STATEMENT_GENERATED_FROM_NONCONSTANT_STRING"/>
     </Match>
     <Match>
         <!-- due to bug https://github.com/spotbugs/spotbugs/issues/493 in spotbugs 3.1.3 -->

+ 10 - 10
server/src/main/java/password/pwm/config/PwmSettingTemplate.java

@@ -26,6 +26,9 @@ import org.jdom2.Attribute;
 import org.jdom2.Element;
 import password.pwm.util.java.JavaHelper;
 
+import java.util.EnumMap;
+import java.util.Map;
+
 public enum PwmSettingTemplate
 {
     NOVL( Type.LDAP_VENDOR ),
@@ -83,18 +86,15 @@ public enum PwmSettingTemplate
         STORAGE,
         DB_VENDOR,;
 
-        static
-        {
-            LDAP_VENDOR.defaultValue = DEFAULT;
-            STORAGE.defaultValue = LDAP;
-            DB_VENDOR.defaultValue = DB_OTHER;
-        }
-
-        private PwmSettingTemplate defaultValue;
-
+        // done using map instead of static values to avoid initialization circularity bug
         public PwmSettingTemplate getDefaultValue( )
         {
-            return defaultValue;
+            final Map<Type, PwmSettingTemplate> defaultValueMap = new EnumMap<>( Type.class );
+            defaultValueMap.put( LDAP_VENDOR, DEFAULT );
+            defaultValueMap.put( STORAGE, LDAP );
+            defaultValueMap.put( DB_VENDOR, DB_OTHER );
+
+            return defaultValueMap.get( this );
         }
     }
 }