Taken from
http://forums.opensymphony.com/thread.jspa?threadID=77073&messageID=141588#141588
I've just found a couple of snags in this area. We're using OSCache 2.3.1 by the way. I've noticed that although the documentation says that the default for the max-age parameter is 60, the log message in CacheFilter.init() (line 349) says that oscache is defaulting to 'time' which isn't the case - it does actually default to 60 seconds as per the docs.
Also, while looking at this code I noticed that if a negative integer is specified as the parameter value, not only is the separate log message wrong here, saying it's defaulting to 'time' when it isn't, but the cacheControlMaxAge field is specifically set to 60 when it should be set to -60 because of the strange sign-reversal that happens in the CacheHttpServletResponseWrapper constructor when using the value. This would result in max-age values of -60 being sent to the browser.