[ 
https://issues.apache.org/jira/browse/JSPF-111?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

aleksey updated JSPF-111:
-------------------------
    Component/s: Core
                     (was: Parser)

> NPE when setting SPFResult
> --------------------------
>
>                 Key: JSPF-111
>                 URL: https://issues.apache.org/jira/browse/JSPF-111
>             Project: James jSPF
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: master
>         Environment: Java: 21
> Spring Boot: 3.2.4
>            Reporter: aleksey
>            Priority: Major
>
> Hey, guys! Good to see you again. And I need your help again. When I am using 
> *apache-jspf-resolver* version *1.0.4* I am experiencing threads that start 
> spawning and hang in the *waiting* state. Here is a sample code that 
> reproduces the error:
> {code:java}
> import org.apache.james.jspf.executor.SPFResult;
> import org.apache.james.jspf.impl.DefaultSPF;
> import org.apache.james.jspf.impl.SPF;
> class SpfVerifierTest {
>     public static void main(String[] args) {
>         String ipAddress = "103.52.180.162";
>         String hostName = "FMTA1-162.ncdelivery04.com";
>         String from = 
> "17191683732756478-181603-1-mxscout....@delivery.forumofsecrets.com";
>         final SPF spfChecker = new DefaultSPF();
>         spfChecker.setUseBestGuess(true);
>         SPFResult spfResult = spfChecker.checkSPF(ipAddress, from, hostName);
>         spfResult.getResult();
>     }
> } {code}
> java.util.concurrent.CompletionException is thrown when calling
> {code:java}
> dnsProbe.getRecordsAsync(cont.getRequest()){code}
> The cause of this exception is org.xbill.DNS.lookup.NoSuchRRSetException.
> Here are some details from the Intellj IDEA:
> {code:java}
> cause = {NoSuchRRSetException@6039} 
> "org.xbill.DNS.lookup.NoSuchRRSetException"
>  name = {Name@6045} "eapi.world.netcorecloud.net."
>  type = 99
>  backtrace = {Object[7]@6046} 
>  detailMessage = null
>  cause = {NoSuchRRSetException@6039} 
> "org.xbill.DNS.lookup.NoSuchRRSetException"
>  stackTrace = {StackTraceElement[19]@6048} 
>  depth = 19
>  suppressedExceptions = {Collections$EmptyList@6041}  size = 0 {code}
> This exception reaches the java.util.concurrent.CompletionStage#exceptionally 
> method inside the 
> org.apache.james.jspf.executor.AsynchronousSPFExecutor#handleCont method. 
> Where we're trying to set the spf result. But SPFSession contains null as the 
> value of the currentResultExpanded field so NullPointerException is thrown 
> here:
> {code:java}
> org.apache.james.jspf.executor.SPFResult
> private String generateHeader(String result, SPFSession spfData) { 
> ...       
> if (result.equals(SPFErrorConstants.PASS_CONV)) { ... } // result is null
> ...
> } {code}
> This leaves FutureSPFResult in a broken state and causes the calling thread 
> to fall asleep forever.
> It seems that the cause of this problem appeared with this 
> [commit|https://github.com/apache/james-jspf/commit/e188ef5db6a76dc687faa0d464eabc06c4896339]



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org
For additional commands, e-mail: server-dev-h...@james.apache.org

Reply via email to