uPortal IRC Logs-2012-05-25

[13:24:50 CDT(-0500)] <athena1> hey EricDalquist are you around?

[13:24:55 CDT(-0500)] <EricDalquist> yup

[13:25:00 CDT(-0500)] <athena1> i'm now getting "Caused by: java.lang.IllegalArgumentException: interface org.hibernate.engine.jdbc.ClobImplementer is not visible from class loader"

[13:25:06 CDT(-0500)] <athena1> specifically on postgres

[13:25:11 CDT(-0500)] <EricDalquist> hrm

[13:25:15 CDT(-0500)] <EricDalquist> can you share a full stack trace?

[13:25:19 CDT(-0500)] <athena1> yeah

[13:25:30 CDT(-0500)] <athena1> preventing the news reader portlet from working for authed users

[13:25:41 CDT(-0500)] <EricDalquist> does NRP use hibernate at all?

[13:27:04 CDT(-0500)] <athena1> http://pastebin.com/UWJvGPgy

[13:27:08 CDT(-0500)] <athena1> yes, but i'm not sure ti's the NRP

[13:27:45 CDT(-0500)] <athena1> hm.

[13:27:54 CDT(-0500)] <EricDalquist> what is the error line in the log for this?

[13:27:56 CDT(-0500)] <athena1> i don't think it uses JPA, which is what's showing up in the stack trace

[13:27:59 CDT(-0500)] <EricDalquist> does it include the portlet's fname?

[13:28:05 CDT(-0500)] <EricDalquist> well right the portal uses JPA

[13:28:22 CDT(-0500)] <athena1> WARN [TP-Processor1] May/25 11:24:30,311 worker.PortletResourceExecutionWorker.[] - Execution failed on portlet window

[13:28:22 CDT(-0500)] <athena1> 46_u32l1n8_35.tw

[13:28:22 CDT(-0500)] <athena1> java.util.concurrent.ExecutionException: org.jasig.portal.portlet.PortletDispatchException: The portlet window 'PortletW

[13:28:22 CDT(-0500)] <athena1> indow [portletWindowId=46_u32l1n8_35.tw, delegationParentId=null, portletMode=view, windowState=detached, expirationCach

[13:28:22 CDT(-0500)] <athena1> e=null, renderParameters={}, publicRenderParameters={}, portletEntity=PortletEntity [portletEntityId=46_u32l1n8_35, layo

[13:28:23 CDT(-0500)] <athena1> utNodeId=u32l1n8, userId=35, portletDefinition=PortletDefinition [portletDefinitionId=46, fname=news, portletDescriptorK

[13:28:23 CDT(-0500)] <athena1> ey=PortletDescriptorKey [frameworkPortlet=false, webAppName=/NewsReaderPortlet, portletName=news], portletType=PortletTy

[13:28:24 CDT(-0500)] <athena1> peImpl [internalId=1, name=Portlet, descr=Adapter for JSR-168 and JSR-286 Portlets, cpdUri=/org/jasig/portal/portlets/Ge

[13:28:24 CDT(-0500)] <athena1> nericPortlet.cpd.xml]]]]' threw an exception while executing serveResource.

[13:28:32 CDT(-0500)] <EricDalquist> huh

[13:28:37 CDT(-0500)] <EricDalquist> so this is in a tomcat thread

[13:28:40 CDT(-0500)] <EricDalquist> not a portlet execution thread

[13:29:20 CDT(-0500)] <athena1> herewe go - the very first part of the error:

[13:29:20 CDT(-0500)] <athena1> WARN [uPortal-PortletExecutor-4-RESOURCE-[news]] May/25 11:24:30,309 worker.PortletResourceExecutionWorker.[] - Portlet '46_u32l1n8_35.tw' failed with an exception

[13:29:20 CDT(-0500)] <athena1> org.jasig.portal.portlet.PortletDispatchException: The portlet window 'PortletWindow [portletWindowId=46_u32l1n8_35.tw, delegationParentId=null, portletMode=view, windowState=detached, expirationCache=null, renderParameters={}, publicRenderParameters={}, portletEntity=PortletEntity [portletEntityId=46_u32l1n8_35, layoutNodeId=u32l1n8, userId=35, portletDefinition=PortletDefinition [portletDefinitionId=46, fname=news, portletDescrip

