[MGNLCACHE-201] GZipFilter tries to manipulate with already committed response Created: 02/Nov/18 Updated: 16/Mar/21 Resolved: 16/Mar/21 |
|
| Status: | Closed |
| Project: | Cache Modules |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | Bug | Priority: | Neutral |
| Reporter: | Milan Divilek | Assignee: | Unassigned |
| Resolution: | Won't Do | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Issue Links: |
|
||||||||
| Template: |
|
||||||||
| Acceptance criteria: |
Empty
|
||||||||
| Task DoD: |
[ ]*
Doc/release notes changes? Comment present?
[ ]*
Downstream builds green?
[ ]*
Solution information and context easily available?
[ ]*
Tests
[ ]*
FixVersion filled and not yet released
[ ] 
Architecture Decision Record (ADR)
|
||||||||
| Bug DoR: |
[ ]*
Steps to reproduce, expected, and actual results filled
[ ]*
Affected version filled
|
||||||||
| Description |
|
This is not problem on Tomcat (which has mechanism which just ignores such a manipulation), but it's problem for example on websphere liberty, where all of this manipulations are logged as warning or it leads to Invalid state exception. Invalid state exception
[11/2/18 15:59:30:350 CET] 00000346 id=00000000 com.ibm.ws.webcontainer.srt.SRTServletResponse W setStatus WARNING: Cannot set status. Response already committed.
[11/2/18 15:59:30:530 CET] 00000346 id=00000000 com.ibm.ws.webcontainer.webapp.WebApp E reportRecursiveError Error Page Exception:
magnoliaAuthor
/magnoliaAuthor
Error Page Exception
com.ibm.ws.webcontainer.webapp.WebAppErrorReport: java.io.IOException: Invalid state
at com.ibm.ws.webcontainer.webapp.WebApp.sendError(WebApp.java:4293)
at com.ibm.ws.webcontainer.webapp.WebApp.handleException(WebApp.java:5029)
at com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:5009)
at com.ibm.ws.webcontainer.osgi.DynamicVirtualHost$2.handleRequest(DynamicVirtualHost.java:314)
at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:996)
at com.ibm.ws.webcontainer.osgi.DynamicVirtualHost$2.run(DynamicVirtualHost.java:279)
at com.ibm.ws.http.dispatcher.internal.channel.HttpDispatcherLink$TaskWrapper.run(HttpDispatcherLink.java:1011)
at com.ibm.ws.http.dispatcher.internal.channel.HttpDispatcherLink.wrapHandlerAndExecute(HttpDispatcherLink.java:414)
at com.ibm.ws.http.dispatcher.internal.channel.HttpDispatcherLink.ready(HttpDispatcherLink.java:373)
at com.ibm.ws.http.channel.internal.inbound.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:532)
at com.ibm.ws.http.channel.internal.inbound.HttpInboundLink.handleNewRequest(HttpInboundLink.java:466)
at com.ibm.ws.http.channel.internal.inbound.HttpInboundLink.processRequest(HttpInboundLink.java:331)
at com.ibm.ws.http.channel.internal.inbound.HttpICLReadCallback.complete(HttpICLReadCallback.java:70)
at com.ibm.ws.tcpchannel.internal.WorkQueueManager.requestComplete(WorkQueueManager.java:501)
at com.ibm.ws.tcpchannel.internal.WorkQueueManager.attemptIO(WorkQueueManager.java:571)
at com.ibm.ws.tcpchannel.internal.WorkQueueManager.workerRun(WorkQueueManager.java:926)
at com.ibm.ws.tcpchannel.internal.WorkQueueManager$Worker.run(WorkQueueManager.java:1015)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.io.IOException: Invalid state
at com.ibm.ws.http.channel.internal.outbound.HttpOutputStreamImpl.flushBuffers(HttpOutputStreamImpl.java:514)
at com.ibm.ws.http.channel.internal.outbound.HttpOutputStreamImpl.flush(HttpOutputStreamImpl.java:604)
at com.ibm.wsspi.http.ee7.HttpOutputStreamEE7.flush(HttpOutputStreamEE7.java:299)
at com.ibm.ws.webcontainer.osgi.response.WCOutputStream.flush(WCOutputStream.java:233)
at com.ibm.ws.webcontainer31.osgi.response.WCOutputStream31.flush(WCOutputStream31.java:598)
at com.ibm.ws.webcontainer.srt.SRTServletResponse.flushBuffer(SRTServletResponse.java:670)
at com.ibm.ws.webcontainer.srt.SRTServletResponse.flushBuffer(SRTServletResponse.java:635)
WARNING: Cannot set header. Response already committed.
[11/2/18 15:58:03:580 CET] 000002fd id=00000000 com.ibm.ws.webcontainer.srt.SRTServletResponse W setStatus WARNING: Cannot set status. Response already committed.
[11/2/18 15:58:03:608 CET] 000002fd id=00000000 com.ibm.ws.webcontainer.srt.SRTServletResponse W addHeader SRVE8094W: WARNING: Cannot set header. Response already committed. Stack trace of errant attempt to set header:
at com.ibm.ws.webcontainer.srt.SRTServletResponse.addHeader(SRTServletResponse.java:2193)
at [internal classes].(Unknown Source)
at info.magnolia.cms.util.RequestHeaderUtil.setHeader(RequestHeaderUtil.java:79)
at info.magnolia.module.cache.filter.CacheResponseWrapper.replayHeadersAndStatus(CacheResponseWrapper.java:374)
at info.magnolia.module.cache.filter.CacheResponseWrapper.replay(CacheResponseWrapper.java:347)
at info.magnolia.module.cache.filter.GZipFilter.doFilter(GZipFilter.java:97)
|