1 Reply Latest reply on Aug 16, 2008 2:25 PM by Christian Pietsch

    Components not injected on page reload or double click

    Christian Pietsch Newbie
      I just finished and deployed a new seam driven website. Overall the user experience (I have more than 25.000 users) is great and performance not as bad as expected, but I'm looking forward all the mentioned performance improvements for 2.1. Thanks to the seam team for this wonderful framework.

      The issue I'm monitoring is that sometimes on requests seam component instances are not injected at all into the context. This is true for components injected into other components and for components used in EL on the JSF page. I just NPEs like this:

      2008-08-16 12:06:58,418 ERROR [org.jboss.seam.web.ExceptionFilter] exception root cause
      javax.el.ELException: /WEB-INF/inc/filter.xhtml @34,81 label="#{dvdbUtils.messageForDynamicKey('filter.sortOrder.', orderVar)}": java.lang.NullPointerException
              at com.sun.facelets.el.TagValueExpression.getValue(TagValueExpression.java:76)
              at org.jboss.seam.ui.component.UISelectItems.getLabel(UISelectItems.java:110)
              at org.jboss.seam.ui.component.UISelectItems$1.getSelectItemLabel(UISelectItems.java:203)
              at org.jboss.seam.ui.component.UISelectItems$ContextualSelectItem.create(UISelectItems.java:90)
              at org.jboss.seam.ui.component.UISelectItems.asSelectItems(UISelectItems.java:190)
              at org.jboss.seam.ui.component.UISelectItems.getValue(UISelectItems.java:161)

      In this case dvdbUtils is just a very simple seam application scoped seam components with some injections of other basic seam components as Log, ThemeSelector etc.

      It seems to happen when a user clicks on the next link, double clicks a link or just reloads the page very often before his last request is finished. Especially on slower loading pages with complex datatables this happens pretty frequently (e.g. open page http://www.dvdb.de/dvdb/mb/index.seam?username=chris and reload it a couple of times).

      Maybe it's a feature to prevent DoS attacks ;-). If not I'd be happy to help resolving it but could need some starting points where to begin debugging.

      I'm using Seam 2.0.3CR1 on Jboss 4.2.2GA.

      - Chris