adminfaces / admin-template

JSF responsive admin template based on Bootstrap and AdminLTE
https://adminfaces.github.io/docs/latest/#admin_template
MIT License
209 stars 101 forks source link

DataTable NumberFormatException in SortFeature.convertSortOrderParam #192

Closed hir0ku closed 4 years ago

hir0ku commented 4 years ago
Issue Overview

<p:dataTable> with sortable header occur "NumberFormatException", when header clicked.

I think, this error relate to https://github.com/primefaces/primefaces/issues/4900. But I try same code on pure Primefaces without AdminFaces, this error dosen't occur. So I think, the cause of this problem is in AdminFaces components.

Current Behaviour
java.lang.NumberFormatException: For input string: "NaN"
    at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:68)
    at java.base/java.lang.Integer.parseInt(Integer.java:658)
    at java.base/java.lang.Integer.parseInt(Integer.java:776)
    at deployment.adminfaces-operation-verification-1.0-SNAPSHOT.war//org.primefaces.component.datatable.feature.SortFeature.convertSortOrderParam(SortFeature.java:221)
    at deployment.adminfaces-operation-verification-1.0-SNAPSHOT.war//org.primefaces.component.datatable.feature.SortFeature.decode(SortFeature.java:85)
    at deployment.adminfaces-operation-verification-1.0-SNAPSHOT.war//org.primefaces.component.datatable.DataTableRenderer.decode(DataTableRenderer.java:72)
Expected Behaviour
How to reproduce
<p:dataTable value="#{indexView.tableItemDtoList}" lazy="true"
             paginator="true"
             rows="10"
             scrollable="true"
             var="item"
>

    <p:ajax event="page" global="false"/>
    <p:ajax event="sort" global="false"/>

    <p:column headerText="word0" sortBy="#{item.word0}">
        <h:outputText value="#{item.word0}"/>
    </p:column>
    <p:column headerText="word1" sortBy="#{item.word1}">
        <h:outputText value="#{item.word1}"/>
    </p:column>
    <p:column headerText="number1" sortBy="#{item.number1}">
        <h:outputText value="#{item.number1}"/>
    </p:column>
    <p:column headerText="number2" sortBy="#{item.number2}">
        <h:outputText value="#{item.number2}"/>
    </p:column>
</p:dataTable>

entire source here. https://github.com/hir0ku/adminfaces-operation-verification/blob/master/src/main/webapp/index.xhtml

Additional Information
rmpestano commented 4 years ago

Hi, there is no adminfaces "component" for the datatable, It is just styled by admin-theme

Do you have a full stacktrace?

Also can you reproduce on showcase datatable page: https://adminfaces-adminfaces.apps.ca-central-1.starter.openshift-online.com/pages/components/datatable.xhtml

hir0ku commented 4 years ago

there is no adminfaces "component" for the datatable, It is just styled by admin-theme

Sorry, I am misunderstanding. Anyway, thank you for your comments.

here is full stacktrace.

