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!
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)
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 }] });
=== 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)
Comment