Uploaded image for project: 'Notification Portlet'
  1. Notification Portlet
  2. NOTIFPLT-26

When NotificationResponse contains a collection of NotificationError objects the Notification Portlet Errors

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 2.0.2
    • Fix Version/s: 2.0.4
    • Labels:
      None

      Description

      Our web service returns a NotificationResponse object created using the combine method of the NotificationResponse class. If there are no NotificationError objects included in one of the NotificationResponse objects being combined everything works fine.

      However, if one of the NotificationResponse objects being combined contains a collection of NotificationError objects (the NotificationResponse.setErrors method is called to give the errors attribute a value) then when the NotificationResponse object is being processed by the Notification Portlet an exception is thrown (see below), an error statement is shown in the portlet (that is unrelated to the error in the NotificationReponse), and the other notifications that should be shown that did not have an error are not shown--user sees you have 0 notifications.

      Exception from NotificationPortlet.log:

      ERROR [uP-PortletExec-11-bphillips-RESOURCE-[notifications]] portlet.DispatcherPortlet.[] Jun/20 09:43:31 - Could not complete request
      java.lang.reflect.UndeclaredThrowableException
      at com.sun.proxy.$Proxy379.getLocale(Unknown Source)
      at javax.servlet.ServletRequestWrapper.getLocale(ServletRequestWrapper.java:257)
      at org.jasig.portal.portlet.container.PortletRequestContextImpl.getPreferredLocale(PortletRequestContextImpl.java:189)
      at org.apache.pluto.container.impl.PortletRequestImpl.getLocale(PortletRequestImpl.java:303)
      at org.springframework.web.portlet.DispatcherPortlet.resolveViewName(DispatcherPortlet.java:1148)
      at org.springframework.web.portlet.DispatcherPortlet.render(DispatcherPortlet.java:1090)
      at org.springframework.web.portlet.DispatcherPortlet.doResourceService(DispatcherPortlet.java:880)
      at org.springframework.web.portlet.FrameworkPortlet.processRequest(FrameworkPortlet.java:525)
      at org.springframework.web.portlet.FrameworkPortlet.serveResource(FrameworkPortlet.java:477)
      at org.jasig.portal.portlet.container.FilterChainImpl.doFilter(FilterChainImpl.java:212)
      at org.jasig.portal.portlet.container.FilterChainImpl.processFilter(FilterChainImpl.java:84)
      at org.jasig.portal.portlet.container.FilterManagerImpl.processFilter(FilterManagerImpl.java:103)
      at org.apache.pluto.container.driver.PortletServlet.dispatch(PortletServlet.java:350)
      at org.apache.pluto.container.driver.PortletServlet.doPost(PortletServlet.java:267)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
      at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:749)
      at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:487)
      at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:412)
      at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:339)
      at org.apache.pluto.driver.container.DefaultPortletInvokerService.invoke(DefaultPortletInvokerService.java:229)
      at org.apache.pluto.driver.container.DefaultPortletInvokerService.serveResource(DefaultPortletInvokerService.java:149)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      at java.lang.reflect.Method.invoke(Method.java:597)
      at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:319)
      at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)
      at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
      at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:90)
      at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
      at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:80)
      at org.jasig.portal.portlet.dao.jpa.ThreadContextClassLoaderAspect.doThreadContextClassLoaderUpdate(ThreadContextClassLoaderAspect.java:70)
      at sun.reflect.GeneratedMethodAccessor113.invoke(Unknown Source)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      at java.lang.reflect.Method.invoke(Method.java:597)
      at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:621)
      at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:610)
      at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:65)
      at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
      at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
      at com.sun.proxy.$Proxy216.serveResource(Unknown Source)
      at org.apache.pluto.container.impl.PortletContainerImpl.doServeResource(PortletContainerImpl.java:203)
      at org.jasig.portal.portlet.rendering.PortletRendererImpl.doServeResource(PortletRendererImpl.java:587)
      at org.jasig.portal.portlet.rendering.worker.PortletResourceExecutionWorker.callInternal(PortletResourceExecutionWorker.java:54)
      at org.jasig.portal.portlet.rendering.worker.PortletResourceExecutionWorker.callInternal(PortletResourceExecutionWorker.java:32)
      at org.jasig.portal.portlet.rendering.worker.PortletExecutionWorker$1.call(PortletExecutionWorker.java:137)
      at org.jasig.portal.portlet.rendering.worker.PortletExecutionWorker$ExecutionLifecycleCallable.call(PortletExecutionWorker.java:177)
      at org.jasig.portal.portlet.rendering.worker.PortletExecutionCallable.call(PortletExecutionCallable.java:119)
      at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
      at java.util.concurrent.FutureTask.run(FutureTask.java:138)
      at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
      at java.lang.Thread.run(Thread.java:680)
      Caused by: java.lang.reflect.InvocationTargetException
      at sun.reflect.GeneratedMethodAccessor235.invoke(Unknown Source)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      at java.lang.reflect.Method.invoke(Method.java:597)
      at org.jasig.portal.utils.CompositeProxyFactory$CompositeProxyInterceptor.invoke(CompositeProxyFactory.java:149)
      at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
      at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
      ... 56 more
      Caused by: java.lang.IllegalStateException: The portlet worker has been canceled, the request is no longer in a valid state
      at org.jasig.portal.portlet.rendering.worker.GuardingHttpServletRequest.checkState(GuardingHttpServletRequest.java:55)
      at org.jasig.portal.portlet.rendering.worker.GuardingHttpServletRequest.getLocale(GuardingHttpServletRequest.java:487)
      at org.jasig.portal.utils.web.AbstractHttpServletRequestWrapper.getLocale(AbstractHttpServletRequestWrapper.java:137)
      ... 62 more

        Attachments

          Activity

            People

            • Assignee:
              awills Drew Wills
              Reporter:
              phillips1021 Bruce Phillips
            • Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: