[ 
https://issues.jboss.org/browse/RF-10189?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Nick Belaevski updated RF-10189:
--------------------------------

    Fix Version/s: 4.0.0.CR1
                       (was: 4.0.0.CR2)


> Comparator doesn't consider null values
> ---------------------------------------
>
>                 Key: RF-10189
>                 URL: https://issues.jboss.org/browse/RF-10189
>             Project: RichFaces
>          Issue Type: Bug
>      Security Level: Public(Everyone can see) 
>          Components: component-tables
>    Affects Versions: 4.0.0.Milestone5
>         Environment:     * RichFaces 4.0.0-SNAPSHOT r.20958
>     * Metamer 4.0.0-SNAPSHOT r.20964
>     * Mojarra 2.0.3-b05
>     * JBoss AS 6.0.0.Final
>     * OpenJDK Runtime Environment 1.6.0_20-b20 @ Linux
>     * Firefox 3.6.13 @ Linux x86_64
>            Reporter: Lukas Fryc
>            Assignee: Konstantin Mishin
>             Fix For: 4.0.0.CR1
>
>
> See also [Steps to Reproduce] to reproduce it in Metamer.
> I have model which contains null values in one column and when I want to sort 
> by such column, I want to let RichFaces consider it and sort it on the end of 
> the.
> The java.lang.Comparable itself [1] states that the NullPointerException 
> should be thrown when comparing object to null value.
> However for user convenience, it will be better to handle null values in 
> consistent way to avoid necessity for defining custom comparator.
> [1] http://download.oracle.com/javase/6/docs/api/java/lang/Comparable.html
> java.lang.NullPointerException
>       at java.util.Date.getMillisOf(Date.java:956)
>       at java.util.Date.compareTo(Date.java:976)
>       at java.util.Date.compareTo(Date.java:129)
>       at 
> org.richfaces.model.ArrangeableModel.compareSortByValues(ArrangeableModel.java:328)
>       at 
> org.richfaces.model.ArrangeableModel.compare(ArrangeableModel.java:309)
>       at 
> org.richfaces.model.ArrangeableModel.access$200(ArrangeableModel.java:52)
>       at 
> org.richfaces.model.ArrangeableModel$2.compare(ArrangeableModel.java:262)
>       at java.util.Arrays.mergeSort(Arrays.java:1283)
>       at java.util.Arrays.mergeSort(Arrays.java:1294)
>       at java.util.Arrays.mergeSort(Arrays.java:1294)
>       at java.util.Arrays.mergeSort(Arrays.java:1295)
>       at java.util.Arrays.mergeSort(Arrays.java:1294)
>       at java.util.Arrays.mergeSort(Arrays.java:1294)
>       at java.util.Arrays.sort(Arrays.java:1223)
>       at java.util.Collections.sort(Collections.java:176)
>       at org.richfaces.model.ArrangeableModel.sort(ArrangeableModel.java:260)
>       at 
> org.richfaces.model.ArrangeableModel.arrange(ArrangeableModel.java:214)
>       at 
> org.richfaces.component.UIDataTableBase.createExtendedDataModel(UIDataTableBase.java:170)
>       at 
> org.richfaces.component.UIDataAdaptor.getExtendedDataModel(UIDataAdaptor.java:560)
>       at 
> org.richfaces.component.UIDataAdaptor.getRowCount(UIDataAdaptor.java:607)
>       at 
> org.richfaces.renderkit.AbstractTableRenderer.encodeTableRows(AbstractTableRenderer.java:147)
>       at 
> org.richfaces.renderkit.AbstractTableRenderer.doEncodeChildren(AbstractTableRenderer.java:209)
>       at 
> org.richfaces.renderkit.RendererBase.encodeChildren(RendererBase.java:157)
>       at 
> javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:849)
>       at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1643)
>       at 
> org.richfaces.renderkit.DataTableRenderer.encodeRow(DataTableRenderer.java:183)
>       at 
> org.richfaces.renderkit.AbstractRowsRenderer.process(AbstractRowsRenderer.java:62)
>       at org.ajax4jsf.model.SequenceDataModel.walk(SequenceDataModel.java:109)
>       at org.richfaces.component.UIDataAdaptor.walk(UIDataAdaptor.java:918)
>       at 
> org.richfaces.renderkit.AbstractRowsRenderer.encodeRows(AbstractRowsRenderer.java:72)
>       at 
> org.richfaces.renderkit.AbstractTableRenderer.encodeRows(AbstractTableRenderer.java:102)
>       at 
> org.richfaces.renderkit.AbstractRowsRenderer.processRows(AbstractRowsRenderer.java:80)
>       at 
> org.richfaces.renderkit.AbstractTableRenderer.encodeTableRows(AbstractTableRenderer.java:159)
>       at 
> org.richfaces.renderkit.AbstractTableRenderer.doEncodeChildren(AbstractTableRenderer.java:209)
>       at 
> org.richfaces.renderkit.RendererBase.encodeChildren(RendererBase.java:157)
>       at 
> javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:849)
>       at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1643)
>       at 
> org.richfaces.context.ExtendedPartialViewContextImpl$RenderVisitCallback.visit(ExtendedPartialViewContextImpl.java:517)
>       at 
> org.richfaces.context.BaseExtendedVisitContext.invokeVisitCallback(BaseExtendedVisitContext.java:480)
>       at 
> org.richfaces.component.UIDataAdaptor.visitTree(UIDataAdaptor.java:1343)
>       at javax.faces.component.UIComponent.visitTree(UIComponent.java:1487)
>       at javax.faces.component.UIForm.visitTree(UIForm.java:331)
>       at javax.faces.component.UIComponent.visitTree(UIComponent.java:1487)
>       at javax.faces.component.UIComponent.visitTree(UIComponent.java:1487)
>       at javax.faces.component.UIComponent.visitTree(UIComponent.java:1487)
>       at 
> org.richfaces.context.ExtendedPartialViewContextImpl.processPartialRenderPhase(ExtendedPartialViewContextImpl.java:284)
>       at 
> org.richfaces.context.ExtendedPartialViewContextImpl.processPartial(ExtendedPartialViewContextImpl.java:206)
>       at javax.faces.component.UIViewRoot.encodeChildren(UIViewRoot.java:968)
>       at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1643)
>       at 
> com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:378)
>       at 
> com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:127)
>       at 
> javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:269)
>       at 
> com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:117)
>       at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:97)
>       at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:135)
>       at javax.faces.webapp.FacesServlet.service(FacesServlet.java:309)
>       at 
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
>       at 
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>       at 
> org.richfaces.tests.metamer.TestIdentityFilter.doFilter(TestIdentityFilter.java:93)
>       at 
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
>       at 
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>       at 
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
>       at 
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
>       at 
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
>       at 
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
>       at 
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
>       at 
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
>       at 
> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:857)
>       at 
> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
>       at 
> org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
>       at java.lang.Thread.run(Thread.java:636)
> Jan 12, 2011 2:28:15 PM 
> org.richfaces.context.ExtendedPartialViewContextImpl$RenderVisitCallback 
> logException
> SEVERE: null

-- 
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        
_______________________________________________
richfaces-issues mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/richfaces-issues

Reply via email to