You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commons-dev@ws.apache.org by sc...@apache.org on 2010/03/16 22:23:01 UTC

svn commit: r923983 - /webservices/commons/trunk/modules/neethi/src/main/java/org/apache/neethi/PolicyEngine.java

Author: scheu
Date: Tue Mar 16 21:23:01 2010
New Revision: 923983

URL: http://svn.apache.org/viewvc?rev=923983&view=rev
Log:
Quick change to avoid NPE when an element does not have a namespace.

Modified:
    webservices/commons/trunk/modules/neethi/src/main/java/org/apache/neethi/PolicyEngine.java

Modified: webservices/commons/trunk/modules/neethi/src/main/java/org/apache/neethi/PolicyEngine.java
URL: http://svn.apache.org/viewvc/webservices/commons/trunk/modules/neethi/src/main/java/org/apache/neethi/PolicyEngine.java?rev=923983&r1=923982&r2=923983&view=diff
==============================================================================
--- webservices/commons/trunk/modules/neethi/src/main/java/org/apache/neethi/PolicyEngine.java (original)
+++ webservices/commons/trunk/modules/neethi/src/main/java/org/apache/neethi/PolicyEngine.java Tue Mar 16 21:23:01 2010
@@ -24,11 +24,14 @@ import org.apache.axiom.om.OMAttribute;
 import org.apache.axiom.om.OMElement;
 import org.apache.axiom.om.OMNamespace;
 import org.apache.axiom.om.impl.llom.factory.OMXMLBuilderFactory;
+import org.apache.neethi.PolicyEngine;
 import org.apache.neethi.builders.AssertionBuilder;
 import javax.xml.namespace.QName;
 import javax.xml.stream.XMLInputFactory;
 import java.io.InputStream;
 import java.util.Iterator;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
 
 /**
  * PolicyEngine provides set of methods to create a Policy object from an
@@ -39,6 +42,7 @@ import java.util.Iterator;
  */
 public class PolicyEngine {
 
+    private static final Log log = LogFactory.getLog(PolicyEngine.class);
     public static final String POLICY_NAMESPACE = "http://schemas.xmlsoap.org/ws/2004/09/policy";
 
     public static final String POLICY = "Policy";
@@ -199,7 +203,16 @@ public class PolicyEngine {
                 .hasNext();) {
             childElement = (OMElement) iterator.next();
 
-            if (Constants.URI_POLICY_NS.equals(childElement.getNamespace()
+            if (childElement == null || 
+                    childElement.getNamespace() == null) {
+                if (log.isDebugEnabled()) {
+                    try {
+                        log.debug("Skipping bad policy element " + childElement);
+                    } catch (Throwable t) {
+                        log.debug("Problem occurred while logging trace " + t);
+                    }
+                }
+            } else if (Constants.URI_POLICY_NS.equals(childElement.getNamespace()
                     .getNamespaceURI())) {
 
                 if (Constants.ELEM_POLICY.equals(childElement.getLocalName())) {