[10:52:07 CDT(-0500)] <athena1> hey EricDalquist - did the portlet caching stuff ever get done?
[10:52:18 CDT(-0500)] <EricDalquist> nope, haven't gotten to that yet
[10:52:26 CDT(-0500)] <athena1> ah ok
[10:52:31 CDT(-0500)] <EricDalquist> though we technically can just ignore it since it is optional in the spec
[10:52:34 CDT(-0500)] <athena1> ahh
[10:52:35 CDT(-0500)] <athena1> ok
[10:52:37 CDT(-0500)] <EricDalquist> though realisticly it shouldn't be that hard
[10:52:41 CDT(-0500)] <athena1> cool
[10:52:49 CDT(-0500)] <athena1> seems like it might help ajax performance?
[10:52:57 CDT(-0500)] <EricDalquist> um
[10:52:58 CDT(-0500)] <EricDalquist> yeah
[10:53:05 CDT(-0500)] <EricDalquist> resource URLs have caching built in
[10:53:15 CDT(-0500)] <EricDalquist> you can even specify cache scope (public vs private)
[10:53:30 CDT(-0500)] <EricDalquist> so things like an ajax news reader could cache the URLs publicly
[11:00:50 CDT(-0500)] <athena1> trying to remember what we ran into when we tested that in the fall
[11:01:21 CDT(-0500)] <athena1> seems like something wasn't implemented yet
[11:01:35 CDT(-0500)] <EricDalquist> with the resource urls?
[12:44:17 CDT(-0500)] <EricDalquist> this setContentType bug is driving me insane
[12:44:35 CDT(-0500)] <EricDalquist> I can't see anything different about the first request to a tab than other requests that would cause the content type to be null
[12:54:25 CDT(-0500)] <EricDalquist> if I have a break point in setContentType it works
[12:54:32 CDT(-0500)] <EricDalquist> without the break point it fails
[12:54:35 CDT(-0500)] <EricDalquist> wtf
[13:07:57 CDT(-0500)] <athena> yes
[13:08:06 CDT(-0500)] <athena> you know, i actually thought i was seeing the same thing
[13:08:10 CDT(-0500)] <EricDalquist> just downloaded the tomcat source
[13:08:13 CDT(-0500)] <athena> so that made me wonder if there's some kind of timing issue going on
[13:08:19 CDT(-0500)] <EricDalquist> setting break points down the whole call stack
[13:08:23 CDT(-0500)] <EricDalquist> going to see where it is missing
[13:08:25 CDT(-0500)] <EricDalquist> yeah
[13:08:25 CDT(-0500)] <athena> like maybe our code is somehow finishing up before something else
[13:08:29 CDT(-0500)] <EricDalquist> it sure looks like a race condition
[13:08:31 CDT(-0500)] <athena> yeah
[13:11:17 CDT(-0500)] <EricDalquist> found it
[13:12:32 CDT(-0500)] <athena> oooh really?
[13:12:37 CDT(-0500)] <EricDalquist> yes
[13:12:40 CDT(-0500)] <EricDalquist> $%!#$%
[13:12:47 CDT(-0500)] <athena> uhoh?
[13:12:55 CDT(-0500)] <EricDalquist> so according to the servlet spec multithreaded access to a request is iffy at best
[13:13:08 CDT(-0500)] <athena> eep
[13:13:17 CDT(-0500)] <athena> i assume we're counting on multithreaded access?
[13:13:20 CDT(-0500)] <EricDalquist> we have a bunch of stuff in uPortal that smooths that out for the most part
[13:13:32 CDT(-0500)] <EricDalquist> right that is the basis of our "portlets render in their own threads" architecture
[13:14:00 CDT(-0500)] <EricDalquist> AND you're supposed only every use the provded req/res wrapper classes
[13:14:32 CDT(-0500)] <EricDalquist> during the pluto cross-context dispatch tomcat is getting to its original request object and switching the request object out from under the portal
[13:14:32 CDT(-0500)] <athena> ugh
[13:14:46 CDT(-0500)] <EricDalquist> time to dig a little more :/
[13:14:56 CDT(-0500)] <athena>
[13:15:39 CDT(-0500)] <EricDalquist> oh ok
[13:15:42 CDT(-0500)] <EricDalquist> I think I have a solution
[13:15:50 CDT(-0500)] <EricDalquist> we already fix this for requests
[13:15:59 CDT(-0500)] <EricDalquist> by breaking the servelt spec rules a little bit
[13:16:14 CDT(-0500)] <EricDalquist> we have a PortletHttpServletRequestWrapper that implements HttpServletRequest directly
[13:16:19 CDT(-0500)] <EricDalquist> and doesn't use the provided wrapper
[13:16:47 CDT(-0500)] <EricDalquist> tomcat deals with this just fine and doesn't unwrap the request passed our portlet specific wrapper
[13:16:56 CDT(-0500)] <EricDalquist> which protects the portal's request object
[13:17:02 CDT(-0500)] <EricDalquist> just need to do the same thing for the response
[13:17:07 CDT(-0500)] <EricDalquist> :/
[13:22:48 CDT(-0500)] <athena> sounds fixable at least?
Manage space
Manage content
Integrations