<div dir="ltr">Copy/pasted from <a href="https://developer.jboss.org/message/932789?et=watches.email.thread#932789">https://developer.jboss.org/message/932789?et=watches.email.thread#932789</a>. Any help would be appreciated...<div><br></div><div><br><div><br></div><div><p style="font-size:13px;margin:0px;padding:0px;font-family:Cabin;line-height:1.5;border:0px;vertical-align:baseline;color:rgb(61,61,61);background-color:rgb(243,243,243)">I&#39;m trying to migrate an application from JBoss 7,.2.0.Final to WildFly 8.2.0.Final, and I find that some cookies are not written to the servlet response. I&#39;ve tracked it down to io.undertow.servlet.spec.HttpServletResponseImpl.addCookie().</p><p style="font-size:13px;margin:0px;padding:0px;font-family:Cabin;line-height:1.5;border:0px;vertical-align:baseline;color:rgb(61,61,61);min-height:8pt;background-color:rgb(243,243,243)"> </p><div class="" style="padding:1px 0px 0px;border:0px;font-size:12px;font-family:Consolas,&#39;Courier New&#39;,Courier,mono,serif;vertical-align:baseline;width:auto;overflow:visible;color:rgb(61,61,61);margin:0px!important;background-color:rgb(231,229,220)"><div class="" style="margin:0px;padding:0px 0px 0px 45px;border:0px;font-weight:inherit;font-style:inherit;font-family:inherit;vertical-align:baseline"><div style="margin:0px;padding:0px;border:0px;font-weight:inherit;font-style:inherit;font-family:inherit;vertical-align:baseline"></div></div><ol start="1" class="" style="padding:0px;line-height:1.5;font-family:inherit;border:none;font-weight:inherit;font-style:inherit;vertical-align:baseline;color:rgb(92,92,92);margin:0px 0px 1px 45px!important;background-color:rgb(255,255,255)"><li class="" style="border-left-width:3px;border-style:none none none solid;border-left-color:rgb(108,226,108);font-weight:inherit;font-style:inherit;font-family:inherit;vertical-align:baseline;list-style:decimal-leading-zero outside;color:inherit;line-height:12pt;height:12pt;white-space:nowrap;margin:0px!important;padding:0px 3px 0px 10px!important"><span style="margin:0px;padding:0px;border:0px;font-weight:inherit;font-style:inherit;vertical-align:baseline;color:rgb(51,51,51);font-size:9pt!important;font-family:&#39;Droid Sans Mono&#39;,monospace!important;background-color:inherit"><span style="margin:0px;padding:0px;border:0px;font-weight:inherit;font-style:inherit;vertical-align:baseline;font-size:9pt!important;background-color:inherit">    </span><span class="" style="margin:0px;padding:0px;border:0px;font-weight:inherit;font-style:inherit;vertical-align:baseline;color:rgb(100,100,100);font-size:9pt!important;background-color:inherit">@Override</span><span style="margin:0px;padding:0px;border:0px;font-weight:inherit;font-style:inherit;vertical-align:baseline;font-size:9pt!important;background-color:inherit">  </span></span></li><li class="" style="border-left-width:3px;border-style:none none none solid;border-left-color:rgb(108,226,108);font-weight:inherit;font-style:inherit;font-family:inherit;vertical-align:baseline;list-style:decimal-leading-zero outside;line-height:12pt;height:12pt;white-space:nowrap;margin:0px!important;padding:0px 3px 0px 10px!important"><span style="margin:0px;padding:0px;border:0px;font-weight:inherit;font-style:inherit;vertical-align:baseline;color:rgb(51,51,51);font-size:9pt!important;font-family:&#39;Droid Sans Mono&#39;,monospace!important;background-color:inherit">    <span class="" style="margin:0px;padding:0px;border:0px;font-weight:inherit;font-style:inherit;vertical-align:baseline;color:rgb(0,102,153);font-size:9pt!important;background-color:inherit">public</span><span style="margin:0px;padding:0px;border:0px;font-weight:inherit;font-style:inherit;vertical-align:baseline;font-size:9pt!important;background-color:inherit"> </span><span class="" style="margin:0px;padding:0px;border:0px;font-weight:inherit;font-style:inherit;vertical-align:baseline;color:rgb(0,102,153);font-size:9pt!important;background-color:inherit">void</span><span style="margin:0px;padding:0px;border:0px;font-weight:inherit;font-style:inherit;vertical-align:baseline;font-size:9pt!important;background-color:inherit"> addCookie(</span><span class="" style="margin:0px;padding:0px;border:0px;font-weight:inherit;font-style:inherit;vertical-align:baseline;color:rgb(0,102,153);font-size:9pt!important;background-color:inherit">final</span><span style="margin:0px;padding:0px;border:0px;font-weight:inherit;font-style:inherit;vertical-align:baseline;font-size:9pt!important;background-color:inherit"> Cookie cookie) {  </span></span></li><li class="" style="border-left-width:3px;border-style:none none none solid;border-left-color:rgb(108,226,108);font-weight:inherit;font-style:inherit;font-family:inherit;vertical-align:baseline;list-style:decimal-leading-zero outside;color:inherit;line-height:12pt;height:12pt;white-space:nowrap;margin:0px!important;padding:0px 3px 0px 10px!important"><span style="margin:0px;padding:0px;border:0px;font-weight:inherit;font-style:inherit;vertical-align:baseline;color:rgb(51,51,51);font-size:9pt!important;font-family:&#39;Droid Sans Mono&#39;,monospace!important;background-color:inherit">        <span class="" style="margin:0px;padding:0px;border:0px;font-weight:inherit;font-style:inherit;vertical-align:baseline;color:rgb(0,102,153);font-size:9pt!important;background-color:inherit">if</span><span style="margin:0px;padding:0px;border:0px;font-weight:inherit;font-style:inherit;vertical-align:baseline;font-size:9pt!important;background-color:inherit"> (insideInclude) {  </span></span></li><li class="" style="border-left-width:3px;border-style:none none none solid;border-left-color:rgb(108,226,108);font-weight:inherit;font-style:inherit;font-family:inherit;vertical-align:baseline;list-style:decimal-leading-zero outside;line-height:12pt;height:12pt;white-space:nowrap;margin:0px!important;padding:0px 3px 0px 10px!important"><span style="margin:0px;padding:0px;border:0px;font-weight:inherit;font-style:inherit;vertical-align:baseline;color:rgb(51,51,51);font-size:9pt!important;font-family:&#39;Droid Sans Mono&#39;,monospace!important;background-color:inherit">            <span class="" style="margin:0px;padding:0px;border:0px;font-weight:inherit;font-style:inherit;vertical-align:baseline;color:rgb(0,102,153);font-size:9pt!important;background-color:inherit">return</span><span style="margin:0px;padding:0px;border:0px;font-weight:inherit;font-style:inherit;vertical-align:baseline;font-size:9pt!important;background-color:inherit">;  </span></span></li><li class="" style="border-left-width:3px;border-style:none none none solid;border-left-color:rgb(108,226,108);font-weight:inherit;font-style:inherit;font-family:inherit;vertical-align:baseline;list-style:decimal-leading-zero outside;color:inherit;line-height:12pt;height:12pt;white-space:nowrap;margin:0px!important;padding:0px 3px 0px 10px!important"><span style="margin:0px;padding:0px;border:0px;font-weight:inherit;font-style:inherit;vertical-align:baseline;color:rgb(51,51,51);font-size:9pt!important;font-family:&#39;Droid Sans Mono&#39;,monospace!important;background-color:inherit">        }  </span></li><li class="" style="border-left-width:3px;border-style:none none none solid;border-left-color:rgb(108,226,108);font-weight:inherit;font-style:inherit;font-family:inherit;vertical-align:baseline;list-style:decimal-leading-zero outside;line-height:12pt;height:12pt;white-space:nowrap;margin:0px!important;padding:0px 3px 0px 10px!important"><span style="margin:0px;padding:0px;border:0px;font-weight:inherit;font-style:inherit;vertical-align:baseline;color:rgb(51,51,51);font-size:9pt!important;font-family:&#39;Droid Sans Mono&#39;,monospace!important;background-color:inherit">        <span class="" style="margin:0px;padding:0px;border:0px;font-weight:inherit;font-style:inherit;vertical-align:baseline;color:rgb(0,102,153);font-size:9pt!important;background-color:inherit">final</span><span style="margin:0px;padding:0px;border:0px;font-weight:inherit;font-style:inherit;vertical-align:baseline;font-size:9pt!important;background-color:inherit"> ServletCookieAdaptor servletCookieAdaptor = </span><span class="" style="margin:0px;padding:0px;border:0px;font-weight:inherit;font-style:inherit;vertical-align:baseline;color:rgb(0,102,153);font-size:9pt!important;background-color:inherit">new</span><span style="margin:0px;padding:0px;border:0px;font-weight:inherit;font-style:inherit;vertical-align:baseline;font-size:9pt!important;background-color:inherit"> ServletCookieAdaptor(cookie);  </span></span></li><li class="" style="border-left-width:3px;border-style:none none none solid;border-left-color:rgb(108,226,108);font-weight:inherit;font-style:inherit;font-family:inherit;vertical-align:baseline;list-style:decimal-leading-zero outside;color:inherit;line-height:12pt;height:12pt;white-space:nowrap;margin:0px!important;padding:0px 3px 0px 10px!important"><span style="margin:0px;padding:0px;border:0px;font-weight:inherit;font-style:inherit;vertical-align:baseline;color:rgb(51,51,51);font-size:9pt!important;font-family:&#39;Droid Sans Mono&#39;,monospace!important;background-color:inherit">        <span class="" style="margin:0px;padding:0px;border:0px;font-weight:inherit;font-style:inherit;vertical-align:baseline;color:rgb(0,102,153);font-size:9pt!important;background-color:inherit">if</span><span style="margin:0px;padding:0px;border:0px;font-weight:inherit;font-style:inherit;vertical-align:baseline;font-size:9pt!important;background-color:inherit"> (cookie.getVersion() == </span><span class="" style="margin:0px;padding:0px;border:0px;font-weight:inherit;font-style:inherit;vertical-align:baseline;color:rgb(192,0,0);font-size:9pt!important;background-color:inherit">0</span><span style="margin:0px;padding:0px;border:0px;font-weight:inherit;font-style:inherit;vertical-align:baseline;font-size:9pt!important;background-color:inherit">) {  </span></span></li><li class="" style="border-left-width:3px;border-style:none none none solid;border-left-color:rgb(108,226,108);font-weight:inherit;font-style:inherit;font-family:inherit;vertical-align:baseline;list-style:decimal-leading-zero outside;line-height:12pt;height:12pt;white-space:nowrap;margin:0px!important;padding:0px 3px 0px 10px!important"><span style="margin:0px;padding:0px;border:0px;font-weight:inherit;font-style:inherit;vertical-align:baseline;color:rgb(51,51,51);font-size:9pt!important;font-family:&#39;Droid Sans Mono&#39;,monospace!important;background-color:inherit">            servletCookieAdaptor.setVersion(servletContext.getDeployment().getDeploymentInfo().getDefaultCookieVersion());  </span></li><li class="" style="border-left-width:3px;border-style:none none none solid;border-left-color:rgb(108,226,108);font-weight:inherit;font-style:inherit;font-family:inherit;vertical-align:baseline;list-style:decimal-leading-zero outside;color:inherit;line-height:12pt;height:12pt;white-space:nowrap;margin:0px!important;padding:0px 3px 0px 10px!important"><span style="margin:0px;padding:0px;border:0px;font-weight:inherit;font-style:inherit;vertical-align:baseline;color:rgb(51,51,51);font-size:9pt!important;font-family:&#39;Droid Sans Mono&#39;,monospace!important;background-color:inherit">        }  </span></li><li class="" style="border-left-width:3px;border-style:none none none solid;border-left-color:rgb(108,226,108);font-weight:inherit;font-style:inherit;font-family:inherit;vertical-align:baseline;list-style:decimal-leading-zero outside;line-height:12pt;height:12pt;white-space:nowrap;margin:0px!important;padding:0px 3px 0px 10px!important"><span style="margin:0px;padding:0px;border:0px;font-weight:inherit;font-style:inherit;vertical-align:baseline;color:rgb(51,51,51);font-size:9pt!important;font-family:&#39;Droid Sans Mono&#39;,monospace!important;background-color:inherit">        exchange.setResponseCookie(servletCookieAdaptor);  </span></li><li class="" style="border-left-width:3px;border-style:none none none solid;border-left-color:rgb(108,226,108);font-weight:inherit;font-style:inherit;font-family:inherit;vertical-align:baseline;list-style:decimal-leading-zero outside;color:inherit;line-height:12pt;height:12pt;white-space:nowrap;margin:0px!important;padding:0px 3px 0px 10px!important"><span style="margin:0px;padding:0px;border:0px;font-weight:inherit;font-style:inherit;vertical-align:baseline;color:rgb(51,51,51);font-size:9pt!important;font-family:&#39;Droid Sans Mono&#39;,monospace!important;background-color:inherit">    }  </span></li></ol></div><p style="font-size:13px;margin:0px;padding:0px;font-family:Cabin;line-height:1.5;border:0px;vertical-align:baseline;color:rgb(61,61,61);min-height:8pt;background-color:rgb(243,243,243)"> </p><p style="font-size:13px;margin:0px;padding:0px;font-family:Cabin;line-height:1.5;border:0px;vertical-align:baseline;color:rgb(61,61,61);background-color:rgb(243,243,243)">Apparently the insideCookie flag has been set to true at the point we&#39;re calling HttpServletResponse.addCookie(), so WildFly/Undertow just quietly throws it away and leaves me scratching my head trying to figure out what went wrong.</p><p style="font-size:13px;margin:0px;padding:0px;font-family:Cabin;line-height:1.5;border:0px;vertical-align:baseline;color:rgb(61,61,61);min-height:8pt;background-color:rgb(243,243,243)"> </p><p style="font-size:13px;margin:0px;padding:0px;font-family:Cabin;line-height:1.5;border:0px;vertical-align:baseline;color:rgb(61,61,61);background-color:rgb(243,243,243)">When I search back up the call stack I see that our servlet is including a JSP page in its response like this</p><p style="font-size:13px;margin:0px;padding:0px;font-family:Cabin;line-height:1.5;border:0px;vertical-align:baseline;color:rgb(61,61,61);min-height:8pt;background-color:rgb(243,243,243)"> </p><div class="" style="padding:1px 0px 0px;border:0px;font-size:12px;font-family:Consolas,&#39;Courier New&#39;,Courier,mono,serif;vertical-align:baseline;width:auto;overflow:visible;color:rgb(61,61,61);margin:0px!important;background-color:rgb(231,229,220)"><div class="" style="margin:0px;padding:0px 0px 0px 45px;border:0px;font-weight:inherit;font-style:inherit;font-family:inherit;vertical-align:baseline"><div style="margin:0px;padding:0px;border:0px;font-weight:inherit;font-style:inherit;font-family:inherit;vertical-align:baseline"></div></div><ol start="1" class="" style="padding:0px;line-height:1.5;font-family:inherit;border:none;font-weight:inherit;font-style:inherit;vertical-align:baseline;color:rgb(92,92,92);margin:0px 0px 1px 45px!important;background-color:rgb(255,255,255)"><li class="" style="border-left-width:3px;border-style:none none none solid;border-left-color:rgb(108,226,108);font-weight:inherit;font-style:inherit;font-family:inherit;vertical-align:baseline;list-style:decimal-leading-zero outside;color:inherit;line-height:12pt;height:12pt;white-space:nowrap;margin:0px!important;padding:0px 3px 0px 10px!important"><span style="margin:0px;padding:0px;border:0px;font-weight:inherit;font-style:inherit;vertical-align:baseline;color:rgb(51,51,51);font-size:9pt!important;font-family:&#39;Droid Sans Mono&#39;,monospace!important;background-color:inherit">                RequestDispatcher dispatcher =  getServletContext().getRequestDispatcher(page);  </span></li><li class="" style="border-left-width:3px;border-style:none none none solid;border-left-color:rgb(108,226,108);font-weight:inherit;font-style:inherit;font-family:inherit;vertical-align:baseline;list-style:decimal-leading-zero outside;line-height:12pt;height:12pt;white-space:nowrap;margin:0px!important;padding:0px 3px 0px 10px!important"><span style="margin:0px;padding:0px;border:0px;font-weight:inherit;font-style:inherit;vertical-align:baseline;color:rgb(51,51,51);font-size:9pt!important;font-family:&#39;Droid Sans Mono&#39;,monospace!important;background-color:inherit">                dispatcher.include(state.getRequest(), state.getResponse());  </span></li></ol></div><p style="font-size:13px;margin:0px;padding:0px;font-family:Cabin;line-height:1.5;border:0px;vertical-align:baseline;color:rgb(61,61,61);min-height:8pt;background-color:rgb(243,243,243)"> </p><p style="font-size:13px;margin:0px;padding:0px;font-family:Cabin;line-height:1.5;border:0px;vertical-align:baseline;color:rgb(61,61,61);background-color:rgb(243,243,243)">So, it makes sense that insideInclude is true, since the code that&#39;s trying to set the cookie is being called from inside RequestDispatcher.include(), but I don&#39;t understand why WildFly/Undertow just arbitrarily throws it away.</p><span style="font-size:13px;color:rgb(61,61,61);font-family:Cabin;line-height:10.8333330154419px;background-color:rgb(243,243,243)">- See more at: <a href="https://developer.jboss.org/message/932789?et=watches.email.thread#932789">https://developer.jboss.org/message/932789?et=watches.email.thread#932789</a></span><br></div></div></div>