javacommons/security/javasrc/com/nokia/mj/impl/security/midp/common/SecurityExtensionsReader.java
changeset 48 e0d6e9bd3ca7
parent 21 2a9601315dfc
--- a/javacommons/security/javasrc/com/nokia/mj/impl/security/midp/common/SecurityExtensionsReader.java	Wed Jun 23 18:07:10 2010 +0300
+++ b/javacommons/security/javasrc/com/nokia/mj/impl/security/midp/common/SecurityExtensionsReader.java	Tue Jul 06 14:10:26 2010 +0300
@@ -327,6 +327,7 @@
             String mappingsSystemProperty)
     {
         String[] mappings = Tokenizer.split(mappingsSystemProperty, ";");
+        Vector validatedPermNames = new Vector();
         if (mappings != null)
         {
             for (int i=0; i<mappings.length; i++)
@@ -358,11 +359,13 @@
                             // one more check against the existing extensions
                             // permission mappings
                             found = find(namedPermName,
-                                         classBasedPermName,
+                                         (validatedPermNames.contains(classBasedPermName) 
+                                         ? null: classBasedPermName),
                                          extPermissionMappings);
                         }
                         if (!found)
                         {
+                            validatedPermNames.addElement(classBasedPermName);
                             extPermissionMappings.put(
                                 namedPermName,
                                 new MIDPPermission(
@@ -387,8 +390,9 @@
             Object key = e.nextElement();
             Object value = permMapping.get(key);
             if (((String)key).equalsIgnoreCase(namedPermName)
-                    || (((MIDPPermission)value)).getName()
-                    .equalsIgnoreCase(classBasedPermName))
+                    || ( classBasedPermName != null 
+                    && (((MIDPPermission)value)).getName()
+                    .equalsIgnoreCase(classBasedPermName)))
             {
                 return true;
             }