It seems that your cookie is bigger than the maximum admitted(which is 4k).
2011/11/28 Debraj Mallick <sridebrajmall...@gmail.com> > *my action : * > > public class SetCookieAction extends ActionSupport implements > ServletRequestAware, ServletResponseAware { > > private List<IngredientBean> ingredientBeanList; > > protected HttpServletResponse servletResponse; > > @Override > public void setServletResponse(HttpServletResponse servletResponse) { > this.servletResponse = servletResponse; > } > > protected HttpServletRequest servletRequest; > > @Override > public void setServletRequest(HttpServletRequest servletRequest) { > this.servletRequest = servletRequest; > } > > public String AddCookie() { > > Gson gson = new Gson(); > ingredientBeanList = ingredientService.obtainAllIngredientsByUserId(new > Long(2)); > String gstr = gson.toJson(ingredientBeanList); > String str = Base64.encode(gstr.getBytes()); > Cookie mycookie = new Cookie("ingredientList", str); > mycookie.setMaxAge(60*60*24*365); > servletResponse.addCookie(mycookie); > } > > public IngredientService getIngredientService() { > return ingredientService; > } > public void setIngredientService(IngredientService ingredientService) { > this.ingredientService = ingredientService; > } > } > > *stack trace:* > * > * > org.apache.catalina.connector.CoyoteAdapter service > SEVERE: An exception or error occurred in the container during the request > processing > java.lang.ArrayIndexOutOfBoundsException: 8192 > at > > org.apache.coyote.http11.AbstractOutputBuffer.write(AbstractOutputBuffer.java:522) > at > > org.apache.coyote.http11.AbstractOutputBuffer.write(AbstractOutputBuffer.java:429) > at > > org.apache.coyote.http11.AbstractOutputBuffer.sendHeader(AbstractOutputBuffer.java:395) > at > > org.apache.coyote.http11.AbstractHttp11Processor.prepareResponse(AbstractHttp11Processor.java:965) > at > > org.apache.coyote.http11.AbstractHttp11Processor.action(AbstractHttp11Processor.java:739) > at org.apache.coyote.Response.action(Response.java:170) > at org.apache.coyote.Response.sendHeaders(Response.java:350) > at > org.apache.catalina.connector.OutputBuffer.doFlush(OutputBuffer.java:315) > at org.apache.catalina.connector.OutputBuffer.close(OutputBuffer.java:275) > at org.apache.catalina.connector.Response.finishResponse(Response.java:501) > at > org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:426) > at > org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:317) > at > > org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:204) > at > > org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:311) > at > > java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) > at > > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) > at java.lang.Thread.run(Thread.java:662) > org.apache.coyote.http11.AbstractHttp11Processor endRequest > SEVERE: Error finishing response > java.lang.ArrayIndexOutOfBoundsException > at java.lang.System.arraycopy(Native Method) > at > > org.apache.coyote.http11.AbstractOutputBuffer.write(AbstractOutputBuffer.java:491) > at > > org.apache.coyote.http11.AbstractOutputBuffer.sendStatus(AbstractOutputBuffer.java:331) > at > > org.apache.coyote.http11.AbstractHttp11Processor.prepareResponse(AbstractHttp11Processor.java:952) > at > > org.apache.coyote.http11.AbstractHttp11Processor.action(AbstractHttp11Processor.java:739) > at org.apache.coyote.Response.action(Response.java:168) > at > > org.apache.coyote.http11.AbstractOutputBuffer.endRequest(AbstractOutputBuffer.java:308) > at > > org.apache.coyote.http11.InternalOutputBuffer.endRequest(InternalOutputBuffer.java:160) > at > > org.apache.coyote.http11.AbstractHttp11Processor.endRequest(AbstractHttp11Processor.java:990) > at > org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:350) > at > > org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:204) > at > > org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:311) > at > > java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) > at > > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) > at java.lang.Thread.run(Thread.java:662) > org.apache.catalina.connector.CoyoteAdapter service > SEVERE: An exception or error occurred in the container during the request > processing > java.lang.ArrayIndexOutOfBoundsException > org.apache.coyote.http11.AbstractHttp11Processor endRequest > SEVERE: Error finishing response > java.lang.ArrayIndexOutOfBoundsException > at java.lang.System.arraycopy(Native Method) > at > > org.apache.coyote.http11.AbstractOutputBuffer.write(AbstractOutputBuffer.java:491) > at > > org.apache.coyote.http11.AbstractOutputBuffer.sendStatus(AbstractOutputBuffer.java:331) > at > > org.apache.coyote.http11.AbstractHttp11Processor.prepareResponse(AbstractHttp11Processor.java:952) > at > > org.apache.coyote.http11.AbstractHttp11Processor.action(AbstractHttp11Processor.java:739) > at org.apache.coyote.Response.action(Response.java:168) > at > > org.apache.coyote.http11.AbstractOutputBuffer.endRequest(AbstractOutputBuffer.java:308) > at > > org.apache.coyote.http11.InternalOutputBuffer.endRequest(InternalOutputBuffer.java:160) > at > > org.apache.coyote.http11.AbstractHttp11Processor.endRequest(AbstractHttp11Processor.java:990) > at > org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:350) > at > > org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:204) > at > > org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:182) > at > > org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:311) > at > > java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) > at > > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) > at java.lang.Thread.run(Thread.java:662) > > i am using struts2.2.3.1, tomcat7 and STS >