I've only just started using GWT and Ext for GWT this week, so please forgive any newbie mistakes I'm making.
I have been puzzling for the past 3 days on a very curious StackOverflowError when compiling my user interface. As far as I can tell, there seem to be some strange interaction between Viewport and PagingToolBar that causes this error. PagingToolBar does not even need to be added to the GUI, just instantiated and left unused for this Stack Overflow to occur. If I swapped Viewport with a VerticalPanel, the error does not occur. I'ld appreciate it if someone can point out what I'm doing wrong.
Here's the code that's causing the StackOverflowError:
BasePagingLoader<PagingLoadConfig, PagingLoadResult<Flag>> loader = new BasePagingLoader<PagingLoadConfig, PagingLoadResult<Flag>>(proxy);
loader.setRemoteSort(true);
loader.load(0, 50);
ListStore<Flag> store = new ListStore<Flag>(loader);
PagingToolBar tbFlagPaging = new PagingToolBar(10);
List<ColumnConfig> columns = new ArrayList<ColumnConfig>();
columns.add(new ColumnConfig("name", "Name", 50));
ColumnModel cmFlags = new ColumnModel(columns);
Grid<Flag> gdFlag = new Grid<Flag>(store, cmFlags);
gdFlag.setLoadMask(true);
gdFlag.setBorders(true);
gdFlag.setAutoExpandColumn("name");
ContentPanel pnMain = new ContentPanel();
pnMain.setBorders(false);
pnMain.setHeaderVisible(false);
pnMain.setLayout(new BorderLayout());
pnMain.setBottomComponent(tbFlagPaging);
pnMain.add(gdFlag, new BorderLayoutData(LayoutRegion.CENTER));
Viewport vpMain = new Viewport();
vpMain.setLayout(new BorderLayout());
vpMain.add(pnMain, new BorderLayoutData(LayoutRegion.CENTER));
//Replacing Viewport with the code below causes no errors.
//VerticalPanel vpMain = new VerticalPanel();
//vpMain.add(pnMain);
Here's the stack trace for the error (It actually goes on for several thousand lines, I've truncated the recursive stack trace):
Compiling module com.kor.extrasolar.admin.Admin
[ERROR] Unexpected internal compiler error
java.lang.StackOverflowError
at java.io.ObjectOutputStream$HandleTable.hash(Unknown Source)
at java.io.ObjectOutputStream$HandleTable.lookup(Unknown Source)
at java.io.ObjectOutputStream.writeObject0(Unknown Source)
at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source)
at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
at java.io.ObjectOutputStream.writeObject0(Unknown Source)
at java.io.ObjectOutputStream.writeObject(Unknown Source)
at java.util.ArrayList.writeObject(Unknown Source)
at sun.reflect.GeneratedMethodAccessor52.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at java.io.ObjectStreamClass.invokeWriteObject(Unknown Source)
at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
at java.io.ObjectOutputStream.writeObject0(Unknown Source)
at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source)
at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
at java.io.ObjectOutputStream.writeObject0(Unknown Source)
at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source)
at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
at java.io.ObjectOutputStream.writeObject0(Unknown Source)
at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source)
at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
at java.io.ObjectOutputStream.writeObject0(Unknown Source)
at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source)
at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
at java.io.ObjectOutputStream.writeObject0(Unknown Source)
at java.io.ObjectOutputStream.writeObject(Unknown Source)
at java.util.ArrayList.writeObject(Unknown Source)
at sun.reflect.GeneratedMethodAccessor52.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
...