Describe the bug
We see occasional NullPointerExceptions propagated out of the recurly-client-java. The relevant observed stack trace is:
java.util.concurrent.ExecutionException: java.lang.NullPointerException: Cannot invoke "com.recurly.v3.Pager.getNext()" because "pager" is null
at java.base/java.util.concurrent.FutureTask.report(FutureTask.java:122)
at java.base/java.util.concurrent.FutureTask.get(FutureTask.java:191)
at com.sproutsocial.revenue.internal.account.v1.service.AccountServiceImpl.getAccountResponse(AccountServiceImpl.java:872)
at com.sproutsocial.revenue.internal.account.v1.service.AccountServiceImpl.getAccountsBatches(AccountServiceImpl.java:281)
at com.sproutsocial.revenue.internal.account.v1.service.AccountServiceImpl.lambda$getAccounts$0(AccountServiceImpl.java:239)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at com.sproutsocial.revenue.commons.multithreading.MdcThreadPoolExecutor$1.run(MdcThreadPoolExecutor.java:99)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
at java.base/java.lang.Thread.run(Thread.java:840)
Caused by: java.lang.NullPointerException: Cannot invoke "com.recurly.v3.Pager.getNext()" because "pager" is null
at com.recurly.v3.Pager.clone(Pager.java:93)
at com.recurly.v3.Pager.getNextPage(Pager.java:89)
at com.sproutsocial.revenue.internal.client.RecurlyClientImpl.executePaginatedQueryInEnv(RecurlyClientImpl.java:740)
at com.sproutsocial.revenue.internal.client.RecurlyClientImpl.getPaginatedEntitiesById(RecurlyClientImpl.java:685)
at com.sproutsocial.revenue.internal.client.RecurlyClientImpl.listInvoicesByAccountCode(RecurlyClientImpl.java:536)
at com.sproutsocial.revenue.internal.account.v1.service.AccountServiceImpl.lambda$getAccountResponse$6(AccountServiceImpl.java:835)
... 5 common frames omitted
Specifically of note:
Caused by: java.lang.NullPointerException: Cannot invoke "com.recurly.v3.Pager.getNext()" because "pager" is null
at com.recurly.v3.Pager.clone(Pager.java:93)
at com.recurly.v3.Pager.getNextPage(Pager.java:89)
Our theory is some sort of network exception prevents this.client.makeRequest from returning an instantiated pager object, leading to the NullPointerException within the clone method.
To Reproduce
This does not happen consistently or often (the rate has been a few times a month). Given the stack trace, this bug appears to be entirely within the context of the recurly-client-java code.
Expected behavior
The recurly java client does not encounter NullPointerExceptions, causing failed transactions.
Your Environment
- Which version of this library are you using?
<dependency>
<groupId>com.recurly.v3</groupId>
<artifactId>api-client</artifactId>
<version>4.51.0</version>
<exclusions>
<exclusion>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
</exclusion>
</exclusions>
</dependency>
- Which version of the language are you using?
Java 17
Describe the bug
We see occasional
NullPointerExceptions propagated out of therecurly-client-java. The relevant observed stack trace is:Specifically of note:
Our theory is some sort of network exception prevents this.client.makeRequest from returning an instantiated
pagerobject, leading to the NullPointerException within the clone method.To Reproduce
This does not happen consistently or often (the rate has been a few times a month). Given the stack trace, this bug appears to be entirely within the context of the
recurly-client-javacode.Expected behavior
The recurly java client does not encounter
NullPointerExceptions, causing failed transactions.Your Environment
Java 17