I have a small and a big ListGrid that both share the same datasource, but use different criteria. The small one is an expansion component of the big one, but I'm not sure that has anything to do with my problem. The small grid has 2-3 records. The big one has almost 10000. I use paging to make this fast. The big grid has an active sort. The small one does not.
When I drag a record from the small grid into the big one, everything seems to work fine in the UI, except that I get this error in the "Development Mode" window in Eclipse (be sure to scroll to the right):
I left out a lot of the undefs. There are so many that it damn near takes out Eclipse. The error itself doesn't render properly, and after it happens most of Eclipse doesn't render properly anymore either. The only way I could even look at it was because copy&paste still works.
It's probably worth mentioning that the big grid has a custom onRecordDrop() method:
Update: I'm using a SmartGWT 2.5 nightly build (SC_SNAPSHOT-2011-04-11/Pro Deployment 2011-04-11), on GWT 2.1.1,
When I drag a record from the small grid into the big one, everything seems to work fine in the UI, except that I get this error in the "Development Mode" window in Eclipse (be sure to scroll to the right):
Code:
15:50:15.375 [ERROR] [kpexbrowser] 15:50:15.361:XRP6:WARN:Log:Attempt to sort array by property hit null entry where a record should be. Array:[Obj, Obj, Obj, Obj, Obj, Obj, Obj, Obj, Obj, Obj, Obj, Obj, Obj, Obj, Obj, Obj, Obj, Obj, Obj, Obj, Obj, Obj, Obj, Obj, Obj, Obj, Obj, Obj, Obj, Obj, Obj, Obj, Obj, Obj, Obj, Obj, Obj, Obj, Obj, Obj, Obj, Obj, Obj, Obj, Obj, Obj, Obj, Obj, Obj, Obj, Obj, Obj, Obj, Obj, Obj, Obj, Obj, Obj, Obj, Obj, Obj, Obj, Obj, Obj, Obj, Obj, Obj, Obj, Obj, Obj, Obj, Obj, Obj, Obj, Obj, Obj, undef, undef, undef, undef, undef, undef, undef, undef, ..., undef, undef, undef ] com.smartgwt.client.core.JsObject$SGWT_WARN: 15:50:15.361:XRP6:WARN:Log:Attempt to sort array by property hit null entry where a record should be. Array:[Obj, Obj, Obj, Obj, Obj, Obj, Obj, Obj, Obj, Obj, Obj, Obj, Obj, Obj, Obj, Obj, Obj, Obj, Obj, Obj, Obj, Obj, Obj, Obj, Obj, Obj, Obj, Obj, Obj, Obj, Obj, Obj, Obj, Obj, Obj, Obj, Obj, Obj, Obj, Obj, Obj, Obj, Obj, Obj, Obj, Obj, Obj, Obj, Obj, Obj, Obj, Obj, Obj, Obj, Obj, Obj, Obj, Obj, Obj, Obj, Obj, Obj, Obj, Obj, Obj, Obj, Obj, Obj, Obj, Obj, Obj, Obj, Obj, Obj, Obj, Obj, undef, undef, undef, undef, undef, undef, undef, undef, undef, undef, undef, undef, undef, undef, undef, undef, undef, undef, undef, undef, undef, undef, undef, ..., undef, undef ] at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) at java.lang.reflect.Constructor.newInstance(Constructor.java:513) at com.google.gwt.dev.shell.MethodAdaptor.invoke(MethodAdaptor.java:105) at com.google.gwt.dev.shell.MethodDispatch.invoke(MethodDispatch.java:71) at com.google.gwt.dev.shell.OophmSessionHandler.invoke(OophmSessionHandler.java:157) at com.google.gwt.dev.shell.BrowserChannelServer.reactToMessages(BrowserChannelServer.java:281) at com.google.gwt.dev.shell.BrowserChannelServer.processConnection(BrowserChannelServer.java:531) at com.google.gwt.dev.shell.BrowserChannelServer.run(BrowserChannelServer.java:352) at java.lang.Thread.run(Thread.java:662)
It's probably worth mentioning that the big grid has a custom onRecordDrop() method:
Code:
public void onRecordDrop(final RecordDropEvent event) { // cancel default behavior event.cancel(); for(final Record record : event.getDropRecords()) { // make a copy of the old record final Record newRecord = new Record(record.toMap()); newRecord.setAttribute( "parentKey", MyBean.ROOT_PARENT_KEY); final DSRequest request = new DSRequest(); request.setOldValues(record); // actually update the row getDataSource().updateData( newRecord, new DSCallback() { public void execute( final DSResponse response, final Object rawData, final DSRequest request ) { // do nothing } }, request); } }
Comment