Index: C:/Naidu/Projects/eclipse/june_policy_workspace/apache/imperius-splcore/src/main/java/org/apache/imperius/spl/datastore/impl/PolicyCache.java =================================================================== --- C:/Naidu/Projects/eclipse/june_policy_workspace/apache/imperius-splcore/src/main/java/org/apache/imperius/spl/datastore/impl/PolicyCache.java (revision 669804) +++ C:/Naidu/Projects/eclipse/june_policy_workspace/apache/imperius-splcore/src/main/java/org/apache/imperius/spl/datastore/impl/PolicyCache.java (working copy) @@ -35,7 +35,22 @@ public class PolicyCache { private Map _policyCache = new Hashtable(); + private static PolicyCache singletonObj = null; + + private PolicyCache() + { + + } + public static synchronized PolicyCache getInstance() + { + if(singletonObj == null) + { + singletonObj = new PolicyCache(); + } + return singletonObj; + } + public boolean policyExists(String policyName) { if (!_policyCache.containsKey(policyName)) @@ -43,26 +58,21 @@ return false; } return true; - - } - public boolean insertPolicy(String policyName, SPLPolicy policyObject) + public synchronized boolean insertPolicy(String policyName, SPLPolicy policyObject) { if (!policyExists(policyName)) { - _policyCache.put(policyName,policyObject); return true; - } else { return false; - } - } + public boolean updatePolicy(String policyName, SPLPolicy policyObject) throws SPLException { @@ -76,9 +86,9 @@ { throw new SPLException("policy does not exist in cache"); } - } - public boolean deletePolicy(String policyName) throws SPLException + + public synchronized boolean deletePolicy(String policyName) throws SPLException { if(policyExists(policyName)) { @@ -89,10 +99,9 @@ { return false; } - - } - public SPLPolicy getPolicy(String policyName) throws SPLException + + public synchronized SPLPolicy getPolicy(String policyName) throws SPLException { if(policyExists(policyName)) { @@ -103,9 +112,5 @@ { throw new SPLException("policy does not exist in cache"); } - } - - - }