incubator-adffaces-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Alexei Novikov (JIRA)" <adffaces-iss...@incubator.apache.org>
Subject [jira] Created: (ADFFACES-280) NPE in TableUtils when a commandNvigationButton is clicked
Date Wed, 08 Nov 2006 21:46:52 GMT
NPE in TableUtils when a commandNvigationButton is clicked 
-----------------------------------------------------------

                 Key: ADFFACES-280
                 URL: http://issues.apache.org/jira/browse/ADFFACES-280
             Project: MyFaces ADF-Faces
          Issue Type: Bug
         Environment: Trinidad m1 revision 471788, JBoss 4.0.5, Facelets 1.1.11, MyFaces 1.1.4,
Seam 1.1.0 Beta1
            Reporter: Alexei Novikov


The snipplet below causes an exception when any button in the table is clicked.

<tr:form>       
		<tr:table var="row"
				value="#{books}" rows="5" summary="Available books">
				<tr:column width="200px">
					<f:facet name="header">
						<tr:outputText value="Author" />
					</f:facet>
					<tr:outputText value="#{row.author}" />
				</tr:column>
				<tr:column width="200px">
					<f:facet name="header">
						<tr:outputText value="Ttile" />
					</f:facet>
					<tr:outputText value="#{row.title}" />
				</tr:column>
              <tr:column noWrap="true" width="150px">
                <f:facet name="header">
                  <tr:outputText value="Actions"/>
                </f:facet>
                <tr:navigationPane hint="buttons">
                <tr:commandNavigationItem icon="/images/filesedit.gif" action="#{listBooks.edit}"
text="Edit"/>
                <tr:commandNavigationItem icon="/images/trashfull.gif" action="#{listBooks.delete}"
text="Delete"/>
                </tr:navigationPane>
              </tr:column>
	</tr:table>
</tr:form>

java.lang.NullPointerException
	at org.apache.myfaces.context.servlet.AbstractAttributeMap.remove(AbstractAttributeMap.java:119)
	at org.apache.myfaces.trinidad.component.TableUtils.setupELVariable(TableUtils.java:95)
	at org.apache.myfaces.trinidad.component.UIXCollection._setELVar(UIXCollection.java:1134)
	at org.apache.myfaces.trinidad.component.UIXCollection.postRowDataChange(UIXCollection.java:674)
	at org.apache.myfaces.trinidad.component.UIXCollection.setRowKey(UIXCollection.java:389)
	at org.apache.myfaces.trinidad.component.HierarchyUtils.__setStartDepthPath(HierarchyUtils.java:199)
	at org.apache.myfaces.trinidad.component.UIXNavigationLevel.processFacetsAndChildren(UIXNavigationLevel.java:69)
	at org.apache.myfaces.trinidad.component.UIXCollection.decodeChildrenImpl(UIXCollection.java:159)
	at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildren(UIXComponentBase.java:874)
	at org.apache.myfaces.trinidad.component.UIXCollection.processDecodes(UIXCollection.java:153)
	at org.apache.myfaces.trinidad.component.ChildLoop$Decode.process(ChildLoop.java:92)
	at org.apache.myfaces.trinidad.component.ChildLoop.runAlways(ChildLoop.java:53)
	at org.apache.myfaces.trinidad.component.ChildLoop.runAlways(ChildLoop.java:46)
	at org.apache.myfaces.trinidad.component.UIXColumn.processDecodes(UIXColumn.java:65)
	at org.apache.myfaces.trinidad.component.UIXCollection.processComponent(UIXCollection.java:829)
	at org.apache.myfaces.trinidad.component.TableUtils$3.process(TableUtils.java:279)
	at org.apache.myfaces.trinidad.component.ChildLoop.runAlways(ChildLoop.java:53)
	at org.apache.myfaces.trinidad.component.ChildLoop.runAlways(ChildLoop.java:46)
	at org.apache.myfaces.trinidad.component.TableUtils.__processStampedChildren(TableUtils.java:274)
	at org.apache.myfaces.trinidad.component.UIXTable._processStamps(UIXTable.java:396)
	at org.apache.myfaces.trinidad.component.UIXTable.processFacetsAndChildren(UIXTable.java:268)
	at org.apache.myfaces.trinidad.component.UIXCollection.decodeChildrenImpl(UIXCollection.java:159)
	at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildren(UIXComponentBase.java:874)
	at org.apache.myfaces.trinidad.component.UIXCollection.processDecodes(UIXCollection.java:153)
	at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildrenImpl(UIXComponentBase.java:889)
	at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildren(UIXComponentBase.java:874)
	at org.apache.myfaces.trinidad.component.UIXForm.processDecodes(UIXForm.java:60)
	at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildrenImpl(UIXComponentBase.java:889)
	at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildren(UIXComponentBase.java:874)
	at org.apache.myfaces.trinidad.component.UIXComponentBase.processDecodes(UIXComponentBase.java:725)
	at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildrenImpl(UIXComponentBase.java:889)
	at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildren(UIXComponentBase.java:874)
	at org.apache.myfaces.trinidad.component.UIXComponentBase.processDecodes(UIXComponentBase.java:725)
	at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildrenImpl(UIXComponentBase.java:889)
	at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildren(UIXComponentBase.java:874)
	at org.apache.myfaces.trinidad.component.UIXComponentBase.processDecodes(UIXComponentBase.java:725)
	at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildrenImpl(UIXComponentBase.java:889)
	at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildren(UIXComponentBase.java:874)
	at org.apache.myfaces.trinidad.component.UIXComponentBase.processDecodes(UIXComponentBase.java:725)
	at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildrenImpl(UIXComponentBase.java:889)
	at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildren(UIXComponentBase.java:874)
	at org.apache.myfaces.trinidad.component.UIXComponentBase.processDecodes(UIXComponentBase.java:725)
	at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:602)
	at javax.faces.component.UIViewRoot.processDecodes(UIViewRoot.java:135)
	at org.apache.myfaces.lifecycle.LifecycleImpl.applyRequestValues(LifecycleImpl.java:219)
	at org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:71)
	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:137)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
	at org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:97)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
	at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._invokeDoFilter(TrinidadFilterImpl.java:327)
	at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._doFilterImpl(TrinidadFilterImpl.java:291)
	at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.doFilter(TrinidadFilterImpl.java:214)
	at org.apache.myfaces.trinidad.webapp.TrinidadFilter.doFilter(TrinidadFilter.java:90)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
	at org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:144)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
	at org.jboss.seam.servlet.SeamRedirectFilter.doFilter(SeamRedirectFilter.java:32)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
	at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
	at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:175)
	at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:74)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
	at org.jboss.web.tomcat.tc5.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:156)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
	at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
	at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
	at org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112)
	at java.lang.Thread.run(Thread.java:595)

The exception occures when the "name" argument is null. To get rid of the problem, I had to
patch the code this way:
public final class TableUtils 
...
  public static Object setupELVariable(FacesContext context, String name, Object value)
  {
    Map<String, Object> requestMap = context.getExternalContext().getRequestMap();
    if (name == null)
    	return null;
    
    if (value == null)
      return requestMap.remove(name);
    else
      return requestMap.put(name, value);
  }

 It seems to work with this patch thogh I have no idea what side-effects it can arise.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Mime
View raw message