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)