[13:29:32 CDT(-0500)] <EricDalquist> ok

[13:29:39 CDT(-0500)] <EricDalquist> so it is the news reader portlet

[13:29:42 CDT(-0500)] <athena1> there's a really long mess of stack traces

[13:29:46 CDT(-0500)] <EricDalquist> yeah

[13:29:58 CDT(-0500)] <athena1> huh.

[13:29:59 CDT(-0500)] <EricDalquist> it looks like that pastebin is actually two traces together

[13:30:07 CDT(-0500)] <EricDalquist> is this coming from a terminal?

[13:30:23 CDT(-0500)] <athena1> yeah

[13:30:45 CDT(-0500)] <athena1> ok, this does look like it's related to portlet preferences persistence, which is what i was worried about

[13:31:05 CDT(-0500)] <EricDalquist> yeah

[13:31:06 CDT(-0500)] <athena1> http://pastebin.com/Mb4DPAHU

[13:31:08 CDT(-0500)] <EricDalquist> I'm sure that is it

[13:31:31 CDT(-0500)] <EricDalquist> ahh

[13:31:37 CDT(-0500)] <EricDalquist> you are using the most recent code in master right?

[13:31:42 CDT(-0500)] <athena1> yes

[13:31:45 CDT(-0500)] <EricDalquist> ok

[13:31:58 CDT(-0500)] <athena1> saw there were some changes that looked like they might be persistence-related

[13:31:59 CDT(-0500)] <EricDalquist> so the recent portlet prefs refactoring (to address that calendar portlet perf error) missed a step

[13:32:14 CDT(-0500)] <EricDalquist> the classloader switching aspect is not being applied to the new solution

[13:32:37 CDT(-0500)] <athena1> ah

[13:32:41 CDT(-0500)] <EricDalquist> what should happen when a portlet calls back to the portal is an aspect should switch the classloader back to the portal's

[13:32:45 CDT(-0500)] <EricDalquist> that isn't happening

[13:33:20 CDT(-0500)] <athena1> ok

[13:33:25 CDT(-0500)] <athena1> how hard will this be to fix?

[13:33:33 CDT(-0500)] <EricDalquist> not too hard

[13:35:04 CDT(-0500)] <athena1> ok

[13:35:48 CDT(-0500)] <athena1> came up while testing the conference app for submission

[13:36:05 CDT(-0500)] <EricDalquist> so in short

[13:36:44 CDT(-0500)] <EricDalquist> we need to apply ThreadContextClassLoaderAspect as an aspect to the PortletPreferences objects created by PortletEnvironmentServiceImpl.createPortletPreferences

[13:40:12 CDT(-0500)] <athena1> ok

[13:40:24 CDT(-0500)] <EricDalquist> I should have something for you to try in ~ 5 minutes

[13:40:32 CDT(-0500)] <athena1> thanks so much

[13:40:51 CDT(-0500)] <athena1> i have to admit i'm still not totally over being sick

[13:40:59 CDT(-0500)] <EricDalquist> no problem

[13:49:33 CDT(-0500)] <EricDalquist> athena1: https://github.com/Jasig/uPortal/commit/4727100ad4614fc5869c8ff8fe08cc7431f2dbfd

[13:49:36 CDT(-0500)] <EricDalquist> that isn't on master yet

[13:49:41 CDT(-0500)] <EricDalquist> it is on a working branch

[13:49:44 CDT(-0500)] <EricDalquist> but can you give that a try?

[13:49:48 CDT(-0500)] <EricDalquist> I have to run and get lunch

[13:49:58 CDT(-0500)] <EricDalquist> but I'll be back in ~30 minutes

[13:50:49 CDT(-0500)] <athena1> will try, thanks

[14:03:27 CDT(-0500)] <athena1> hm.

[14:03:28 CDT(-0500)] <athena1> [java] ... 53 more

[14:03:28 CDT(-0500)] <athena1> [java] Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name '(inner bean)': Initialization of bean failed; nested exception is java.lang.IllegalArgumentException: Unable to locate method [doThreadContextClassLoaderUpdate] on bean [threadContextClassLoaderAspect]

