Quick search here revealed lotsa similar problems, but no real resolution. All reported on emulator and fix might be available by upgrading emulator SDK.
I get the error on the 3510i phone. More I use the connections, more likely the error is to happen.
HTTP post to the server is simple. Reply is a PNG, that is shown via createImage. After doing this couple of times, phone splashes the "Global root overflow" (gray screen of death ;-)
Last HTTP post however told that there's for instance 110KB of free memory(obtained from Runtime class).
At least on emulator the reply from server was in chunked mode, application/octet-stream and no content length, so the routine fell to read one byte at a time until finished. And still that fatal error occasionally.
Is there any way of telling what overflowed( native heap)?
Might the 7650 error on dynamic createImage() and images not being destructed be on 3510i also?
Can it be caught somehow? Any ideas on debugging / isolating the problem?
Too bad it shows only in physical device, not in emulator. And also in conjunction with HTTP i/o (as it seems). Otherwise I could try to post debug info to the server ;-)
Extensive runs on emulator (varous phone makes) reveal nothing fatal. Everything works ok. Also on 3410 I never got that error :-(
We also suffer this problem. But our situation is very weird.
We have tested our midlet on series 40 emulator, and the testing
results were perfect. Then, we tested it on two physical handset
(6100). One handset behaved normally, and another always got
the "Global root error".
PS: We use HTTPConnection, Graphics, and audio APIs in our
In the software versions before January 2003 there was an error where the HTTP API could cause a global root overflow.
Since January 2003 problem was fixed and does not accur with these later SW versions.
The global root overflow only occurs if a lot of HTTP requests are made and there is no data in the response,
so the simple solution is to ensure that the problem does not occur on any build is to make sure each
HTTP response does contain some body data, the MIDlet can read and discard this if none is expected.