src/main/java/org/jboss/util/property/PropertyMap.java
private void init()
   {
      unboundListeners = Collections.synchronizedList(new ArrayList());
      boundListeners = Collections.synchronizedMap(new HashMap());
      jndiMap = new HashMap();

      PrivilegedAction action = new PrivilegedAction()
      {
         public Object run()
         {
            Object value = System.getProperty(Context.PROVIDER_URL);
            if (value == null) value = NULL_VALUE;
            jndiMap.put(Context.PROVIDER_URL, value);

            value = System.getProperty(Context.INITIAL_CONTEXT_FACTORY);
            if (value == null) value = NULL_VALUE;
            jndiMap.put(Context.INITIAL_CONTEXT_FACTORY, value);

            value = System.getProperty(Context.OBJECT_FACTORIES);
            if (value == null) value = NULL_VALUE;
            jndiMap.put(Context.OBJECT_FACTORIES, value);

            value = System.getProperty(Context.URL_PKG_PREFIXES);
            if (value == null) value = NULL_VALUE;
            jndiMap.put(Context.URL_PKG_PREFIXES, value);

            value = System.getProperty(Context.STATE_FACTORIES);
            if (value == null) value = NULL_VALUE;
            jndiMap.put(Context.STATE_FACTORIES, value);

            value = System.getProperty(Context.DNS_URL);
            if (value == null) value = NULL_VALUE;
            jndiMap.put(Context.DNS_URL, value);

            value = System.getProperty(LdapContext.CONTROL_FACTORIES);
            if (value == null) value = NULL_VALUE;
            jndiMap.put(LdapContext.CONTROL_FACTORIES, value);
            return null;
         }
      };
      AccessController.doPrivileged(action);
   }
private void init()
   {
      unboundListeners = Collections.synchronizedList(new ArrayList());
      boundListeners = Collections.synchronizedMap(new HashMap());
      jndiMap = new HashMap();

      PrivilegedAction action = new PrivilegedAction()
      {
         public Object run()
         {
            Object value = System.getProperty(Context.PROVIDER_URL);
            if (value == null) value = NULL_VALUE;
            jndiMap.put(Context.PROVIDER_URL, value);

            value = System.getProperty(Context.INITIAL_CONTEXT_FACTORY);
            if (value == null) value = NULL_VALUE;
            jndiMap.put(Context.INITIAL_CONTEXT_FACTORY, value);

            value = System.getProperty(Context.OBJECT_FACTORIES);
            if (value == null) value = NULL_VALUE;
            jndiMap.put(Context.OBJECT_FACTORIES, value);

            value = System.getProperty(Context.URL_PKG_PREFIXES);
            if (value == null) value = NULL_VALUE;
            jndiMap.put(Context.URL_PKG_PREFIXES, value);

            value = System.getProperty(Context.STATE_FACTORIES);
            if (value == null) value = NULL_VALUE;
            jndiMap.put(Context.STATE_FACTORIES, value);

            value = System.getProperty(Context.DNS_URL);
            if (value == null) value = NULL_VALUE;
            jndiMap.put(Context.DNS_URL, value);

            value = System.getProperty(LdapContext.CONTROL_FACTORIES);
            if (value == null) value = NULL_VALUE;
            jndiMap.put(LdapContext.CONTROL_FACTORIES, value);
            return null;
         }
      };
      AccessController.doPrivileged(action);
   }
Initialized listener lists and the JNDI properties cache map