javacommons/security/javasrc/com/nokia/mj/impl/security/midp/common/SecurityExtensionsReader.java
branchRCL_3
changeset 23 e5618cc85d74
parent 14 04becd199f91
--- a/javacommons/security/javasrc/com/nokia/mj/impl/security/midp/common/SecurityExtensionsReader.java	Mon Jun 21 15:32:50 2010 +0300
+++ b/javacommons/security/javasrc/com/nokia/mj/impl/security/midp/common/SecurityExtensionsReader.java	Thu Jul 15 18:31:06 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;
             }