<br><font size=2 face="sans-serif">Hallo Umberto, Fernando, Donovan and
...</font>
<br>
<br><font size=2 face="sans-serif">Thanks for coming back to this point.
This area is also still a big</font>
<br><font size=2 face="sans-serif">problem to me. (Especially I'm happy
about the Java/Oracle-guru-combination </font>
<br><font size=2 face="sans-serif">Fernando/Umberto.)</font>
<br>
<br><font size=2 face="sans-serif">It's maybe usefull to figure out where
we agree and where we disagree:</font>
<br>
<br><font size=2 face="sans-serif">- I disagree to Umberto with the use
of the Java-gc in Mapserver 4.6. I state:</font>
<br><font size=2 face="sans-serif">&nbsp; As long as Java/Mapserver is
at is is now (Version 4.6.1)</font>
<br><font size=2 face="sans-serif">&nbsp; one must not rely on gc only.
One has to call delete. </font>
<br><font size=2 face="sans-serif">&nbsp; To the question of Fernando:
&quot;</font><font size=2><tt>So the question is, where I can call delete?
</tt></font><font size=2 face="sans-serif">&quot;</font>
<br><font size=2 face="sans-serif">&nbsp; is my rule of thumb: &nbsp;</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp;&quot;Call delete on Mapserver-Objects
as soon as you can whenever a delete exists.&quot;</font>
<br>
<br><font size=2 face="sans-serif">&nbsp; As a matter of fact: By doing
so, delete is called more often then necessary, because</font>
<br><font size=2 face="sans-serif">&nbsp; in many cases the finaliser would
do a good job. &nbsp;But this doesn't matter.</font>
<br>
<br><font size=2 face="sans-serif">- I &nbsp;agree to Umberto that there
is a bug in Java/Mapserver behaviour.</font>
<br><font size=2 face="sans-serif">&nbsp; My suggestion is obvioulsy not
a solution but a way to live with</font>
<br><font size=2 face="sans-serif">&nbsp; the software as it is.</font>
<br>
<br><font size=2 face="sans-serif">If we would come to the question &quot;How
<i>should</i> Java/Mapserver behave&quot; </font>
<br><font size=2 face="sans-serif">my <i>personal </i>opinion is to look
at the way the Eclipse-People made SWT.</font>
<br><font size=2 face="sans-serif">They also had the problem, that Java-Objects
enclose ressources which are</font>
<br><font size=2 face="sans-serif">not managed by the Java-VM: http://www.eclipse.org/articles/swt-design-2/swt-design-2.html</font>
<br><font size=2 face="sans-serif">(Rule 1: If you created it, you dispose
it. )</font>
<br><font size=2 face="sans-serif">Following this approache would leave
to only small changes in Java/Mapserver-Code</font>
<br><font size=2 face="sans-serif">but to a different documentation of
the Java/Mapscript-API and it should be clearer</font>
<br><font size=2 face="sans-serif">when a objected has to be delete by
the way an object is created.</font>
<br><font size=2 face="sans-serif">(Actually I suppose, that Umberto will
disagree in this point &nbsp;... &nbsp;:-) )</font>
<br>
<br><font size=2 face="sans-serif">At last it's maybe usefull to share
experiences in stability:</font>
<br><font size=2 face="sans-serif">We wrote an Oracle-Spatial/Tomcat/Mapserver-Application
(Linux-Suse 9.3)</font>
<br><font size=2 face="sans-serif">- On our testsystem it runs very fine
for weeks.</font>
<br><font size=2 face="sans-serif">&nbsp; The testsystem even survives
stress-tests, where we simulate some browsers making</font>
<br><font size=2 face="sans-serif">&nbsp; many requests.</font>
<br><font size=2 face="sans-serif">- On the customers (production-)machine
we still have Tomcat crashes about one or</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp;two times the day. We didn't
find a solution (except a watchdog-software which restarts tomcat in </font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp;the crash-case :-( )</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp;This machine also survives
the one- or two-hour stress-tests!</font>
<br><font size=2 face="sans-serif">&nbsp;</font>
<br><font size=2 face="sans-serif">This happens although I'm quite shure,
that we followed the &quot;delete as soon as possible&quot;-rule.</font>
<br><font size=2 face="sans-serif">Crashes occure often somewhere in the
OCI. </font>
<br><font size=2 face="sans-serif">But &nbsp;I'm not able to be more precise
for the moment, because I have very restricted access to </font>
<br><font size=2 face="sans-serif">the production-machine and crashes which
occure only one or two times a day </font>
<br><font size=2 face="sans-serif">are obviously difficult to analyse.</font>
<br><font size=2 face="sans-serif">(Fernando: That does not necessarily
mean, that the Mapserver-Oracle-Code is buggy. This </font>
<br><font size=2 face="sans-serif">could be a consecutive fault from some
other memory-management-error ...)</font>
<br>
<br><font size=2 face="sans-serif">Benedikt &nbsp;</font>
<br>
<br><font size=2><tt>Umberto Nicoletti &lt;umberto.nicoletti@gmail.com&gt;
schrieb am 18.11.2005 13:09:38:<br>
<br>
&gt; On 11/18/05, Fernando Simon &lt;fsimon@univali.br&gt; wrote:<br>
&gt; &gt; Hi Benedikt and Umberto,<br>
&gt; &gt; &nbsp; &nbsp; Here I'm working with a project that uses JavaMapscript
and I'm with<br>
&gt; &gt; some stability problems. For the project I use Mapserver (I compiled<br>
&gt; &gt; myself, with multi thread support) with just these supports:<br>
&gt; &gt; JavaMapscript, Oracle Spatial (I develop the maporaclespatial.c),
Raster.<br>
&gt; &gt; &nbsp; &nbsp; Sometimes the server (TomCat) crashes in randomly
parts of the code,<br>
&gt; &gt; I suspect that the issue is with Java garbage collector and the
delete<br>
&gt; &gt; function. In the code I did as Benedict suggested, if I create
an object<br>
&gt; &gt; (like layer, class, style....), after I finished all the operations
with<br>
&gt; &gt; this object I delete it (using delete).<br>
&gt; &gt; &nbsp; &nbsp; But Umberto, wrote, correct me if I'm wrong, that
he don't use the<br>
&gt; &gt; delete function. So the question is, where I can call delete?
For what<br>
&gt; &gt; objects can I use delete?<br>
&gt; <br>
&gt; To be exact I wrote:<br>
&gt; <br>
&gt; /quote<br>
&gt; <br>
&gt; [...] this is why I never attempt to<br>
&gt; release objects on my own, but I always leave it up to the gc.<br>
&gt; Even in that case a segfault is indeed possible and that's why we
need<br>
&gt; to open an issue on bugzilla so that the developers know.<br>
&gt; <br>
&gt; quote/<br>
&gt; <br>
&gt; So my suggestion is: do not use delete at all, since the jvm will<br>
&gt; handle that for you automatically, but remember that this will not<br>
&gt; prevent random crashes from happening. The issue is unfortunately<br>
&gt; deeply rooted within mapserver, which was not coded for long<br>
&gt; multi-threaded operations, but rather for short-lived independent<br>
&gt; processes.<br>
&gt; <br>
&gt; To date I have found that Java mapscript can be used to provide basic<br>
&gt; mapping services with reasonable stability and performance when only<br>
&gt; the following components are involved:<br>
&gt; <br>
&gt; - shape support<br>
&gt; - raster support (via gdal)<br>
&gt; - proj<br>
&gt; <br>
&gt; In the future I will have to support postgis and that frankly worries
me a bit.<br>
&gt; <br>
&gt; HTH,<br>
&gt; Umberto<br>
&gt; <br>
&gt; &gt; &nbsp; &nbsp; Regards.<br>
&gt; &gt;<br>
&gt; &gt; ------------------------------------------------------------------------<br>
&gt; &gt; Fernando Simon<br>
&gt; &gt; Mapserver and Oracle Spatial developer<br>
&gt; &gt; G10 - Laboratorio de Computacao Aplicada - Brazil<br>
&gt; &gt; http://www.univali.br/g10 - UNIVALI/CTTMAR<br>
&gt; &gt; ------------------------------------------------------------------------<br>
&gt; &gt;<br>
&gt; &gt; Benedikt Rothe wrote:<br>
&gt; &gt;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; Hallo Umberto and Christian<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; Christian reported a crash in layerObj.delete() which I<br>
&gt; &gt; &gt; also detected.<br>
&gt; &gt; &gt; I think I understood the following:<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; Let's say, we have an initialized &nbsp;mapObj mO;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; layerObj lO = new layerObj(mO);<br>
&gt; &gt; &gt; // Say lO is the 5th layer now.<br>
&gt; &gt; &gt; // Now lO.swigCMemOwn == true and<br>
&gt; &gt; &gt; // &nbsp; &nbsp; lO.swigCPtr points onto the mO.swigCPtr-&gt;layers[4]<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; ...<br>
&gt; &gt; &gt; // now the mapObj is deleted but the Java-layerObj continues
to live.<br>
&gt; &gt; &gt; // the C-layer-Object mO.swigCPtr-&gt;layers[4] will deleted
and freed also!<br>
&gt; &gt; &gt; mO.delete()<br>
&gt; &gt; &gt; // From now on O.swigCPtr points into invalid piece of C-memory.<br>
&gt; &gt; &gt; ...<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; Later on the Java-garbage-collector finalizes the layerObj.<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; Because of &quot;lO.swigCMemOwn == true&quot; and &quot;lO.swigCPtr!=0&quot;
the<br>
&gt; &gt; &gt; finalize-method calls<br>
&gt; &gt; &gt; layerObj.delete(). This method frees lO.swigCPtr which is
invalid memory.<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; Same story about layerObj/classObj.<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; Benedikt Rothe<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; UMN MapServer Users List &lt;MAPSERVER-USERS@LISTS.UMN.EDU&gt;
schrieb am<br>
&gt; &gt; &gt; 28.06.2005 12:16:01:<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; Hello Umberto,<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; Umberto Nicoletti wrote:<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt;Hi Christian,<br>
&gt; &gt; &gt; &gt; &gt;I do not think the error you are getting is due
to threading issues,<br>
&gt; &gt; &gt; &gt; &gt;but trying what Mario suggests will at least narrow
the search field.<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt;In case you are still getting errors even with
synchronized code<br>
&gt; &gt; &gt; &gt; &gt;blocks I have a few questions for you to help me
understand your<br>
&gt; &gt; &gt; &gt; &gt;setup:<br>
&gt; &gt; &gt; &gt; &gt;Do you always get errors in delete_classObj or
do the segfaults happen<br>
&gt; &gt; &gt; &gt; &gt;in different functions?<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; Yes, the segfaults alway happen in the delete_classObj
function.<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt;If the segfault is always caused by<br>
&gt; &gt; &gt; &gt; &gt;delete_ClassObj then I suppose you are creating
class objects in your<br>
&gt; &gt; &gt; &gt; &gt;java code. Is that true?<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; Yes, that's true, I need to create classObjects.<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt;If that is the case then we can setup a very simple
test to reproduce<br>
&gt; &gt; &gt; &gt; &gt;the problem: modify one of the examples so that
it will load a map and<br>
&gt; &gt; &gt; &gt; &gt;then start adding classes in similar fashion to
your code, but in a<br>
&gt; &gt; &gt; &gt; &gt;tight loop. Classes should be made eligible for
gc by dropping all<br>
&gt; &gt; &gt; &gt; &gt;references to them. As soon as gc kicks in the
vm should crash. At<br>
&gt; &gt; &gt; &gt; &gt;that point it will be clear that the problem is
in delete_ClassObj and<br>
&gt; &gt; &gt; &gt; &gt;the hunting season will be open.<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; I have tested a proposed solution by Benedikt Rothe
yet, which said that<br>
&gt; &gt; &gt; &gt; one should call the delete method of the classObject
after it is not<br>
&gt; &gt; &gt; &gt; needed any more.<br>
&gt; &gt; &gt; &gt; This confirms my assumption that this problem occours
when java's<br>
&gt; &gt; &gt; &gt; garbage-collector destroys the null-referenced objects.
Now it seems to<br>
&gt; &gt; &gt; &gt; work properly.<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; The mapserver version we actually use is 4.4.1, we
have tested 4.4.2,<br>
&gt; &gt; &gt; &gt; 4.2.4 and 4.6.0, too before.<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; Thank you all for your help!<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; Best Regards,<br>
&gt; &gt; &gt; &gt; Christian :-)<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt;BTW can you report the mapserver version you are
using (I have 4.4.2<br>
&gt; &gt; &gt; &gt; &gt;and I know it works, so if you can use that).<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt;Best Regards,<br>
&gt; &gt; &gt; &gt; &gt;Umberto<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt;On 6/21/05, Christian Schroeder &lt;mailings@abiwood99.de&gt;
wrote:<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt;&gt;Hello Umberto,<br>
&gt; &gt; &gt; &gt; &gt;&gt;<br>
&gt; &gt; &gt; &gt; &gt;&gt;thank your for your immediate answer.<br>
&gt; &gt; &gt; &gt; &gt;&gt;I do not call the delete_ methody directly
and don't think I am using<br>
&gt; &gt; &gt; &gt; &gt;&gt;special gc parameters.<br>
&gt; &gt; &gt; &gt; &gt;&gt;<br>
&gt; &gt; &gt; &gt; &gt;&gt;And... I have read the README file before compiling
the mapserver :-)<br>
&gt; &gt; &gt; &gt; &gt;&gt;<br>
&gt; &gt; &gt; &gt; &gt;&gt;I will try to get it to work with &quot;synchronized&quot;-flags
als Mario Basa<br>
&gt; &gt; &gt; &gt; &gt;&gt;supposed.<br>
&gt; &gt; &gt; &gt; &gt;&gt;<br>
&gt; &gt; &gt; &gt; &gt;&gt;Thank you!<br>
&gt; &gt; &gt; &gt; &gt;&gt;<br>
&gt; &gt; &gt; &gt; &gt;&gt;Christian<br>
&gt; &gt; &gt; &gt; &gt;&gt;<br>
&gt; &gt; &gt; &gt; &gt;&gt;<br>
&gt; &gt; &gt; &gt; &gt;&gt;Umberto Nicoletti schrieb:<br>
&gt; &gt; &gt; &gt; &gt;&gt;<br>
&gt; &gt; &gt; &gt; &gt;&gt;<br>
&gt; &gt; &gt; &gt; &gt;&gt;<br>
&gt; &gt; &gt; &gt; &gt;&gt;&gt;Christian,<br>
&gt; &gt; &gt; &gt; &gt;&gt;&gt;are you calling the delete_ methods directly
in your code or are you<br>
&gt; &gt; &gt; &gt; &gt;&gt;&gt;using some special gc paramaters?<br>
&gt; &gt; &gt; &gt; &gt;&gt;&gt;<br>
&gt; &gt; &gt; &gt; &gt;&gt;&gt;As a side note the --use-threads option
to configure is *absolutely*<br>
&gt; &gt; &gt; &gt; &gt;&gt;&gt;necessary, as are brakes on your car. I
think we should write it in<br>
&gt; &gt; &gt; &gt; &gt;&gt;&gt;the README (as if someone actually cared
to read it :-( ).<br>
&gt; &gt; &gt; &gt; &gt;&gt;&gt;<br>
&gt; &gt; &gt; &gt; &gt;&gt;&gt;Best regards,<br>
&gt; &gt; &gt; &gt; &gt;&gt;&gt;Umberto<br>
&gt; &gt; &gt; &gt; &gt;&gt;&gt;<br>
&gt; &gt; &gt; &gt; &gt;&gt;&gt;<br>
&gt; &gt; &gt; &gt; &gt;&gt;&gt;On 6/21/05, Sean Gillies &lt;sgillies@frii.com&gt;
wrote:<br>
&gt; &gt; &gt; &gt; &gt;&gt;&gt;<br>
&gt; &gt; &gt; &gt; &gt;&gt;&gt;<br>
&gt; &gt; &gt; &gt; &gt;&gt;&gt;<br>
&gt; &gt; &gt; &gt; &gt;&gt;&gt;<br>
&gt; &gt; &gt; &gt; &gt;&gt;&gt;&gt;I'm forwarding this to the users list.
Hopefully, Umberto will<br>
&gt; &gt; &gt; be able<br>
&gt; &gt; &gt; &gt; &gt;&gt;&gt;&gt;to provide some insight.<br>
&gt; &gt; &gt; &gt; &gt;&gt;&gt;&gt;<br>
&gt; &gt; &gt; &gt; &gt;&gt;&gt;&gt;cheers,<br>
&gt; &gt; &gt; &gt; &gt;&gt;&gt;&gt;Sean<br>
&gt; &gt; &gt; &gt; &gt;&gt;&gt;&gt;<br>
&gt; &gt; &gt; &gt; &gt;&gt;&gt;&gt;On Jun 16, 2005, at 5:08 PM, Christian
Schröder wrote:<br>
&gt; &gt; &gt; &gt; &gt;&gt;&gt;&gt;<br>
&gt; &gt; &gt; &gt; &gt;&gt;&gt;&gt;<br>
&gt; &gt; &gt; &gt; &gt;&gt;&gt;&gt;<br>
&gt; &gt; &gt; &gt; &gt;&gt;&gt;&gt;<br>
&gt; &gt; &gt; &gt; &gt;&gt;&gt;&gt;<br>
&gt; &gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;Dear Mr. Gillies,<br>
&gt; &gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;<br>
&gt; &gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;some weeks ago me and Florian Pepping
contacted you because we had<br>
&gt; &gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;problems using the Java Mapscript
API. Thanks to you we could solve<br>
&gt; &gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;these problems :-)<br>
&gt; &gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;<br>
&gt; &gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;Now we got our program doing what
it's supposed to do but there is<br>
&gt; &gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;still a big problem left which
we were not able to solve yet:<br>
&gt; &gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;We created a simple servlet which
is created inside a Tomcat 5.0<br>
&gt; &gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;Webserver. This servlet created
a map image (png/jpg) and displays<br>
&gt; &gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;some specified objects on the map.
(We use it for location based<br>
&gt; &gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;services --&gt; &quot;show me the
position of the next printer&quot;).<br>
&gt; &gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;After an irregular number of calls
of our servlet which uses<br>
&gt; &gt; &gt; the Java<br>
&gt; &gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;Mapscript API the complete Java
VM and with it the Tomcat<br>
&gt; &gt; &gt; crashes. I<br>
&gt; &gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;attached the error report below.
The program works properly for a<br>
&gt; &gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;number of calls (between 5 and
1000 :-) ) and after that it<br>
&gt; &gt; &gt; crashes.<br>
&gt; &gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;We have tried several versions
of the mapserver (4.4.1, 4.4.2,<br>
&gt; &gt; &gt; 4.2.4,<br>
&gt; &gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;4.6.1 RC1) and compiled the Java
Mapscript Module with JDK<br>
&gt; &gt; &gt; 1.4.2 and<br>
&gt; &gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;1.5.0. We also configured mapserver
using the --with-threads<br>
&gt; &gt; &gt; option,<br>
&gt; &gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;but all this did not help. By the
way the mapserv cgi-module works<br>
&gt; &gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;properly.<br>
&gt; &gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;<br>
&gt; &gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;Do you have an idea for this?<br>
&gt; &gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;<br>
&gt; &gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;Thanks for your anxiety<br>
&gt; &gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;<br>
&gt; &gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;Christian &amp; Florian<br>
&gt; &gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;University of Paderborn, Germany<br>
&gt; &gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;<br>
&gt; &gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;<br>
&gt; &gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;-------------------------------------------------------------------<br>
&gt; &gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;<br>
&gt; &gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;JavaMapscriptLoader: mapscript
native library has been loaded.<br>
&gt; &gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;* mapscript native library loaded
*<br>
&gt; &gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;<br>
&gt; &gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;An unexpected exception has been
detected in native code<br>
&gt; &gt; &gt; outside the<br>
&gt; &gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;VM.<br>
&gt; &gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;Unexpected Signal : 11 occurred
at PC=0x3338268<br>
&gt; &gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;Function=delete_classObj+0x8<br>
&gt; &gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;Library=/usr/lib/libmapscript.so<br>
&gt; &gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;<br>
&gt; &gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;Current Java thread:<br>
&gt; &gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt; &nbsp; &nbsp; &nbsp; at edu.umn.gis.mapscript.mapscriptJNI.delete_classObj(Native<br>
&gt; &gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;Method)<br>
&gt; &gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt; &nbsp; &nbsp; &nbsp; at edu.umn.gis.mapscript.classObj.delete(classObj.java:32)<br>
&gt; &gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt; &nbsp; &nbsp; &nbsp; at edu.umn.gis.mapscript.classObj.finalize(classObj.java:26)<br>
&gt; &gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt; &nbsp; &nbsp; &nbsp; at java.lang.ref.Finalizer.invokeFinalizeMethod(Native<br>
&gt; &gt; &gt; Method)<br>
&gt; &gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt; &nbsp; &nbsp; &nbsp; at java.lang.ref.Finalizer.runFinalizer(Finalizer.java:83)<br>
&gt; &gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt; &nbsp; &nbsp; &nbsp; at java.lang.ref.Finalizer.access$100(Finalizer.java:14)<br>
&gt; &gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt; &nbsp; &nbsp; &nbsp; at<br>
&gt; &gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:160)<br>
&gt; &gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;<br>
&gt; &gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;Dynamic libraries:<br>
&gt; &gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;Can not get information for pid
= 10558<br>
&gt; &gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;<br>
&gt; &gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;Heap at VM Abort:<br>
&gt; &gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;Heap<br>
&gt; &gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;def new generation &nbsp; total
1152K, used 135K [0x08ae0000,<br>
&gt; &gt; &gt; 0x08c20000,<br>
&gt; &gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;0x08fc0000)<br>
&gt; &gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt; eden space 1024K, &nbsp; 0% used
[0x08ae0000, 0x08ae4078, 0x08be0000)<br>
&gt; &gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt; from space 128K, 100% used [0x08c00000,
0x08c20000, 0x08c20000)<br>
&gt; &gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt; to &nbsp; space 128K, &nbsp; 0%
used [0x08be0000, 0x08be0000, 0x08c00000)<br>
&gt; &gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;tenured generation &nbsp; total
15048K, used 13624K [0x08fc0000,<br>
&gt; &gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;0x09e72000,<br>
&gt; &gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;0x0cae0000)<br>
&gt; &gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt; &nbsp;the space 15048K, &nbsp;90%
used [0x08fc0000, 0x09d0e1c0, 0x09d0e200,<br>
&gt; &gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;0x09e72000)<br>
&gt; &gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;compacting perm gen &nbsp;total
18432K, used 18373K [0x0cae0000,<br>
&gt; &gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;0x0dce0000,<br>
&gt; &gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;0x10ae0000)<br>
&gt; &gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt; &nbsp;the space 18432K, &nbsp;99%
used [0x0cae0000, 0x0dcd1618, 0x0dcd1800,<br>
&gt; &gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;0x0dce0000)<br>
&gt; &gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;<br>
&gt; &gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;Local Time = Tue Jun 14 15:32:19
2005<br>
&gt; &gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;Elapsed Time = 246<br>
&gt; &gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;#<br>
&gt; &gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;# The exception above was detected
in native code outside the VM<br>
&gt; &gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;#<br>
&gt; &gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;# Java VM: Java HotSpot(TM) Client
VM (1.4.2_08-b03 mixed mode)<br>
&gt; &gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;#<br>
&gt; &gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;# An error report file has been
saved as /tmp/hs_err_pid10558.log.<br>
&gt; &gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;# Please refer to the file for
further information.<br>
&gt; &gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;#<br>
&gt; &gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;<br>
&gt; &gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;-------------------------------------------------------------------<br>
&gt; &gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;<br>
&gt; &gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;On Mar 22, 2005, at 12:02 PM, Florian
Pepping wrote:<br>
&gt; &gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;<br>
&gt; &gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;<br>
&gt; &gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;<br>
&gt; &gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;<br>
&gt; &gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;<br>
&gt; &gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;Dear Mr. Gillies,<br>
&gt; &gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt; &gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;I'm a student of the University
of Paderborn in Germany and<br>
&gt; &gt; &gt; member of<br>
&gt; &gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;the project group &quot;Location
Based Services for Wireless<br>
&gt; &gt; &gt; Devices&quot;. In<br>
&gt; &gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;this project we try to position
laptops and other WLAN-enabled<br>
&gt; &gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;devices &nbsp;using the signal
strength of the WLAN. According to their<br>
&gt; &gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;position, we &nbsp;want to
offer location based services to the persons<br>
&gt; &gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;using the devices &nbsp;(where
I am; where's the next printer; is<br>
&gt; &gt; &gt; there a<br>
&gt; &gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;friend nearby)<br>
&gt; &gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt; &gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;In order to do this, we want
to use your mapserver and the Java<br>
&gt; &gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;Mapscript API to generate maps
according to the actual<br>
&gt; &gt; &gt; position and<br>
&gt; &gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;situation. We like to customize
the map of our building and add<br>
&gt; &gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;points, lines and so on.<br>
&gt; &gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt; &gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;We have been able to compile
the whole mapserver and the Java<br>
&gt; &gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;Mapscript API. A small Java
example also works, which presents an<br>
&gt; &gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;unchanged map of our building.<br>
&gt; &gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt; &gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;[...]<br>
&gt; &gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt; &gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt; &gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt; &gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt; &gt; &gt; &gt; &gt;&gt;&gt;<br>
&gt; &gt; &gt; &gt; &gt;&gt;&gt;<br>
&gt; &gt; &gt; &gt; &gt;&gt;&gt;<br>
&gt; &gt; &gt; &gt; &gt;&gt;&gt;<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt;<br>
&gt; &gt;<br>
&gt; &gt;<br>
</tt></font>