uPortal IRC Logs-2011-04-29
[04:59:34 CDT(-0500)] <sp4c3> hi
[11:37:35 CDT(-0500)] <mklein21005> Does anyone know of any up-to-date gateway portlets? I'm trying to to find one that will SSO into WebAdvisor.
[11:41:28 CDT(-0500)] <athena> unfortunately i don't
[11:41:51 CDT(-0500)] <athena> it would be really valuable to take the toro gateway portlet, modernize it, and manage it as a jasig project
[11:42:04 CDT(-0500)] <athena> we've proposed doing that a few times, but to date no one's wanted it enough to put in the required resources
[15:47:13 CDT(-0500)] <rickard> My logs are filled with these errors:
[15:47:15 CDT(-0500)] <rickard> java.lang.IllegalStateException: An existing HttpSession is required while retrieving a UserInstance for a HttpServletRequest
[15:47:30 CDT(-0500)] <EricDalquist> likely caused by a portlet taking longer than the timeout to render
[15:47:41 CDT(-0500)] <EricDalquist> the portal just gives up on the portlet rendering thread
[15:47:59 CDT(-0500)] <EricDalquist> and once the main portal response has been sent back the request/response objects the portlet rendering thread has access to are invalid
[15:48:22 CDT(-0500)] <rickard> Hmm
[15:49:02 CDT(-0500)] <EricDalquist> the other possibility is a portlet in the header or footer of the users layout that makes it passed the structure transform but doesn't get included in the theme transform output
[15:49:10 CDT(-0500)] <EricDalquist> this results in the portal starting a rendering thread for the portlet
[15:49:13 CDT(-0500)] <EricDalquist> but not waiting for it to complete
[15:49:21 CDT(-0500)] <EricDalquist> since its contents are not needed in the theme
[15:49:39 CDT(-0500)] <rickard> That seems more likely in my case.
[15:49:55 CDT(-0500)] <rickard> I have a very custom theme.
[15:50:11 CDT(-0500)] <EricDalquist> can you reproduce this in a non-prod environment?
[15:50:47 CDT(-0500)] <rickard> Yup
[15:50:59 CDT(-0500)] <EricDalquist> so what you need to do is turn on structure and theme transform output logging
[15:51:09 CDT(-0500)] <rickard> Ok. Got it.
[15:51:14 CDT(-0500)] <EricDalquist> done by editing portal.properties and the log4j config
[15:51:21 CDT(-0500)] <EricDalquist> then compare the the structure XSL output
[15:51:24 CDT(-0500)] <rickard> And look in the header and footer for any portlets that aren't actually renedered by the theme?
[15:51:31 CDT(-0500)] <EricDalquist> check for all of the <channel> elements in the structure
[15:51:32 CDT(-0500)] <rickard> rendered even
[15:51:40 CDT(-0500)] <EricDalquist> and make sure there are matching <channel> elements in your theme
[15:51:54 CDT(-0500)] <EricDalquist> if you find ones that aren't in the theme you then either include them
[15:52:02 CDT(-0500)] <EricDalquist> or remove them from the user layouts
[15:52:08 CDT(-0500)] <EricDalquist> which unfortunatly is a pita
[15:52:25 CDT(-0500)] <rickard> Ok. I'll do some digging around.
[15:52:29 CDT(-0500)] <rickard> Thanks.
[16:01:27 CDT(-0500)] <rickard> Found something else as well.
[16:01:30 CDT(-0500)] <rickard> ERROR [TP-Processor8] Apr/29 23:01:00,328 portal.ChannelManager.[] - Error sending layout event normalEvent to channel null
[16:01:30 CDT(-0500)] <rickard> java.lang.NullPointerException
[16:20:13 CDT(-0500)] <rickard> athena: Sorry to bug you, but do you know if there's a way to figure out from within a portlet whether showChrome is true or false?
[16:20:54 CDT(-0500)] <rickard> It's not really showChrome, but a custom parameter I've added to SharedParameters.cpd
[16:33:26 CDT(-0500)] <athena> if you want the portlet to have access to something, you should use a portlet preference instead
[16:33:40 CDT(-0500)] <athena> the parameters are specific to just the portal side and aren't accessible from inside the portlet
[16:35:40 CDT(-0500)] <rickard> Ok
[16:36:26 CDT(-0500)] <rickard> Thing is, my theme uses the parameter from SharedParameters.cpd. So I would have to duplicate the setting.
[16:36:37 CDT(-0500)] <athena> ah
[17:07:03 CDT(-0500)] <rickard> Man, this is turning out to be quite a big issue for me.
[17:11:13 CDT(-0500)] <rickard> I've added a parameter to SharedParameters.cpd called showInNormalView. This parameter determines whether the portlet should be included in the theme when we're looking at a tab. We have a bunch of portlets that we only want to use in maximized mode, so for those portlets, I set showInNormalView to false. This prevents the portlet from being rendered on the tab and instead the user has
[17:11:14 CDT(-0500)] <rickard> to click the link to the portlet in the menu.
[17:12:30 CDT(-0500)] <rickard> However, this likely causes the issue Eric discussed above. The channel is in the structure transformation and thus, a rendering thread is started for the portlet, but the portlet is never display in the theme.
[17:12:45 CDT(-0500)] <rickard> I have no idea how to solve this.
[17:15:55 CDT(-0500)] <rickard> I'll post something to the mailing list.
[17:32:03 CDT(-0500)] <athena> you could just strip it out of the structure if it's not going to be included in the page
[17:32:37 CDT(-0500)] <athena> and instead include a different element that's a navigation item
[17:32:51 CDT(-0500)] <athena> so the portlet is still represented in the theme, but not as a channel that'll start a rendering thread
[17:40:36 CDT(-0500)] <rickard> Hmm
[17:42:49 CDT(-0500)] <rickard> Sounds interesting. I'll have to look at that this weekend. Now, however, it's time for bed. Thanks jen.