I'm using Tapestry 5.3.7, and
I have a Tapestry component that makes an ajax call every 30 seconds.
Most of the requests succeed,
But every so often a request fails seemingly at random intervals.
I've tracked the problem down to the response object being null in
JSONObjectEventResultProcessor.processResultValue,
but, I cannot for the life of me figure out why the response
is null sometimes.
public void processResultValue(JSONObject value) throws IOException
ContentType contentType = new
ContentType(InternalConstants.JSON_MIME_TYPE, outputEncoding);
*PrintWriter pw = response.getPrintWriter(contentType.toString()); <-
The response is null!*
value.print(pw, compactJSON);
pw.close();
Here is the stacktrace:
Caused by: java.lang.NullPointerException: Unable to delegate method
invocation to property 'response' of <Proxy for
RequestGlobals(org.apache.tapestry5.services.RequestGlobals)>, because the
property is null.
at $Response_aaab8be2d799.readProperty(Unknown Source)
at $Response_aaab8be2d799.getPrintWriter(Unknown Source)
at $Response_aaab8be2d744.getPrintWriter(Unknown Source)
at
org.apache.tapestry5.internal.services.JSONObjectEventResultProcessor.processResultValue(JSONObjectEventResultProcessor.java:58)
at
org.apache.tapestry5.internal.services.JSONObjectEventResultProcessor.processResultValue(JSONObjectEventResultProcessor.java:33)
at $ComponentEventResultProcessor_aaab8be2dd62.processResultValue(Unknown
Source)
at $ComponentEventResultProcessor_aaab8be2dd15.processResultValue(Unknown
Source)
at
org.apache.tapestry5.internal.services.AjaxComponentEventRequestHandler$1.processResultValue(AjaxComponentEventRequestHandler.java:80)
at
org.apache.tapestry5.internal.services.ComponentResultProcessorWrapper.handleResult(ComponentResultProcessorWrapper.java:47)
at
org.apache.tapestry5.internal.structure.ComponentPageElementImpl$6.handleResult(ComponentPageElementImpl.java:1089)
at
org.apache.tapestry5.internal.services.EventImpl$1.invoke(EventImpl.java:89)
at
org.apache.tapestry5.internal.services.EventImpl$1.invoke(EventImpl.java:86)
at
org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74)
I have a Tapestry component that makes an ajax call every 30 seconds.
Most of the requests succeed,
But every so often a request fails seemingly at random intervals.
I've tracked the problem down to the response object being null in
JSONObjectEventResultProcessor.processResultValue,
but, I cannot for the life of me figure out why the response
is null sometimes.
public void processResultValue(JSONObject value) throws IOException
ContentType contentType = new
ContentType(InternalConstants.JSON_MIME_TYPE, outputEncoding);
*PrintWriter pw = response.getPrintWriter(contentType.toString()); <-
The response is null!*
value.print(pw, compactJSON);
pw.close();
Here is the stacktrace:
Caused by: java.lang.NullPointerException: Unable to delegate method
invocation to property 'response' of <Proxy for
RequestGlobals(org.apache.tapestry5.services.RequestGlobals)>, because the
property is null.
at $Response_aaab8be2d799.readProperty(Unknown Source)
at $Response_aaab8be2d799.getPrintWriter(Unknown Source)
at $Response_aaab8be2d744.getPrintWriter(Unknown Source)
at
org.apache.tapestry5.internal.services.JSONObjectEventResultProcessor.processResultValue(JSONObjectEventResultProcessor.java:58)
at
org.apache.tapestry5.internal.services.JSONObjectEventResultProcessor.processResultValue(JSONObjectEventResultProcessor.java:33)
at $ComponentEventResultProcessor_aaab8be2dd62.processResultValue(Unknown
Source)
at $ComponentEventResultProcessor_aaab8be2dd15.processResultValue(Unknown
Source)
at
org.apache.tapestry5.internal.services.AjaxComponentEventRequestHandler$1.processResultValue(AjaxComponentEventRequestHandler.java:80)
at
org.apache.tapestry5.internal.services.ComponentResultProcessorWrapper.handleResult(ComponentResultProcessorWrapper.java:47)
at
org.apache.tapestry5.internal.structure.ComponentPageElementImpl$6.handleResult(ComponentPageElementImpl.java:1089)
at
org.apache.tapestry5.internal.services.EventImpl$1.invoke(EventImpl.java:89)
at
org.apache.tapestry5.internal.services.EventImpl$1.invoke(EventImpl.java:86)
at
org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74)