X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=ECOMP-PAP-REST%2Fsrc%2Fmain%2Fjava%2Forg%2Fopenecomp%2Fpolicy%2Fpap%2Fxacml%2Frest%2Fcomponents%2FPolicyDBDao.java;h=b65557e0584f597623ca32e5ac22afe0fe5db56e;hb=fc5c07705edc4dcb7083b39116a43844bb6a1490;hp=a63dacbfefda4822a1ef3f5e23ae4aba76b05def;hpb=e0addf5b588a1244f9679becd90999dfcb4c3a94;p=policy%2Fengine.git diff --git a/ECOMP-PAP-REST/src/main/java/org/openecomp/policy/pap/xacml/rest/components/PolicyDBDao.java b/ECOMP-PAP-REST/src/main/java/org/openecomp/policy/pap/xacml/rest/components/PolicyDBDao.java index a63dacbfe..b65557e05 100644 --- a/ECOMP-PAP-REST/src/main/java/org/openecomp/policy/pap/xacml/rest/components/PolicyDBDao.java +++ b/ECOMP-PAP-REST/src/main/java/org/openecomp/policy/pap/xacml/rest/components/PolicyDBDao.java @@ -35,7 +35,6 @@ import java.net.MalformedURLException; import java.net.ProtocolException; import java.net.URL; import java.nio.charset.StandardCharsets; -import java.nio.file.FileSystems; import java.nio.file.Files; import java.nio.file.InvalidPathException; import java.nio.file.Path; @@ -69,8 +68,6 @@ import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.xpath.XPath; import javax.xml.xpath.XPathFactory; -import oasis.names.tc.xacml._3_0.core.schema.wd_17.PolicyType; - import org.apache.commons.io.FileUtils; import org.apache.commons.io.FilenameUtils; import org.apache.commons.io.IOUtils; @@ -105,6 +102,8 @@ import com.att.research.xacml.api.pap.PDP; import com.att.research.xacml.api.pap.PDPPolicy; import com.att.research.xacml.util.XACMLProperties; +import oasis.names.tc.xacml._3_0.core.schema.wd_17.PolicyType; + public class PolicyDBDao { private static final Logger logger = FlexLogger.getLogger(PolicyDBDao.class); private List otherServers; @@ -200,7 +199,7 @@ public class PolicyDBDao { } } catch(Exception e){ System.out.println("Could not get lock entity"); - e.printStackTrace(); + logger.error("Exception Occured"+e); } if(lock == null){ throw new IllegalStateException("The lock row does not exist in the table. Please create a primary key with value = 1."); @@ -213,7 +212,7 @@ public class PolicyDBDao { */ private List getRemotePolicyDBDaoList(){ logger.debug("getRemotePolicyDBDaoList() as getRemotePolicyDBDaoList() called"); - List policyDBDaoEntityList = new LinkedList(); + List policyDBDaoEntityList = new LinkedList<>(); EntityManager em = emf.createEntityManager(); startTransactionSynced(em, 1000); try{ @@ -375,7 +374,6 @@ public class PolicyDBDao { em.close(); } catch(Exception e2){ PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e2, "PolicyDBDao", "COULD NOT CREATE DATABASELOCK ROW. WILL TRY ONE MORE TIME"); - e2.printStackTrace(); } em = null; em = emf.createEntityManager(); @@ -446,7 +444,7 @@ public class PolicyDBDao { } public void notifyOthers(long entityId, String entityType, String newGroupId){ logger.debug("notifyOthers(long entityId, String entityType, long newGroupId) as notifyOthers("+entityId+","+entityType+","+newGroupId+") called"); - LinkedList notifyThreads = new LinkedList(); + LinkedList notifyThreads = new LinkedList<>(); //we're going to run notiftions in parellel threads to speed things up for(Object obj : otherServers){ @@ -855,7 +853,7 @@ public class PolicyDBDao { //this must always be true since we don't explicitly know when a delete is occuring boolean didUpdate = true; HashMap currentPolicySet = new HashMap(oldPdpGroup.getPolicies().size()); - HashSet newPolicySet = new HashSet(); + HashSet newPolicySet = new HashSet<>(); for(PDPPolicy pdpPolicy : oldPdpGroup.getPolicies()){ currentPolicySet.put(pdpPolicy.getId(), pdpPolicy); } @@ -872,6 +870,7 @@ public class PolicyDBDao { try { policyStream.close(); } catch (IOException e) { + didUpdate = false; PolicyLogger.error(e.getMessage()); } } @@ -1032,7 +1031,7 @@ public class PolicyDBDao { String action = "unknown action"; try { - if(policy.isDeleted()){ + if(policy != null && policy.isDeleted()){ logger.debug("Deleting Policy: " + policy.getPolicyName()); action = "delete"; Path newPath = Paths.get(policyPath.toString(), policy.getPolicyName()); @@ -1099,7 +1098,7 @@ public class PolicyDBDao { } } catch (IOException e1) { - PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e1, "PolicyDBDao", "Error occurred while performing [" + action + "] of Policy File: " + policy.getPolicyName()); + PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e1, "PolicyDBDao", "Error occurred while performing [" + action + "] of Policy File: " + policy != null ? policy.getPolicyName() : "null"); } } @@ -1127,7 +1126,7 @@ public class PolicyDBDao { Properties propertyFileProperties = new Properties(); String groupList = ""; String defaultGroup = ""; - HashSet currentGroupPaths = new HashSet(); + HashSet currentGroupPaths = new HashSet<>(); for(Object o : groups){ GroupEntity group = (GroupEntity)o; Path groupPath = Paths.get(pdpsPath.toString(), group.getGroupId()); @@ -1157,7 +1156,7 @@ public class PolicyDBDao { try { FileUtils.forceMkdir(groupPath.toFile()); } catch (IOException e) { - e.printStackTrace(); + logger.error("Exception Occured"+e); } } Properties policyProperties = new Properties(); @@ -1316,11 +1315,12 @@ public class PolicyDBDao { String repo = buildPolicyDirectory(); String policyScope = policy.getScope(); + if(policyScope == null){ policyScope = ""; PolicyLogger.error("buildPolicyScopeDirectory("+policy+") computed null policyScope. Using blank."); } else { - policyScope = policyScope.replace(".", FileSystems.getDefault().getSeparator()); + policyScope = policyScope.replace(".", File.separator); } if(policyScope == null){ policyScope = ""; @@ -1330,7 +1330,7 @@ public class PolicyDBDao { PolicyLogger.error("buildPolicyScopeDirectory("+policy+") received null repo. Using blank."); repo = ""; } - Path returnPath = Paths.get(repo + FileSystems.getDefault().getSeparator() + policyScope); + Path returnPath = Paths.get(repo + File.separator + policyScope); if(returnPath != null){ return returnPath.toString(); } else { @@ -1342,9 +1342,7 @@ public class PolicyDBDao { } private String buildPolicyScopeDirectory(String policyScope){ String repo = buildPolicyDirectory(); - policyScope = policyScope.replace(".", FileSystems.getDefault().getSeparator()); - return repo + FileSystems.getDefault().getSeparator() + policyScope; - + return repo + File.separator + policyScope.replace(".", File.separator); } private static String buildPolicyDirectory(){ @@ -1628,8 +1626,14 @@ public class PolicyDBDao { auditGroups(papEngine2); } catch(Exception e){ PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, "PolicyDBDao", "auditLocalDatabase() error"); - e.printStackTrace(); - } + logger.error("Exception Occured"+e); + }finally{ + try { + Files.walk(webappsPath).close(); + } catch (IOException e) { + logger.error("Exception Occured while closing File Stream"+e); + } + } } /** @@ -1663,7 +1667,7 @@ public class PolicyDBDao { getPolicyEntitiesQuery.setParameter("deleted", false); policyEntityList = getPolicyEntitiesQuery.getResultList(); } catch(Exception e){ - policyEntityList = new LinkedList(); + policyEntityList = new LinkedList<>(); } for (PolicyEntity policy: policyEntityList){ @@ -1971,7 +1975,7 @@ public class PolicyDBDao { } String gitPath = getGitPath(); - ArrayList gitPathParts = new ArrayList(); + ArrayList gitPathParts = new ArrayList<>(); Iterator gitPathIterator = Paths.get(gitPath).iterator(); while(gitPathIterator.hasNext()){ gitPathParts.add(gitPathIterator.next().toString()); @@ -1981,7 +1985,7 @@ public class PolicyDBDao { for(int j=i;j= path.length()){ + if(path != null && (gitPath.length() >= path.length())){ logger.debug("gitPath length(): " + gitPath.length() + ">= path.length(): " + path.length() + ". Returning null"); return null; } @@ -2150,7 +2154,7 @@ public class PolicyDBDao { try{ em.close(); } catch(Exception e){ - e.printStackTrace(); + logger.error("Exception Occured"+e); } return; } @@ -2528,7 +2532,7 @@ public class PolicyDBDao { getGroups.setParameter("pid", existingPolicy.getPolicyId()); groups = getGroups.getResultList(); }catch(Exception e){ - groups = new LinkedList(); + groups = new LinkedList<>(); } for(Object o : groups){ GroupEntity group = (GroupEntity)o; @@ -2997,6 +3001,13 @@ public class PolicyDBDao { } } } + if(policyXmlStream != null){ + try { + policyXmlStream.close(); + } catch (IOException e) { + logger.error("Exception Occured while closing input stream"+e); + } + } createPolicy(policy.policyAdapter, username, policyScope,finalName,policyDataString); } @@ -3104,7 +3115,7 @@ public class PolicyDBDao { PolicyLogger.error("We cannot get the group from the papEngine to delete policies"); } else { - Set newPolicySet = new HashSet(group.getPolicies().size()); + Set newPolicySet = new HashSet<>(group.getPolicies().size()); //a multiple of n runtime is faster than n^2, so I am using a hashset to do the comparison for(PDPPolicy pol: group.getPolicies()){ newPolicySet.add(pol.getId());