Forráskód Böngészése

fix collection remove NPE editing certain setting value types

Jason Rivard 3 éve
szülő
commit
48a726929b

A különbségek nem kerülnek megjelenítésre, a fájl túl nagy
+ 342 - 217
client/angular/package-lock.json


+ 4 - 8
server/src/main/java/password/pwm/config/value/CustomLinkValue.java

@@ -25,6 +25,7 @@ import org.jrivard.xmlchai.XmlElement;
 import password.pwm.config.PwmSetting;
 import password.pwm.config.stored.XmlOutputProcessData;
 import password.pwm.config.value.data.CustomLinkConfiguration;
+import password.pwm.util.java.CollectionUtil;
 import password.pwm.util.json.JsonFactory;
 import password.pwm.util.secure.PwmSecurityKey;
 
@@ -41,7 +42,7 @@ public class CustomLinkValue extends AbstractValue implements StoredValue
 
     public CustomLinkValue( final List<CustomLinkConfiguration> values )
     {
-        this.values = values == null ? Collections.emptyList() : Collections.unmodifiableList( values );
+        this.values = values == null ? Collections.emptyList() : Collections.unmodifiableList( CollectionUtil.stripNulls( values ) );
     }
 
     public static StoredValueFactory factory( )
@@ -57,13 +58,8 @@ public class CustomLinkValue extends AbstractValue implements StoredValue
                 }
                 else
                 {
-                    List<CustomLinkConfiguration> srcList = JsonFactory.get().deserializeList( input, CustomLinkConfiguration.class );
-                    srcList = srcList == null ? Collections.emptyList() : srcList;
-                    while ( srcList.contains( null ) )
-                    {
-                        srcList.remove( null );
-                    }
-                    return new CustomLinkValue( Collections.unmodifiableList( srcList ) );
+                    final List<CustomLinkConfiguration> srcList = JsonFactory.get().deserializeList( input, CustomLinkConfiguration.class );
+                    return new CustomLinkValue( srcList );
                 }
             }
 

+ 6 - 6
server/src/main/java/password/pwm/config/value/EmailValue.java

@@ -26,6 +26,7 @@ import password.pwm.bean.EmailItemBean;
 import password.pwm.config.PwmSetting;
 import password.pwm.config.stored.XmlOutputProcessData;
 import password.pwm.util.i18n.LocaleHelper;
+import password.pwm.util.java.CollectionUtil;
 import password.pwm.util.java.StringUtil;
 import password.pwm.util.json.JsonFactory;
 import password.pwm.util.secure.PwmSecurityKey;
@@ -45,7 +46,9 @@ public class EmailValue extends AbstractValue implements StoredValue
 
     EmailValue( final Map<String, EmailItemBean> values )
     {
-        this.values = values == null ? Collections.emptyMap() : Collections.unmodifiableMap( values );
+        this.values = values == null
+                ? Collections.emptyMap()
+                : Collections.unmodifiableMap( CollectionUtil.stripNulls( values ) );
     }
 
     public static StoredValueFactory factory( )
@@ -61,11 +64,8 @@ public class EmailValue extends AbstractValue implements StoredValue
                 }
                 else
                 {
-                    Map<String, EmailItemBean> srcMap = JsonFactory.get().deserializeMap( input, String.class, EmailItemBean.class );
-
-                    srcMap = srcMap == null ? Collections.emptyMap() : srcMap;
-                    srcMap.remove( null );
-                    return new EmailValue( Collections.unmodifiableMap( srcMap ) );
+                    final Map<String, EmailItemBean> srcMap = JsonFactory.get().deserializeMap( input, String.class, EmailItemBean.class );
+                    return new EmailValue( srcMap );
                 }
             }
 

+ 2 - 11
server/src/main/java/password/pwm/config/value/UserPermissionValue.java

@@ -29,6 +29,7 @@ import password.pwm.config.value.data.UserPermission;
 import password.pwm.error.PwmUnrecoverableException;
 import password.pwm.ldap.permission.UserPermissionType;
 import password.pwm.ldap.permission.UserPermissionUtility;
+import password.pwm.util.java.CollectionUtil;
 import password.pwm.util.json.JsonFactory;
 import password.pwm.util.secure.PwmSecurityKey;
 
@@ -52,17 +53,7 @@ public class UserPermissionValue extends AbstractValue implements StoredValue
 
     private List<UserPermission> sanitizeList( final List<UserPermission> permissions )
     {
-        final List<UserPermission> tempList = new ArrayList<>();
-        if ( permissions != null )
-        {
-            tempList.addAll( permissions );
-        }
-
-        while ( tempList.contains( null ) )
-        {
-            tempList.remove( null );
-        }
-
+        final List<UserPermission> tempList = new ArrayList<>( CollectionUtil.stripNulls( permissions ) );
         Collections.sort( tempList );
         return Collections.unmodifiableList( tempList );
     }

Nem az összes módosított fájl került megjelenítésre, mert túl sok fájl változott