java.lang.NumberFormatException: For input string: "NaN"
    at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:68)
    at java.base/java.lang.Integer.parseInt(Integer.java:658)
    at java.base/java.lang.Integer.parseInt(Integer.java:776)
    at deployment.adminfaces-operation-verification-1.0-SNAPSHOT.war//org.primefaces.component.datatable.feature.SortFeature.convertSortOrderParam(SortFeature.java:221)
    at deployment.adminfaces-operation-verification-1.0-SNAPSHOT.war//org.primefaces.component.datatable.feature.SortFeature.decode(SortFeature.java:85)
    at deployment.adminfaces-operation-verification-1.0-SNAPSHOT.war//org.primefaces.component.datatable.DataTableRenderer.decode(DataTableRenderer.java:72)
    at javax.faces.api@2.3.9.SP01//javax.faces.component.UIComponentBase.decode(UIComponentBase.java:509)
    at deployment.adminfaces-operation-verification-1.0-SNAPSHOT.war//org.primefaces.component.api.UIData.processDecodes(UIData.java:319)
    at com.sun.jsf-impl@2.3.9.SP01//com.sun.faces.context.PartialViewContextImpl$PhaseAwareVisitCallback.visit(PartialViewContextImpl.java:606)
    at com.sun.jsf-impl@2.3.9.SP01//com.sun.faces.component.visit.PartialVisitContext.invokeVisitCallback(PartialVisitContext.java:159)
    at deployment.adminfaces-operation-verification-1.0-SNAPSHOT.war//org.primefaces.component.api.UIData.visitTree(UIData.java:874)
    at javax.faces.api@2.3.9.SP01//javax.faces.component.UIComponent.visitTree(UIComponent.java:1468)
    at javax.faces.api@2.3.9.SP01//javax.faces.component.UIComponent.visitTree(UIComponent.java:1468)
    at javax.faces.api@2.3.9.SP01//javax.faces.component.UIForm.visitTree(UIForm.java:355)
    at javax.faces.api@2.3.9.SP01//javax.faces.component.UIComponent.visitTree(UIComponent.java:1468)
    at javax.faces.api@2.3.9.SP01//javax.faces.component.UIComponent.visitTree(UIComponent.java:1468)
    at javax.faces.api@2.3.9.SP01//javax.faces.component.UIComponent.visitTree(UIComponent.java:1468)
    at com.sun.jsf-impl@2.3.9.SP01//com.sun.faces.context.PartialViewContextImpl.processComponents(PartialViewContextImpl.java:400)
    at com.sun.jsf-impl@2.3.9.SP01//com.sun.faces.context.PartialViewContextImpl.processPartial(PartialViewContextImpl.java:261)
    at deployment.adminfaces-operation-verification-1.0-SNAPSHOT.war//org.primefaces.context.PrimePartialViewContext.processPartial(PrimePartialViewContext.java:63)
    at javax.faces.api@2.3.9.SP01//javax.faces.context.PartialViewContextWrapper.processPartial(PartialViewContextWrapper.java:228)
    at javax.faces.api@2.3.9.SP01//javax.faces.component.UIViewRoot.processDecodes(UIViewRoot.java:1007)
    at com.sun.jsf-impl@2.3.9.SP01//com.sun.faces.lifecycle.ApplyRequestValuesPhase.execute(ApplyRequestValuesPhase.java:55)
    at com.sun.jsf-impl@2.3.9.SP01//com.sun.faces.lifecycle.Phase.doPhase(Phase.java:76)
    at com.sun.jsf-impl@2.3.9.SP01//com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:177)
    at javax.faces.api@2.3.9.SP01//javax.faces.webapp.FacesServlet.executeLifecyle(FacesServlet.java:707)
    at javax.faces.api@2.3.9.SP01//javax.faces.webapp.FacesServlet.service(FacesServlet.java:451)
    at io.undertow.servlet@2.0.19.Final//io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:74)
    at io.undertow.servlet@2.0.19.Final//io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:129)
    at deployment.adminfaces-operation-verification-1.0-SNAPSHOT.war//com.github.adminfaces.template.session.AdminFilter.doFilter(AdminFilter.java:128)
    at io.undertow.servlet@2.0.19.Final//io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)
    at io.undertow.servlet@2.0.19.Final//io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
    at io.opentracing.contrib.opentracing-jaxrs2//io.opentracing.contrib.jaxrs2.server.SpanFinishingFilter.doFilter(SpanFinishingFilter.java:55)
    at io.undertow.servlet@2.0.19.Final//io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)
    at io.undertow.servlet@2.0.19.Final//io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
    at io.undertow.servlet@2.0.19.Final//io.undertow.servlet.handlers.FilterHandler.handleRequest(FilterHandler.java:84)
    at io.undertow.servlet@2.0.19.Final//io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62)
    at io.undertow.servlet@2.0.19.Final//io.undertow.servlet.handlers.ServletChain$1.handleRequest(ServletChain.java:68)
    at io.undertow.servlet@2.0.19.Final//io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36)
    at org.wildfly.extension.undertow@16.0.0.Final//org.wildfly.extension.undertow.security.SecurityContextAssociationHandler.handleRequest(SecurityContextAssociationHandler.java:78)
    at io.undertow.core@2.0.19.Final//io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
    at io.undertow.servlet@2.0.19.Final//io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:132)
    at io.undertow.servlet@2.0.19.Final//io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57)
    at io.undertow.core@2.0.19.Final//io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
    at io.undertow.core@2.0.19.Final//io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46)
    at io.undertow.servlet@2.0.19.Final//io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:64)
    at io.undertow.core@2.0.19.Final//io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:60)
    at io.undertow.servlet@2.0.19.Final//io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:77)
    at io.undertow.core@2.0.19.Final//io.undertow.security.handlers.NotificationReceiverHandler.handleRequest(NotificationReceiverHandler.java:50)
    at io.undertow.core@2.0.19.Final//io.undertow.security.handlers.AbstractSecurityContextAssociationHandler.handleRequest(AbstractSecurityContextAssociationHandler.java:43)
    at io.undertow.core@2.0.19.Final//io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
    at org.wildfly.extension.undertow@16.0.0.Final//org.wildfly.extension.undertow.security.jacc.JACCContextIdHandler.handleRequest(JACCContextIdHandler.java:61)
    at io.undertow.core@2.0.19.Final//io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
    at org.wildfly.extension.undertow@16.0.0.Final//org.wildfly.extension.undertow.deployment.GlobalRequestControllerHandler.handleRequest(GlobalRequestControllerHandler.java:68)
    at io.undertow.core@2.0.19.Final//io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
    at io.undertow.servlet@2.0.19.Final//io.undertow.servlet.handlers.ServletInitialHandler.jrHandle(ServletInitialHandler.java:40001)
    at io.undertow.servlet@2.0.19.Final//org.zeroturnaround.javarebel.integration.servlet.undertow.cbp.ServletInitialHandlerCBP.handleRequest(ServletInitialHandlerCBP.java:138)
    at io.undertow.servlet@2.0.19.Final//io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:292)
    at io.undertow.servlet@2.0.19.Final//io.undertow.servlet.handlers.ServletInitialHandler.access$100(ServletInitialHandler.java:81)
    at io.undertow.servlet@2.0.19.Final//io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:138)
    at io.undertow.servlet@2.0.19.Final//io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:135)
    at io.undertow.servlet@2.0.19.Final//io.undertow.servlet.core.ServletRequestContextThreadSetupAction$1.call(ServletRequestContextThreadSetupAction.java:48)
    at io.undertow.servlet@2.0.19.Final//io.undertow.servlet.core.ContextClassLoaderSetupAction$1.call(ContextClassLoaderSetupAction.java:43)
    at org.wildfly.extension.undertow@16.0.0.Final//org.wildfly.extension.undertow.security.SecurityContextThreadSetupAction.lambda$create$0(SecurityContextThreadSetupAction.java:105)
    at org.wildfly.extension.undertow@16.0.0.Final//org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1502)
    at org.wildfly.extension.undertow@16.0.0.Final//org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1502)
    at org.wildfly.extension.undertow@16.0.0.Final//org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1502)
    at org.wildfly.extension.undertow@16.0.0.Final//org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1502)
    at io.undertow.servlet@2.0.19.Final//io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:272)
    at io.undertow.servlet@2.0.19.Final//io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:81)
    at io.undertow.servlet@2.0.19.Final//io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:104)
    at io.undertow.core@2.0.19.Final//io.undertow.server.Connectors.executeRootHandler(Connectors.java:364)
    at io.undertow.core@2.0.19.Final//io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:830)
    at org.jboss.threads@2.3.3.Final//org.jboss.threads.ContextClassLoaderSavingRunnable.run(ContextClassLoaderSavingRunnable.java:35)
    at org.jboss.threads@2.3.3.Final//org.jboss.threads.EnhancedQueueExecutor.safeRun(EnhancedQueueExecutor.java:1982)
    at org.jboss.threads@2.3.3.Final//org.jboss.threads.EnhancedQueueExecutor$ThreadBody.doRunTask(EnhancedQueueExecutor.java:1486)
    at org.jboss.threads@2.3.3.Final//org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1377)
    at java.base/java.lang.Thread.run(Thread.java:835)

I tried admin-showcase.war with my enviroment. (wildflay 16.0.0.Final) This problem dosen't occur. But i can't find difference between my application and showcase. My testing application is here. https://github.com/hir0ku/adminfaces-operation-verification

hir0ku commented 4 years ago

I remove "org.omnifaces.resourcehandler.CombinedResourceHandler" from faces-config.xml. This problem dosen't occur.

Can "org.omnifaces.resourcehandler.CombinedResourceHandler" and admin-template not be together?

hir0ku commented 4 years ago

related to https://github.com/adminfaces/admin-template/issues/190#issuecomment-560302019.

hir0ku commented 4 years ago

related to https://github.com/adminfaces/admin-template/issues/190#issuecomment-560366757 and close.