I have created a web application which loads the core
functionality into application scope as an object. The
application.cfc file instantiates the object if it isn't already
initialized, and then parses the URL to establish various variables
which are utilized to control database queries and layout templates
to include.
Everything works fine, but when browsing the site, if a page
sits for a minute or two on screen (i.e., I go pour a cup of coffee
and return to my computer), then a new link selected, or a page
refresh called, the application occasionally throws the
java.lang.NullPointerException. The details of the error reveal
that the following line is creating the error:
<cfset basicCopy =
application.ciCMS.getBasicCopy(#page#)>
Apparently, the variable "page" is somehow expiring, lapsing,
disappearing? As I said earlier in this post, within my
application.cfc, in the "OnRequestStart" function, I parse the URL
to establish a number of variables, including "page". I even set a
param for the "page" variable, with a default value, to handle
cases where no "page" is passed in the URL.
As I said, this only happens if the page has been sitting for
a minute or more (I don't have a precise time frame), and then a
new link is selected or page refresh called. After the error
displays, another refresh loads the application perfectly, and it
continues to function fine until it is left alone for a few
minutes.
I can provide more details, including the full error dump, if
anyone wants to see it.
My troubleshooting so far: I have introduced cfheader
cache-control and expires code to block browser caching, meta tag
cache-control, played around with the OnRequestStart function, all
to no avail.
Thanks in advance!