[14:03:28 CDT(-0500)] <athena1> [java] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:527)

[14:03:28 CDT(-0500)] <athena1> [java] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)

[14:03:28 CDT(-0500)] <athena1> [java] at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveInnerBean(BeanDefinitionValueResolver.java:270)

[14:03:29 CDT(-0500)] <athena1> [java] ... 61 more

[14:03:29 CDT(-0500)] <athena1> [java] Caused by: java.lang.IllegalArgumentException: Unable to locate method [doThreadContextClassLoaderUpdate] on bean [threadContextClassLoaderAspect]

[14:03:30 CDT(-0500)] <athena1> [java] at org.springframework.aop.config.MethodLocatingFactoryBean.setBeanFactory(MethodLocatingFactoryBean.java:75)

[14:03:30 CDT(-0500)] <athena1> [java] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeAwareMethods(AbstractAutowireCapableBeanFactory.java:1475)

[14:03:31 CDT(-0500)] <athena1> [java] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1443)

[14:03:31 CDT(-0500)] <athena1> [java] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:519)

[14:03:32 CDT(-0500)] <athena1> [java] ... 63 more

[14:03:36 CDT(-0500)] <athena1> err, sorry, that was sort of bigger than i thought

[14:09:10 CDT(-0500)] <EricDalquist> back

[14:09:19 CDT(-0500)] <EricDalquist> oh ,... can you gist/pastbin that?

[14:10:58 CDT(-0500)] <athena1> http://pastebin.com/EvJgm0MP

[14:11:58 CDT(-0500)] <EricDalquist> ah ok ... go into persistenceContext.xml

[14:12:14 CDT(-0500)] <EricDalquist> replace all occurances of "doThreadContextClassLoaderUpdate" with "invoke"

[14:15:01 CDT(-0500)] <athena1> ok

[14:15:51 CDT(-0500)] <athena1> running build, we'll see how it does

[14:25:12 CDT(-0500)] <athena1> http://pastebin.com/WhX2N1Et

[14:25:32 CDT(-0500)] <EricDalquist> hrm

[14:25:40 CDT(-0500)] <EricDalquist> ok I'm going to have to look into this more

[14:25:48 CDT(-0500)] <EricDalquist> but I'm not going to have a chance until this evening

[14:26:07 CDT(-0500)] <EricDalquist> its just futzing with the AOP interceptor to get it to work both programmatically and via the spring aop support

[14:29:40 CDT(-0500)] <athena1> ok

[14:29:42 CDT(-0500)] <athena1> hmm.

[14:29:51 CDT(-0500)] <athena1> in that case i'm wondering if we should back out the recent changes

[14:30:19 CDT(-0500)] <athena1> is there a reasonably easy way to do that with git?

[14:31:19 CDT(-0500)] <EricDalquist> I think "git revert commitid, commitid, ...." will do it

[14:31:29 CDT(-0500)] <EricDalquist> essentially reverse-patch those commits

[14:32:45 CDT(-0500)] <athena1> ok

[14:32:48 CDT(-0500)] <athena1> will try (smile)

[14:33:45 CDT(-0500)] <athena1> you have a good sense of which commits i should revert? all the ones from 4 days ago?

[14:34:57 CDT(-0500)] <EricDalquist> a bunch

[14:35:12 CDT(-0500)] <EricDalquist> looking at gitk anything that has UP-3466 in the commit message

[14:35:31 CDT(-0500)] <EricDalquist> looks like 4 + a merge commit

[14:35:38 CDT(-0500)] <athena1> ok

[14:47:27 CDT(-0500)] <athena1> ugh, i think i'm just making a mess

[14:48:03 CDT(-0500)] <EricDalquist> yeah the danger with the revert is if any commit since the one you're trying to revert touches a related file

[14:48:39 CDT(-0500)] <athena1> yeah.

[14:49:10 CDT(-0500)] <athena1> what a headline: "No new reports of tiger loose near Puyallup, Wash."

[14:49:46 CDT(-0500)] <EricDalquist> lol

[14:50:01 CDT(-0500)] <athena1> i'm like umm. . . what??