KB Article #181897
XML Signature Generation Filter fails with the error CircuitAbortException: nested fault: null
Problem
The XML Signature Generation filter fails with an exception similar to the following:
ERROR 11/2/21, 14:24:19.914 java exception: com.vordel.circuit.CircuitAbortException: nested fault: null at com.vordel.circuit.xml.NodeLocatorUtility.locateNodes(NodeLocatorUtility.java:67) at com.vordel.security.sig.TemplateFactory.createSignatureTemplate(TemplateFactory.java:77) at com.vordel.security.sig.TemplateFactory.generateAndInsertSignatureTemplate(TemplateFactory.java:509) at com.vordel.circuit.sig.GenerateSignatureProcessor.invoke(GenerateSignatureProcessor.java:635) at com.vordel.circuit.InvocationEngine.invokeFilter(InvocationEngine.java:149) at com.vordel.circuit.InvocationEngine.invokeCircuit(InvocationEngine.java:41) at com.vordel.circuit.CircuitDelegateProcessor.invoke(CircuitDelegateProcessor.java:46) at com.vordel.circuit.InvocationEngine.invokeFilter(InvocationEngine.java:149) at com.vordel.circuit.DelegatingProcessor.callCircuit(DelegatingProcessor.java:84) at com.vordel.circuit.DelegatingProcessor.callCircuit(DelegatingProcessor.java:77) at com.vordel.circuit.httpclient.HTTPClientProcessor.invoke(HTTPClientProcessor.java:105) at com.vordel.circuit.InvocationEngine.invokeFilter(InvocationEngine.java:149) at com.vordel.circuit.InvocationEngine.invokeCircuit(InvocationEngine.java:41) at com.vordel.circuit.InvocationEngine.recordCircuitInvocation(InvocationEngine.java:279) at com.vordel.circuit.InvocationEngine.processMessage(InvocationEngine.java:241) at com.vordel.circuit.SyntheticCircuitChainProcessor.invoke(SyntheticCircuitChainProcessor.java:65) at com.vordel.dwe.http.HTTPPlugin.processRequest(HTTPPlugin.java:417) at com.vordel.dwe.http.HTTPPlugin.invokeDispose(HTTPPlugin.java:443) at com.vordel.dwe.http.HTTPPlugin.invoke(HTTPPlugin.java:135) Caused by: java.lang.NullPointerException at com.vordel.common.xml.XPathExecutor.getNodes(XPathExecutor.java:111) at com.vordel.circuit.xml.NodeLocatorUtility.locateNodes(NodeLocatorUtility.java:61) ... 18 more
Resolution
This happens when the XPaths in the "What to sign" section of the filter do not match any content in the XML document being signed. Because it is impossible to sign nothing, the filter fails with this error indicating that no data was present to sign. To resolve this error, ensure that the XPaths in the configuration are always able to locate some content for the filter to sign. For example, you might use an XML Schema Validation filter to ensure that the document has the expected format, including the nodes you wish to sign to avoid even attempting to sign XML that isn't in the expected format.