2

In one of my clients logs I've seen an exception from Sun classes. The client uses OpenJDK 1.8.0_91.

I've tried to reproduce it without any luck.

From our logs, it seems like I'm getting the exception during Shutdown of the JVM (in ShutdownHook).

Any ideas on how to solve? I've tried to have a look at the source code but for some reason I couldn't find it.

Here's the stack trace:

    2016-07-08 11:07:58,426 ERROR [Thread-0] [HttpClient] Failed to send 'POST' request to 'https://prod-x-gw.mycompany.co/api/v2/testDoMagic/'. Error: java.lang.NullPointerException
java.lang.NullPointerException: null
    at sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1158) ~[na:1.8.0_91]
    at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:999) ~[na:1.8.0_91]
    at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:177) ~[na:1.8.0_91]
    at sun.net.www.protocol.http.HttpURLConnection.getOutputStream0(HttpURLConnection.java:1283) ~[na:1.8.0_91]
    at sun.net.www.protocol.http.HttpURLConnection.getOutputStream(HttpURLConnection.java:1258) ~[na:1.8.0_91]
    at sun.net.www.protocol.https.HttpsURLConnectionImpl.getOutputStream(HttpsURLConnectionImpl.java:250) ~[na:1.8.0_91]
    at com.my.company.HttpClient.writeRequestBodyToOutputStream(HttpClient.java:152) ~[na:na]
    at com.my.company.HttpClient.sendRequest(HttpClient.java:52) ~[na:na]
    at com.my.company.JsonClient.sendHttpRequest(JsonClient.java:187) [na:na]
    at com.my.company.JsonClient.postRequest(JsonClient.java:92) [na:na]
    at com.my.company.JsonClient.postRequest(JsonClient.java:86) [na:na]
    at com.my.company.DoMagicServiceProxy.sendRequest(DoMagicServiceProxy.java:59) [na:na]
    at com.my.company.DoMagicServiceProxy.submitDoMagic(DoMagicServiceProxy.java:48) [na:na]
    at com.my.company.DoMagicQueueSender$2.process(DoMagicQueueSender.java:108) [na:na]
    at com.mycompany..commons.ChunksProcessor.processAsChunks(ChunksProcessor.java:35) [na:na]
    at com.my.company.DoMagicQueueSender$1.execute(DoMagicQueueSender.java:89) [na:na]
    at com.my.company.DoMagicQueueSender.shutdown(DoMagicQueueSender.java:46) [na:na]
    at com.mycompany.DoMagicManager.shutDown(DoMagicManager.java:77) [na:na]
    at com.mycompany.AM.shutdown(AM.java:145) [na:na]
    at com.mycompany.AM.access$000(AM.java:17) [na:na]
    at com.mycompany.AM$1.run(AM.java:157) [na:na]
2016-07-08 11:07:58,437 ERROR [Thread-0] [DoMagicServiceProxy] Failed while trying to submit DoMagic. Error:
java.lang.RuntimeException: Failed to send 'POST' request to 'https://prod-x-gw.mycompany.co/api/v2/testDoMagic/'. Error: java.lang.NullPointerException
    at com.my.company.HttpClient.sendRequest(HttpClient.java:70) ~[na:na]
    at com.my.company.JsonClient.sendHttpRequest(JsonClient.java:187) ~[na:na]
    at com.my.company.JsonClient.postRequest(JsonClient.java:92) ~[na:na]
    at com.my.company.JsonClient.postRequest(JsonClient.java:86) ~[na:na]
    at com.my.company.DoMagicServiceProxy.sendRequest(DoMagicServiceProxy.java:59) ~[na:na]
    at com.my.company.DoMagicServiceProxy.submitDoMagic(DoMagicServiceProxy.java:48) ~[na:na]
    at com.my.company.DoMagicQueueSender$2.process(DoMagicQueueSender.java:108) [na:na]
    at com.mycompany.commons.ChunksProcessor.processAsChunks(ChunksProcessor.java:35) [na:na]
    at com.my.company.DoMagicQueueSender$1.execute(DoMagicQueueSender.java:89) [na:na]
    at com.my.company.DoMagicQueueSender.shutdown(DoMagicQueueSender.java:46) [na:na]
    at com.mycompany.DoMagicManager.shutDown(DoMagicManager.java:77) [na:na]
    at com.mycompany.AM.shutdown(AM.java:145) [na:na]
    at com.mycompany.AM.access$000(AM.java:17) [na:na]
    at com.mycompany.AM$1.run(AM.java:157) [na:na]
Caused by: java.lang.NullPointerException: null
    at sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1158) ~[na:1.8.0_91]
    at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:999) ~[na:1.8.0_91]
    at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:177) ~[na:1.8.0_91]
    at sun.net.www.protocol.http.HttpURLConnection.getOutputStream0(HttpURLConnection.java:1283) ~[na:1.8.0_91]
    at sun.net.www.protocol.http.HttpURLConnection.getOutputStream(HttpURLConnection.java:1258) ~[na:1.8.0_91]
    at sun.net.www.protocol.https.HttpsURLConnectionImpl.getOutputStream(HttpsURLConnectionImpl.java:250) ~[na:1.8.0_91]
    at com.my.company.HttpClient.writeRequestBodyToOutputStream(HttpClient.java:152) ~[na:na]
    at com.my.company.HttpClient.sendRequest(HttpClient.java:52) ~[na:na]
    ... 13 common frames omitted

Any help will be appreciated.

Cheers,

Nadav

nadavy
  • 1,755
  • 1
  • 18
  • 33
  • Make a clause in the contract next time, that your program is only guaranteed to work with Oracles JDK. Also, is something working not as intended, or is the exception only 'cosmetic'? – Coderino Javarino Jul 11 '16 at 06:52
  • @CoderinoJavarino - thanks for your comment. Basically it has to work in both types of JDKs. Regarding the exception - something isn't working. I get send the rest of the data during Shutdown, so we are losing data. – nadavy Jul 11 '16 at 07:27

0 Answers0