[ 
https://issues.apache.org/jira/browse/TOBAGO-2019?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Udo Schnurpfeil updated TOBAGO-2019:
------------------------------------
    Fix Version/s: 2.4.2
       Resolution: Fixed
           Status: Resolved  (was: Patch Available)

Thank you for the patch.

I've applied it, except for the NullPointer check for sheetState, because the 
static code analysis of the IDE says, this case cannot be happen.

> NPE tobago-core-2.4.1 NPE Sorter.java 
> --------------------------------------
>
>                 Key: TOBAGO-2019
>                 URL: https://issues.apache.org/jira/browse/TOBAGO-2019
>             Project: MyFaces Tobago
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 2.4.1
>         Environment: jboss 6 
>            Reporter: Tobias Herbert
>            Assignee: Udo Schnurpfeil
>            Priority: Critical
>             Fix For: 2.4.2
>
>         Attachments: Sorter.java
>
>
> Hello Tobago maintainer,
> during migration of an existing project I have a problem with an NPE in 
> Sorter.java 
> line 153. 
> With the below fix, the application seems to be ok...
> Patch proposal:
> diff --git 
> a/tobago-core/src/main/java/org/apache/myfaces/tobago/component/Sorter.java 
> b/tobago-core/src/main/java/org/apache/myfaces/tobago/component/Sorter.java
> index f2f0451832..2a37f2c343 100644
> --- 
> a/tobago-core/src/main/java/org/apache/myfaces/tobago/component/Sorter.java
> +++ 
> b/tobago-core/src/main/java/org/apache/myfaces/tobago/component/Sorter.java
> @@ -150,6 +150,7 @@ public class Sorter {
> // memorize selected rows
>  List<Object> selectedDataRows = null;
> + if ( (sheetState !=null) && ( sheetState.getSelectedRows() !=null)) {
>  if (sheetState.getSelectedRows().size() > 0) {
>  selectedDataRows = new 
> ArrayList<Object>(sheetState.getSelectedRows().size());
>  Object dataRow;
> @@ -162,6 +163,7 @@ public class Sorter {
>  selectedDataRows.add(dataRow);
>  }
>  }
> + }
> // do sorting
>  if (value instanceof List) {
>  
> NPE:
> ------------------------------------------------------------------------
> 019-11-22 16:44:41,837 ERROR 
> [org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].[/vvgebuehren].[FacesServlet]]
>  (http-0.0.0.0:9593-2) (/) JBWEB000236: Servlet.service() for servlet 
> FacesServlet threw exception: java.lang.NullPointerException
>         at 
> org.apache.myfaces.tobago.component.Sorter.perform(Sorter.java:153) 
> [tobago-core-2.4.1.jar:2.4.1]
>         at 
> org.apache.myfaces.tobago.internal.component.AbstractUISheet.sort(AbstractUISheet.java:477)
>  [tobago-core-2.4.1.jar:2.4.1]
>         at 
> org.apache.myfaces.tobago.internal.component.AbstractUISheet.processEvent(AbstractUISheet.java:458)
>  [tobago-core-2.4.1.jar:2.4.1]
>         at 
> javax.faces.component.UIComponent$EventListenerWrapper.processEvent(UIComponent.java:1627)
>  [myfaces-api-2.2.12.jar:2.2.12]
>         at javax.faces.event.SystemEvent.processListener(SystemEvent.java:40) 
> [myfaces-api-2.2.12.jar:2.2.12]
>         at 
> javax.faces.event.ComponentSystemEvent.processListener(ComponentSystemEvent.java:51)
>  [myfaces-api-2.2.12.jar:2.2.12]
>         at 
> org.apache.myfaces.application.ApplicationImpl._traverseListenerList(ApplicationImpl.java:2595)
>  [myfaces-impl-2.2.12.jar:2.2.12]
>         at 
> org.apache.myfaces.application.ApplicationImpl.publishEvent(ApplicationImpl.java:595)
>  [myfaces-impl-2.2.12.jar:2.2.12]
>         at 
> javax.faces.component.UIComponentBase.encodeBegin(UIComponentBase.java:590) 
> [myfaces-api-2.2.12.jar:2.2.12]
>         at javax.faces.component.UIData.encodeBegin(UIData.java:1751) 
> [myfaces-api-2.2.12.jar:2.2.12]
>         at 
> org.apache.myfaces.tobago.internal.component.AbstractUIData.encodeBegin(AbstractUIData.java:128)
>  [tobago-core-2.4.1.jar:2.4.1]
>         at 
> org.apache.myfaces.tobago.internal.component.AbstractUISheet.encodeBegin(AbstractUISheet.java:120)
>  [tobago-core-2.4.1.jar:2.4.1]
>         at 
> org.apache.myfaces.tobago.renderkit.util.RenderUtils.encode(RenderUtils.java:114)
>  [tobago-theme-standard-2.4.1.jar:2.4.1]
>         at 
> org.apache.myfaces.tobago.renderkit.util.RenderUtils.encode(RenderUtils.java:98)
>  [tobago-theme-standard-2.4.1.jar:2.4.1]
>         at 
> org.apache.myfaces.tobago.renderkit.util.RenderUtils.encodeChildren(RenderUtils.java:93)
>  [tobago-theme-standard-2.4.1.jar:2.4.1]
>         at 
> org.apache.myfaces.tobago.renderkit.html.standard.standard.tag.GridLayoutRenderer.encodeChildren(GridLayoutRenderer.java:43)
>  [tobag
> o-theme-standard-2.4.1.jar:2.4.1]
>         at 
> org.apache.myfaces.tobago.renderkit.AbstractRendererBaseWrapper.encodeChildren(AbstractRendererBaseWrapper.java:100)
>  [tobago-core-2
> .4.1.jar:2.4.1]
>         at 
> javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:644)
>  [myfaces-api-2.2.12.jar:2.2.12]
>         at 
> org.apache.myfaces.tobago.internal.component.AbstractUIPanel.encodeChildren(AbstractUIPanel.java:51)
>  [tobago-core-2.4.1.jar:2.4.1]
>         at 
> org.apache.myfaces.tobago.renderkit.util.RenderUtils.encode(RenderUtils.java:116)
>  [tobago-theme-standard-2.4.1.jar:2.4.1]
>         at 
> org.apache.myfaces.tobago.renderkit.util.RenderUtils.encode(RenderUtils.java:119)
>  [tobago-theme-standard-2.4.1.jar:2.4.1]
>         at 
> org.apache.myfaces.tobago.renderkit.util.RenderUtils.encode(RenderUtils.java:98)
>  [tobago-theme-standard-2.4.1.jar:2.4.1]
>         at 
> org.apache.myfaces.tobago.renderkit.util.RenderUtils.encodeChildren(RenderUtils.java:93)
>  [tobago-theme-standard-2.4.1.jar:2.4.1]
>         at 
> org.apache.myfaces.tobago.renderkit.html.standard.standard.tag.GridLayoutRenderer.encodeChildren(GridLayoutRenderer.java:43)
>  [tobago-theme-standard-2.4.1.jar:2.4.1]
>         at 
> org.apache.myfaces.tobago.renderkit.AbstractRendererBaseWrapper.encodeChildren(AbstractRendererBaseWrapper.java:100)
>  [tobago-core-2.4.1.jar:2.4.1]
>         at 
> javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:644)
>  [myfaces-api-2.2.12.jar:2.2.12]
>  
>  
> Greetings
> Tobias
>  
>  



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to