Index: C:/Naidu/Projects/eclipse/june_policy_workspace/apache/imperius-splcore/src/main/java/org/apache/imperius/spl/datastore/impl/PolicyRepositoryImpl.java =================================================================== --- C:/Naidu/Projects/eclipse/june_policy_workspace/apache/imperius-splcore/src/main/java/org/apache/imperius/spl/datastore/impl/PolicyRepositoryImpl.java (revision 669804) +++ C:/Naidu/Projects/eclipse/june_policy_workspace/apache/imperius-splcore/src/main/java/org/apache/imperius/spl/datastore/impl/PolicyRepositoryImpl.java (working copy) @@ -46,16 +46,12 @@ { private static HashMap _policyMap = new HashMap(); - - - private static String _fileName = null; - - - private static Logger logger = SPLLogger.getSPLLogger().getLogger(); - - private static final String sourceClass = "PolicyRepositoryImpl"; - - PolicyRepositoryImpl() + private static String _fileName = null; + private static Logger logger = SPLLogger.getSPLLogger().getLogger(); + private static final String sourceClass = "PolicyRepositoryImpl"; + private static PolicyRepositoryImpl singletonObj = null; + + private PolicyRepositoryImpl() { init(); } @@ -69,6 +65,15 @@ _readSerializedPolicyStorage(); logger.exiting(sourceClass,Thread.currentThread().getName()+" "+ "init"); } + + public static synchronized PolicyRepositoryImpl getInstance() + { + if(singletonObj == null) + { + singletonObj = new PolicyRepositoryImpl(); + } + return singletonObj; + } public void shutdown() { @@ -185,7 +190,7 @@ } } - public boolean insertPolicy(String policyRuleName, String policyString) + public synchronized boolean insertPolicy(String policyRuleName, String policyString) throws SPLException { logger.entering(sourceClass,Thread.currentThread().getName()+" "+ "insertPolicy");