OK, the release notes say that in 0.9p you "Fixed a ClassCastException in DataSource.fromConfig()".
Now take into account these facts:
1. I have never used any version prior to 1.0
2. paibanez (the original poster) has reported a problem but in his stack it was at DataSource.fromConfig(DataSource.java:1580), my stack is at DataSource.fromConfig(DataSource.java:1643)
3. I just downloaded 1.0 once more and unzippped on another computer so you cannot say that it's due to my environment. I unzipped the jar file and the source is exactly the one I have debugged.
The faulty line is:
The full method code extracted from smartgwt-mobile.jar 1.0 is:
Now take into account these facts:
1. I have never used any version prior to 1.0
2. paibanez (the original poster) has reported a problem but in his stack it was at DataSource.fromConfig(DataSource.java:1580), my stack is at DataSource.fromConfig(DataSource.java:1643)
3. I just downloaded 1.0 once more and unzippped on another computer so you cannot say that it's due to my environment. I unzipped the jar file and the source is exactly the one I have debugged.
The faulty line is:
Code:
OperationBinding binding = (OperationBinding)bindings.get(i);
Code:
protected static DataSource fromConfig(String configText) { // Strip off extraneous SmartClient object creation stuff - we just want the config int start = configText.indexOf("{"); int end = configText.lastIndexOf("}") + 1; if (start == -1 || end < start) return null; String forEval = configText.substring(start, end); Map<String, Object> config = JSONUtils.toRecord(JSONUtils.evalJSONString(forEval)); DataSource ds = new DataSource((String)config.get("ID")); @SuppressWarnings("unchecked") List<Record> fields = (List<Record>)config.get("fields"); DataSourceField[] dsFields = new DataSourceField[fields.size()]; if (fields != null) { for (int i = 0; i < fields.size(); i++) { dsFields[i] = new DataSourceField(fields.get(i)); } } @SuppressWarnings("unchecked") List<OperationBinding> bindings = (List<OperationBinding>)config.get("operationBindings"); OperationBinding[] operationBindings = null; if (bindings != null) { operationBindings = new OperationBinding[bindings.size()]; if (fields != null) { for (int i = 0; i < bindings.size(); i++) { OperationBinding binding = (OperationBinding)bindings.get(i); operationBindings[i] = new OperationBinding(binding); } } } for (Map.Entry<String, Object> e : config.entrySet()) { ds.attributes.put(e.getKey(), e.getValue()); } ds.setFields(dsFields); if (operationBindings != null) ds.setOperationBindings(operationBindings); return ds; }
Comment