Name: rlT66838 Date: 06/29/2000
Y:\>java -version
java version "1.3.0"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.3.0-C)
Java HotSpot(TM) Client VM (build 1.3.0-C, mixed mode)
System.loadLibrary("dbService"); //c++ dll
...code preparing StringBuffer strParms
executeC(strParms.toString());
//a message shows up and crashed
# An EXCEPTION_STACK_OVERFLOW exception has been detected in native code
outside the VM.
executeC(char*) is within deService.dll. If it were small, the program ran
fine. But when it does the real work, e.g. fetching data from db, it crashes
before returning to Java. The same dll works fine within VB/COM or C++ which
weid like to move away. My NT has plenty memory when it occurs. Is there
anyway to increase the stack by setting or configuration?
It's impossible to mail my dbService.dll as
well as its co-dll's for you to create the bug, since
they are all large binary legacy code, need db's and
other company environment to reach the break point.
The confusion is that problem wouldn't occur if the
JNI function were light/small. It won't overflow
under C++/VB/COM either. It seems an invisible limit
is imposed when called by Java JNI. It may be just
some unpopular setting or configuration. It'll be
very helpful if you can point that out.
I'm not sure whether it's a bug or not. I searched
Sun's JDC threads and found the same questions without
answers. I also found similar cases listed as Bug in
Progress.
(Review ID: 106426)
======================================================================