[ 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