<div dir="ltr"><div class="gmail_quote"><div dir="ltr">On Wed, Mar 16, 2016 at 10:57 AM Marvin Addison <<a href="mailto:marvin.addison@gmail.com">marvin.addison@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_quote"><div dir="ltr"> I'll continue to investigate and follow up as I have more information.<br></div></div></div></blockquote><div><br></div><div>After a lot of tedious debugging sessions, I have a smoking gun. I have no idea why the gun is smoking, but it looks like a case of stale Request data getting into the Velocity template.</div><div><br></div><div><div>This is the Jetty Request when things work:</div><div>-------------------------------------------</div><div>This is the request passed to FrameworkServlet.</div><div>Request(GET <a href="https://eiger.middleware.vt.edu:8443/profile/Logout?execution=e2s1)@19569171">https://eiger.middleware.vt.edu:8443/profile/Logout?execution=e2s1)@19569171</a></div><div>"qtp1239759990-99@13622" prio=5 tid=0x63 nid=NA runnable</div><div>  java.lang.Thread.State: RUNNABLE</div><div>    at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:861)</div><div>    at javax.servlet.http.HttpServlet.service(HttpServlet.java:687)</div><div>    at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)</div><div>    at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)</div><div>    at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:821)</div><div>    ...</div><div>    at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:213)</div><div>    at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:147)</div><div>    at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654)</div><div>    at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572)</div><div>    at java.lang.Thread.run(Thread.java:745)</div><div><br></div><div>The request passed to the velocity template is the same and everything works as expected.</div><div><br></div><div>Later, when it breaks....</div><div>-------------------------</div><div>The request that gets passed to FrameworkServlet is different from what gets into the Velocity template. Following is what goes into FrameworkServlet.</div><div>Request(GET <a href="https://eiger.middleware.vt.edu:8443/profile/Logout?execution=e2s1)@4be33ee9">https://eiger.middleware.vt.edu:8443/profile/Logout?execution=e2s1)@4be33ee9</a></div><div>"qtp1239759990-107@13784" prio=5 tid=0x6b nid=NA runnable</div><div>  java.lang.Thread.State: RUNNABLE</div><div>    at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:861)</div><div>    at javax.servlet.http.HttpServlet.service(HttpServlet.java:687)</div><div>    at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)</div><div>    at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)</div><div>    at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:821)</div><div>    ...</div><div>    at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:213)</div><div>    at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:147)</div><div>    at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654)</div><div>    at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572)</div><div>    at java.lang.Thread.run(Thread.java:745)</div><div><br></div><div>Following is the original Request object from when things worked, but is clearly not the current request object, suggesting it's hanging around incorrectly.</div><div>Request(null null)@19569171</div><div>"qtp1239759990-107@13784" prio=5 tid=0x6b nid=NA runnable</div><div>  java.lang.Thread.State: RUNNABLE</div><div>    at org.eclipse.jetty.server.Request.getServletContext(Request.java:1456)</div><div>    at sun.reflect.GeneratedMethodAccessor50.invoke(Unknown Source:-1)</div><div>    ...</div><div>    at org.springframework.web.servlet.view.velocity.VelocityView.mergeTemplate(VelocityView.java:517)</div><div>    ...</div><div>    at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:861)</div><div>    at javax.servlet.http.HttpServlet.service(HttpServlet.java:687)</div><div>    at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)</div><div>    at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)</div><div>    at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:821)</div><div>    ...</div><div>    at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:213)</div><div>    at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:147)</div><div>    at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654)</div><div>    at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572)</div><div>    at java.lang.Thread.run(Thread.java:745)</div></div><div><br></div><div>As I said, I have no idea how or why this is happening, but at least it explains the behavior and we can hopefully investigate further.</div><div><br></div><div>M</div><div><br></div><div><br></div></div></div>