You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@santuario.apache.org by co...@apache.org on 2014/02/20 12:47:32 UTC

svn commit: r1570155 - in /santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/stax: ext/AbstractOutputProcessor.java impl/processor/output/AbstractSignatureOutputProcessor.java

Author: coheigea
Date: Thu Feb 20 11:47:31 2014
New Revision: 1570155

URL: http://svn.apache.org/r1570155
Log:
Avoiding some NPEs

Modified:
    santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/stax/ext/AbstractOutputProcessor.java
    santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/stax/impl/processor/output/AbstractSignatureOutputProcessor.java

Modified: santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/stax/ext/AbstractOutputProcessor.java
URL: http://svn.apache.org/viewvc/santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/stax/ext/AbstractOutputProcessor.java?rev=1570155&r1=1570154&r2=1570155&view=diff
==============================================================================
--- santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/stax/ext/AbstractOutputProcessor.java (original)
+++ santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/stax/ext/AbstractOutputProcessor.java Thu Feb 20 11:47:31 2014
@@ -249,11 +249,14 @@ public abstract class AbstractOutputProc
     }
 
     protected SecurePart securePartMatches(XMLSecStartElement xmlSecStartElement, Map<Object, SecurePart> secureParts) {
-        SecurePart securePart = secureParts.get(xmlSecStartElement.getName());
-        if (securePart == null) {
-            Attribute attribute = xmlSecStartElement.getAttributeByName(XMLSecurityConstants.ATT_NULL_Id);
-            if (attribute != null) {
-                securePart = secureParts.get(attribute.getValue());
+        SecurePart securePart = null;
+        if (secureParts != null) {
+            securePart = secureParts.get(xmlSecStartElement.getName());
+            if (securePart == null) {
+                Attribute attribute = xmlSecStartElement.getAttributeByName(XMLSecurityConstants.ATT_NULL_Id);
+                if (attribute != null) {
+                    securePart = secureParts.get(attribute.getValue());
+                }
             }
         }
         return securePart;

Modified: santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/stax/impl/processor/output/AbstractSignatureOutputProcessor.java
URL: http://svn.apache.org/viewvc/santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/stax/impl/processor/output/AbstractSignatureOutputProcessor.java?rev=1570155&r1=1570154&r2=1570155&view=diff
==============================================================================
--- santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/stax/impl/processor/output/AbstractSignatureOutputProcessor.java (original)
+++ santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/stax/impl/processor/output/AbstractSignatureOutputProcessor.java Thu Feb 20 11:47:31 2014
@@ -75,12 +75,14 @@ public abstract class AbstractSignatureO
     protected void doFinalInternal(OutputProcessorChain outputProcessorChain) throws XMLSecurityException, XMLStreamException {
         Map<Object, SecurePart> dynamicSecureParts =
                 outputProcessorChain.getSecurityContext().getAsMap(XMLSecurityConstants.SIGNATURE_PARTS);
-        Iterator<Map.Entry<Object, SecurePart>> securePartsMapIterator = dynamicSecureParts.entrySet().iterator();
-        while (securePartsMapIterator.hasNext()) {
-            Map.Entry<Object, SecurePart> securePartEntry = securePartsMapIterator.next();
-            final SecurePart securePart = securePartEntry.getValue();
-            if (securePart.getExternalReference() != null) {
-                digestExternalReference(outputProcessorChain, securePart);
+        if (dynamicSecureParts != null) {
+            Iterator<Map.Entry<Object, SecurePart>> securePartsMapIterator = dynamicSecureParts.entrySet().iterator();
+            while (securePartsMapIterator.hasNext()) {
+                Map.Entry<Object, SecurePart> securePartEntry = securePartsMapIterator.next();
+                final SecurePart securePart = securePartEntry.getValue();
+                if (securePart.getExternalReference() != null) {
+                    digestExternalReference(outputProcessorChain, securePart);
+                }
             }
         }
 
@@ -138,21 +140,23 @@ public abstract class AbstractSignatureO
     protected void verifySignatureParts(OutputProcessorChain outputProcessorChain) throws XMLSecurityException {
         List<SignaturePartDef> signaturePartDefs = getSignaturePartDefList();
         Map<Object, SecurePart> dynamicSecureParts = outputProcessorChain.getSecurityContext().getAsMap(XMLSecurityConstants.SIGNATURE_PARTS);
-        Iterator<Map.Entry<Object, SecurePart>> securePartsMapIterator = dynamicSecureParts.entrySet().iterator();
-        loop:
-        while (securePartsMapIterator.hasNext()) {
-            Map.Entry<Object, SecurePart> securePartEntry = securePartsMapIterator.next();
-            final SecurePart securePart = securePartEntry.getValue();
-
-            if (securePart.isRequired()) {
-                for (int i = 0; i < signaturePartDefs.size(); i++) {
-                    SignaturePartDef signaturePartDef = signaturePartDefs.get(i);
+        if (dynamicSecureParts != null) {
+            Iterator<Map.Entry<Object, SecurePart>> securePartsMapIterator = dynamicSecureParts.entrySet().iterator();
+            loop:
+            while (securePartsMapIterator.hasNext()) {
+                Map.Entry<Object, SecurePart> securePartEntry = securePartsMapIterator.next();
+                final SecurePart securePart = securePartEntry.getValue();
     
-                    if (signaturePartDef.getSecurePart() == securePart) {
-                        continue loop;
+                if (securePart.isRequired()) {
+                    for (int i = 0; i < signaturePartDefs.size(); i++) {
+                        SignaturePartDef signaturePartDef = signaturePartDefs.get(i);
+        
+                        if (signaturePartDef.getSecurePart() == securePart) {
+                            continue loop;
+                        }
                     }
+                    throw new XMLSecurityException("stax.signature.securePartNotFound", securePart.getName());
                 }
-                throw new XMLSecurityException("stax.signature.securePartNotFound", securePart.getName());
             }
         }
     }