[richfaces-issues] [JBoss JIRA] Updated: (RF-10189) Comparator doesn't consider null values
Nick Belaevski (JIRA)
jira-events at lists.jboss.org
Wed Jan 19 14:51:50 EST 2011
[ 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
More information about the richfaces-issues
mailing list