Quantcast
Channel: SmartClient Forums
Viewing all articles
Browse latest Browse all 4756

TreeGrid.invalidateCache() reports a collision when I refresh?

$
0
0
SmartClient Version: v9.1p_2014-09-09/PowerEdition Deployment (built 2014-09-09)
GWT 2.6.1
IE-11

I have a TreeGrid configured as follows:
Code:

            treeGrid.setAutoFetchData(Boolean.TRUE);
            treeGrid.setLoadDataOnDemand(Boolean.TRUE);
            treeGrid.setAlwaysShowOpener(Boolean.TRUE);

I am changing the depth of the Tree by changing external data structures and calling TreeGrid.invalidateCache() to trigger a refresh. My understanding is when a Grid is set to auto-fetch, you cannot do a manual fetch via Grid.fetchCriteria(criteria), as referenced in the Javadoc under ListGrid.fetchCriteria(criteria). So the only other way I assume to trigger a manual refresh is to do a Grid.invalidateCache() which does trigger a refresh (DSOperationType.FETCH), great.

When I get down to 1 record in the Tree and do my refresh, I am seeing an error about a collision in IDs in the tree:
Code:

ERROR: 15:11:16.009:TMR2:WARN:ResultTree:isc_ResultTree_0 (created by: isc_PivotTableGrid_5_0):Adding node to tree with id property set to:1. A node with this ID is already present in this Tree - that node will be replaced. Note that this warning may be disabled by setting the reportCollisions attribute to false.
com.smartgwt.client.core.JsObject$SGWT_WARN: 15:11:16.009:TMR2:WARN:ResultTree:isc_ResultTree_0 (created by: isc_PivotTableGrid_5_0):Adding node to tree with id property set to:1. A node with this ID is already present in this Tree - that node will be replaced. Note that this warning may be disabled by setting the reportCollisions attribute to false.
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
        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:172)
        at com.google.gwt.dev.shell.BrowserChannelServer.reactToMessages(BrowserChannelServer.java:293)
        at com.google.gwt.dev.shell.BrowserChannelServer.processConnection(BrowserChannelServer.java:547)
        at com.google.gwt.dev.shell.BrowserChannelServer.run(BrowserChannelServer.java:364)
        at java.lang.Thread.run(Thread.java:744)

And the Grid goes blank, I lose that original record and the updated record that I sent back during the refresh (FETCH)? The Grid did not complain about ID collisions when there are more than 1 record in the Grid?

Viewing all articles
Browse latest Browse all 4756

Trending Articles