Skip to main content

This content has been archived and is no longer being updated. Links may not function; however, this content may be relevant to outdated versions of the product.

Support Article

SSL throwing NPE at CompositeX509TrustManager.getAcceptedIssuers

SA-39528

Summary



User experiences an issue when calling a secure URL from HTTP/SOAP. The server responds with an HTTP 404 code, indicating that the resource does not exist.
If user tests the connectivity from a Connect-HTTP/SOAP rule, it works fine but when the user tries to call the service from an activity, a 404 not found error is observed.


Error Messages

2017-06-12 07:32:18,457 [fault (self-tuning)'] [TABTHREAD1] [ ] [ NBAXX:01.01.08] (Location.XX_Data_Stores.Action) INFO server.systems.private|11.11.1111 Name- |nGetCollectPlusStoreLocation contains the following Request Header:
<ns1:RequestHeader xmlns:ns1="http://acme/schema/RequestHeader/2/2"> <ns1:service>GetCollectPlusStoreLocation</ns1:service> <ns1:operation>GetAddress</ns1:operation> <ns1:version>2.0</ns1:version> <ns1:conversationID>uuid:b4591b24-cedd-410f-ae87-054b3616d669</ns1:conversationID> <ns1:requestID>uuid:8d70289c-b656-4542-9d4a-cf79f5562dfa</ns1:requestID> <ns1:messageID>uuid:1c722699-a918-456a-a65e-1881f8198228</ns1:messageID> <ns1:requestTimestamp>2017-06-12T06:32:18.265Z</ns1:requestTimestamp> <ns1:activityName>PEGA</ns1:activityName> <ns1:senderURI>PEGA</ns1:senderURI> <ns1:originatorURI>PEGA</ns1:originatorURI> </ns1:RequestHeader>
2017-06-12 07:32:18,457 [fault (self-tuning)'] [TABTHREAD1] [ ] [ NBAXX:01.01.08] (Location.XX_Data_Stores.Action) INFO -server
|11.11.1111 -
GetCollectPlusStoreLocation contains the following Request Body :
<ns1:GetCollectPlusStoreLocationRequest xmlns:ns1="http://acme/schema/GetCollectPlusStoreLocation/1/0"> <ns1:postcode>HA1 1JT</ns1:postcode> <ns1:maximumNumberOfRecords>2</ns1:maximumNumberOfRecords> </ns1:GetCollectPlusStoreLocationRequest>
2017-06-12 07:32:19,665 [fault (self-tuning)'] [TABTHREAD1] [ ] [ NBAXX:01.01.08] ( internal.mgmt.Executable) ERROR server.systems.private|11.11.1111|Rule-Connect-SOAP.XX-Int-XX-GetCollectPlus-GetCollectPlusStoreLocation.GetCollectPlusStoreLocation test - Exception
com.pega.pegarules.pub.services.ResourceUnavailableException: SOAP service failed
at com.pegarules.generated.activity.ra_action_invokeaxis2_96911c1c9533c422fe77e9255f2fdd9a.step15_circum0(ra_action_invokeaxis2_96911c1c9533c422fe77e9255f2fdd9a.java:3979)


Caused by: javax.net.ssl.SSLException: java.lang.NullPointerException
at sun.security.ssl.Alerts.getSSLException(Alerts.java:208)
at sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1884)

Caused by: java.lang.NullPointerException
at com.pega.pegarules.integration.engine.internal.ssl.CompositeX509TrustManager.getAcceptedIssuers(CompositeX509TrustManager.java:178)
at sun.security.ssl.AbstractTrustManagerWrapper.checkAlgorithmConstraints(SSLContextImpl.java:926)
at sun.security.ssl.AbstractTrustManagerWrapper.checkAdditionalTrust(SSLContextImpl.java:872)
at sun.security.ssl.AbstractTrustManagerWrapper.checkServerTrusted(SSLContextImpl.java:814)
at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1323)
at sun.security.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:153)
at sun.security.ssl.Handshaker.processLoop(Handshaker.java:868)
at sun.security.ssl.Handshaker.process_record(Handshaker.java:804)
at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1016)
at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1312)
at sun.security.ssl.SSLSocketImpl.writeRecord(SSLSocketImpl.java:702)

at weblogic.work.ExecuteThread.run(ExecuteThread.java:263)
Caused by: com.pega.apache.http.NoHttpResponseException: The target server failed to respond
at com.pega.apache.http.impl.conn.DefaultResponseParser.parseHead(DefaultResponseParser.java:101)


Steps to Reproduce



Configure Connect-SOAP with security profile that references truststore.

Root Cause



A defect in Pegasystems’ code or rules that does not account for possible null pointer in array returned from getAcceptedIssuers().


Resolution

Apply HFix-35196

Published August 8, 2017 - Updated October 8, 2020

Was this useful?

0% found this useful

Have a question? Get answers now.

Visit the Collaboration Center to ask questions, engage in discussions, share ideas, and help others.

We'd prefer it if you saw us at our best.

Pega Community has detected you are using a browser which may prevent you from experiencing the site as intended. To improve your experience, please update your browser.

Close Deprecation Notice