Announcement

Collapse
No announcement yet.
X
  • Filter
  • Time
Clear All
new posts

    Null date in ListGrid DateItem throws server error on save / validation

    I'm getting a server error when trying to save a null date value from a ListGrid with DateItem editor. I've coded this in several different was and I'm consistently getting the error.

    In the simplest scenario (code below), if I delete the date value in the editor text field, I get a server error when I saveEdits() (stack trace below). I get the same behavior when I call setValue(null) and clearValue() on the field (then saveEdits()).

    It seems to be some issue with validation. There are no validators declared in the dataSource.

    I'm using SmartClient Version 8.1. (Tomcat server 6.0.20)

    I'm sure I'm missing something simple, this seems very basic... I've searched the docs and forums with no luck.

    Thanks in advance!

    Code:
        myGrid = isc.ListGrid.create({
            dataSource: myDS,
            autoFetchData: true,
            fields: [{
                name: "myImportantDate"
                title: "Enter Date",
                type: "date",
                editorType: "DateItem",
                useTextField: true
            }]
        });
    Stack Trace: ============================
    === 2011-12-13 09:42:43,672 [ec-2] DEBUG RPCManager - Request #1 (DSRequest) payload: {
    ...
    values:{
    myImportantDate:{}
    },
    operationConfig:{dataSource:"myDS", operationType:"update"},
    componentId:"isc_ListGrid_1",
    appID:"builtinApplication",
    operation:"myDS_update",
    oldValues:{
    ...
    myImportantDate:new Date(1298264400000)
    }
    }
    === 2011-12-13 09:42:43,673 [ec-2] INFO IDACall - Performing 1 operation(s)
    === 2011-12-13 09:42:43,673 [ec-2] WARN RequestContext - dsRequest.execute() failed:
    java.lang.ClassCastException: org.apache.commons.collections.SequencedHashMap cannot be cast to java.lang.String
    at com.isomorphic.util.Validator$isDate.validate(Validator.java:298)
    at com.isomorphic.util.Validator.processValidator(Validator.java:171)
    at com.isomorphic.util.Validator.validateField(Validator.java:142)
    at com.isomorphic.util.Validator.validateField(Validator.java:111)
    at com.isomorphic.datasource.SimpleType.validateValue(SimpleType.java:95)
    at com.isomorphic.datasource.SimpleType.create(SimpleType.java:65)
    at com.isomorphic.datasource.BasicDataSource.validateFieldValue(BasicDataSource.java:889)
    at com.isomorphic.datasource.BasicDataSource.validateFieldValue(BasicDataSource.java:842)
    at com.isomorphic.datasource.BasicDataSource.toRecord(BasicDataSource.java:530)
    at com.isomorphic.datasource.BasicDataSource.toRecords(BasicDataSource.java:472)
    at com.isomorphic.datasource.BasicDataSource.toRecords(BasicDataSource.java:435)
    at com.isomorphic.datasource.DataSource.validateDSRequest(DataSource.java:1289)
    at com.isomorphic.datasource.DataSource.validateDSRequest(DataSource.java:1247)
    at com.isomorphic.datasource.DataSourceDMI.execute(DataSourceDMI.java:162)
    at com.isomorphic.datasource.DataSourceDMI.execute(DataSourceDMI.java:62)
    at com.isomorphic.datasource.DSRequest.execute(DSRequest.java:1172)
    at com.isomorphic.servlet.IDACall.handleDSRequest(IDACall.java:155)
    at com.isomorphic.servlet.IDACall.processRequest(IDACall.java:106)
    at com.isomorphic.servlet.IDACall.doPost(IDACall.java:54)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
    at com.isomorphic.servlet.BaseServlet.service(BaseServlet.java:152)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:306)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at com.isomorphic.servlet.CompressionFilter.doFilter(CompressionFilter.java:248)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:244)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:240)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:161)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:108)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:379)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:243)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:259)
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:281)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)

    #2
    The problem is most likely in your DataSource or the data it's delivering to the client, but you haven't shown either of these.

    Comment

    Working...
    X