Hello
I have a problem with Cache-Control headers after updating Spring from 3.0.1 to 3.0.2.
I have a contoller (without annotations) inheriting from MultiActionController :
The url mapping and the url rewriting are defined in the Spring configuration contextCode:public class JsonControler extends MultiActionController{ public ModelAndView getTheme(HttpServletRequest request, HttpServletResponse response) throws Exception { ModelAndView modelAndView = new ModelAndView(); List<MeaDTO> meaList = getService().getTheme(); modelAndView.addObject(RESPONSE,meaList); setCacheControl(response, getWebappConfig().getCacheControlByKey("json.getTheme")); return modelAndView; } protected void setCacheControl(HttpServletResponse response, final int pCacheValue) { if (pCacheValue != -1) { applyCacheSeconds(response, pCacheValue); } response.addHeader("Cache-Control", "stale-while-revalidate=" + webappConfig.getCacheStaleWhileRevalidate()); } ... }
file
Code:<bean id="urlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"> <property name="mappings"> <props> <prop key="/catalog/**/*.do-json">jsonControler</prop> </props> </property> </bean>When I specify the cache-control headers with setCacheControl (=> applyCacheSeconds from WebContentGenerator spring bean) there are inconsistent headers.Code:<rule match-type="regex"> <from>^/catalog/home/theme.json$</from> <to>getTheme.do-json</to> </rule>
In Spring 3.0.1, it's OK:
In Spring 3.0.2, it's KO, there are 2 expiration dates and additional cache-control parameters :Code:Expires : Tue, 16 Aug 2011 xxxx GMT Cache-Control:max-age=1800, stale-while-revalidate=3600
Is it a regression of Spring 3.0.2 ?Code:Expires : Tue, 16 Aug 2011 xxxx GMT, Tue, 01 Jan 1970 xxx GMT Cache-Control:max-age=1800, stale-while-revalidate=3600, no-cache, no-store, max-age=0


Reply With Quote
