From c2128339ba046ceb7ab32954ae07dbb4b41d4e73 Mon Sep 17 00:00:00 2001 From: Abhishek Koneru Date: Thu, 31 May 2012 17:04:47 -0400 Subject: Fixes for Null_Returns Cases - 1 For Commit --- .../cmscore/authorization/AuthzSubsystem.java | 4 ++-- .../cmscore/cert/CrossCertPairSubsystem.java | 12 ++++++++--- .../netscape/cmscore/connector/HttpPKIMessage.java | 3 +-- .../cmscore/connector/RequestTransfer.java | 7 +------ .../src/com/netscape/cmscore/dbs/DBRegistry.java | 15 +++++--------- .../netscape/cmscore/ldap/LdapPredicateParser.java | 7 ++++--- .../netscape/cmscore/ldap/PublisherProcessor.java | 23 +++++++--------------- .../com/netscape/cmscore/logging/LogSubsystem.java | 4 ++++ .../cmscore/policy/PolicyPredicateParser.java | 8 +++++--- .../netscape/cmscore/security/CertificateInfo.java | 3 +++ .../com/netscape/cmscore/usrgrp/UGSubsystem.java | 13 +++++++++--- 11 files changed, 51 insertions(+), 48 deletions(-) (limited to 'base/common/src/com/netscape/cmscore') diff --git a/base/common/src/com/netscape/cmscore/authorization/AuthzSubsystem.java b/base/common/src/com/netscape/cmscore/authorization/AuthzSubsystem.java index 4ad6db528..2c092f91c 100644 --- a/base/common/src/com/netscape/cmscore/authorization/AuthzSubsystem.java +++ b/base/common/src/com/netscape/cmscore/authorization/AuthzSubsystem.java @@ -421,8 +421,8 @@ public class AuthzSubsystem implements IAuthzSubsystem { //String infoMsg = // "Shutting down authz manager instance " + mgr.getName(); //log(ILogger.LL_INFO, infoMsg); - - mgr.shutdown(); + if (mgr != null) + mgr.shutdown(); } mAuthzMgrPlugins.clear(); mAuthzMgrInsts.clear(); diff --git a/base/common/src/com/netscape/cmscore/cert/CrossCertPairSubsystem.java b/base/common/src/com/netscape/cmscore/cert/CrossCertPairSubsystem.java index 1aa53d9e4..dd7918bd5 100644 --- a/base/common/src/com/netscape/cmscore/cert/CrossCertPairSubsystem.java +++ b/base/common/src/com/netscape/cmscore/cert/CrossCertPairSubsystem.java @@ -454,10 +454,16 @@ public class CrossCertPairSubsystem implements ICrossCertPairSubsystem { } protected LDAPConnection getConn() throws ELdapException { - if (mLdapConnFactory != null) - return mLdapConnFactory.getConn(); + if (mLdapConnFactory != null) { + LDAPConnection conn = mLdapConnFactory.getConn(); + if (conn == null) { + throw new ELdapException("No Ldap Connection Available"); + } else { + return conn; + } + } - return null; + throw new ELdapException("Ldap Connection Factory is null"); } protected void returnConn(LDAPConnection conn) throws ELdapException { diff --git a/base/common/src/com/netscape/cmscore/connector/HttpPKIMessage.java b/base/common/src/com/netscape/cmscore/connector/HttpPKIMessage.java index ddf23378a..4b35662fa 100644 --- a/base/common/src/com/netscape/cmscore/connector/HttpPKIMessage.java +++ b/base/common/src/com/netscape/cmscore/connector/HttpPKIMessage.java @@ -73,11 +73,10 @@ public class HttpPKIMessage implements IHttpPKIMessage { + r.getRequestId().toString() + " requestStatus=" + reqStatus + " instance=" + r); String attrs[] = RequestTransfer.getTransferAttributes(r); - int len = attrs.length; String[] names = attrs; Object value = null; - for (int i = 0; i < len; i++) { + for (int i = 0; i < attrs.length; i++) { String key = names[i]; if (r.isSimpleExtDataValue(key)) { value = r.getExtDataInString(key); diff --git a/base/common/src/com/netscape/cmscore/connector/RequestTransfer.java b/base/common/src/com/netscape/cmscore/connector/RequestTransfer.java index baf076422..b3479aea0 100644 --- a/base/common/src/com/netscape/cmscore/connector/RequestTransfer.java +++ b/base/common/src/com/netscape/cmscore/connector/RequestTransfer.java @@ -91,12 +91,7 @@ public class RequestTransfer { v.addElement(k); } CMS.debug("RequestTransfer: attribute size=" + v.size()); - if (v.size() == 0) - return null; - String attrs[] = new String[v.size()]; - - v.copyInto(attrs); - return attrs; + return v.toArray(new String[v.size()]); } else { return transferAttributes; } diff --git a/base/common/src/com/netscape/cmscore/dbs/DBRegistry.java b/base/common/src/com/netscape/cmscore/dbs/DBRegistry.java index 63b00b6bf..2b6a63a62 100644 --- a/base/common/src/com/netscape/cmscore/dbs/DBRegistry.java +++ b/base/common/src/com/netscape/cmscore/dbs/DBRegistry.java @@ -457,25 +457,20 @@ public class DBRegistry implements IDBRegistry, ISubsystem { * Creates object from attribute set. */ public IDBObj createObject(LDAPAttributeSet attrs) - throws EBaseException { + throws EDBException { // map object class attribute to object LDAPAttribute attr = attrs.getAttribute("objectclass"); + if (attr == null) { + throw new EDBException(CMS.getLogMessage("CMS_DBS_MISSING_OBJECT_CLASS")); + } //CMS.debug("createObject: attrs " + attrs.toString()); attrs.remove("objectclass"); // sort the object class values - @SuppressWarnings("unchecked") - Enumeration vals = attr.getStringValues(); - Vector v = new Vector(); - - while (vals.hasMoreElements()) { - v.addElement(vals.nextElement()); - } - String s[] = new String[v.size()]; - v.copyInto(s); + String[] s = attr.getStringValueArray(); String sorted = sortAndConcate(s).toLowerCase(); NameAndObject no = mOCldapNames.get(sorted); diff --git a/base/common/src/com/netscape/cmscore/ldap/LdapPredicateParser.java b/base/common/src/com/netscape/cmscore/ldap/LdapPredicateParser.java index b0505c16b..71f889895 100644 --- a/base/common/src/com/netscape/cmscore/ldap/LdapPredicateParser.java +++ b/base/common/src/com/netscape/cmscore/ldap/LdapPredicateParser.java @@ -274,7 +274,7 @@ class PredicateTokenizer { return (currentIndex != -1); } - public String nextToken() { + public String nextToken() throws ELdapException { if (nextToken != null) { String toReturn = nextToken; @@ -322,8 +322,9 @@ class PredicateTokenizer { } } else { // Cannot happen; Assert here. - toReturn = null; - System.out.println("We shouldn't be here!"); + if (Debug.ON) + Debug.trace("Malformed expression: Null Token"); + throw new ELdapException(CMS.getUserMessage("CMS_LDAP_BAD_LDAP_EXPRESSION")); } if (toReturn == null) return null; diff --git a/base/common/src/com/netscape/cmscore/ldap/PublisherProcessor.java b/base/common/src/com/netscape/cmscore/ldap/PublisherProcessor.java index 62e4b8bef..ab99b4f06 100644 --- a/base/common/src/com/netscape/cmscore/ldap/PublisherProcessor.java +++ b/base/common/src/com/netscape/cmscore/ldap/PublisherProcessor.java @@ -493,7 +493,7 @@ public class PublisherProcessor implements //this is the only rule we support now LdapRule rule = (LdapRule) (mRuleInsts.get(name)); - if (rule.enabled() && rule.getType().equals(publishingType)) { + if (rule.enabled() && publishingType.equals(rule.getType())) { // check if the predicate match ILdapExpression exp = rule.getPredicate(); @@ -509,6 +509,7 @@ public class PublisherProcessor implements if (Debug.ON) Debug.trace("added rule " + name + " for " + publishingType); } + } return rules.elements(); } @@ -519,24 +520,13 @@ public class PublisherProcessor implements } Vector rules = new Vector(); - Enumeration e = mRuleInsts.keys(); + Enumeration e = mRuleInsts.elements(); while (e.hasMoreElements()) { - String name = e.nextElement(); - - if (name == null) { - if (Debug.ON) - Debug.trace("rule name is " + "null"); - return null; - } else { - if (Debug.ON) - Debug.trace("rule name is " + name); - } - //this is the only rule we support now - LdapRule rule = (LdapRule) (mRuleInsts.get(name)); + LdapRule rule = (LdapRule) e.nextElement(); - if (rule.enabled() && rule.getType().equals(publishingType)) { + if (rule.enabled() && publishingType.equals(rule.getType())) { // check if the predicate match ILdapExpression exp = rule.getPredicate(); @@ -549,9 +539,10 @@ public class PublisherProcessor implements rules.addElement(rule); if (Debug.ON) - Debug.trace("added rule " + name + " for " + publishingType + + Debug.trace("added rule " + rule.getInstanceName() + " for " + publishingType + " request: " + req.getRequestId()); } + } return rules.elements(); } diff --git a/base/common/src/com/netscape/cmscore/logging/LogSubsystem.java b/base/common/src/com/netscape/cmscore/logging/LogSubsystem.java index 9607cf892..82b515846 100644 --- a/base/common/src/com/netscape/cmscore/logging/LogSubsystem.java +++ b/base/common/src/com/netscape/cmscore/logging/LogSubsystem.java @@ -204,6 +204,10 @@ public class LogSubsystem implements ILogSubsystem { try { return cs.getString("pluginName", ""); } catch (EBaseException e) { + e.printStackTrace(); + return ""; + } catch (NullPointerException e) { + e.printStackTrace(); return ""; } } diff --git a/base/common/src/com/netscape/cmscore/policy/PolicyPredicateParser.java b/base/common/src/com/netscape/cmscore/policy/PolicyPredicateParser.java index f6c01b041..579d9ff5b 100644 --- a/base/common/src/com/netscape/cmscore/policy/PolicyPredicateParser.java +++ b/base/common/src/com/netscape/cmscore/policy/PolicyPredicateParser.java @@ -75,6 +75,7 @@ public class PolicyPredicateParser { Debug.trace("Malformed expression: " + predicateExpression); throw new EPolicyException(CMS.getUserMessage("CMS_POLICY_BAD_POLICY_EXPRESSION", predicateExpression)); } + IExpression current = parseExpression(token); boolean malformed = false; Vector expSet = new Vector(); @@ -276,7 +277,7 @@ class PredicateTokenizer { return (currentIndex != -1); } - public String nextToken() { + public String nextToken() throws EPolicyException { if (nextToken != null) { String toReturn = nextToken; @@ -324,8 +325,9 @@ class PredicateTokenizer { } } else { // Cannot happen; Assert here. - toReturn = null; - System.out.println("We shouldn't be here!"); + if (Debug.ON) + Debug.trace("Malformed Predicate Expression : No Tokens"); + throw new EPolicyException("Malformed Predicate Expression : No Tokens"); } if (toReturn == null) return null; diff --git a/base/common/src/com/netscape/cmscore/security/CertificateInfo.java b/base/common/src/com/netscape/cmscore/security/CertificateInfo.java index 914803223..040abc3c2 100644 --- a/base/common/src/com/netscape/cmscore/security/CertificateInfo.java +++ b/base/common/src/com/netscape/cmscore/security/CertificateInfo.java @@ -189,6 +189,9 @@ public abstract class CertificateInfo { String hashtype = (String) mProperties.get(ConfigConstants.PR_HASH_TYPE); algm = KeyCertUtil.getSigningAlgorithm(getKeyAlgorithm(), hashtype); + if (algm == null) { + throw new NoSuchAlgorithmException(); + } mProperties.put(Constants.PR_SIGNATURE_ALGORITHM, algm); } diff --git a/base/common/src/com/netscape/cmscore/usrgrp/UGSubsystem.java b/base/common/src/com/netscape/cmscore/usrgrp/UGSubsystem.java index 192f2f483..95e213541 100644 --- a/base/common/src/com/netscape/cmscore/usrgrp/UGSubsystem.java +++ b/base/common/src/com/netscape/cmscore/usrgrp/UGSubsystem.java @@ -1680,9 +1680,16 @@ public final class UGSubsystem implements IUGSubsystem { } protected LDAPConnection getConn() throws ELdapException { - if (mLdapConnFactory == null) - return null; - return mLdapConnFactory.getConn(); + if (mLdapConnFactory != null) { + LDAPConnection conn = mLdapConnFactory.getConn(); + if (conn == null) { + throw new ELdapException("No Ldap Connection Available"); + } else { + return conn; + } + } + + throw new ELdapException("Ldap Connection Factory is Unavailable"); } protected void returnConn(LDAPConnection conn) { -- cgit