Hello dear list, I wish it had been a longer while before I had to bother y'all again, but I am pulling my hairs out on this one.

   <deepBreath>
Here it goes: using java mapscript rev 6168 from svn, whenever I try to activate a specific layer, I get this:

msDrawMap(): Image handling error. Failed to draw layer named 'Layer_Tematica_RJ_145'.;: The map parent object is null.
   Tomcat does not crash, so I think this could be a good sign.

Digging trough mapserver code I was unable to find this message and look at its context to get a better idea of whats going on, so debuging my code step by step I came up with the following facts:

1- the layer where it crashes is the 68th in the line. Previously layers where drawn, both inline and non-inline ones. 2 - this layer is a clone from a layer that exists in the mapfile. It is declared with: layerObj layer = map.getLayerByName(nameFromConstant).cloneLayer();
              layer.setName("blahblahblah");
              try{
                   valores = mapa.insertLayer(layerValores, -1);
               }catch(Exception e){
throw new DGTKeyException("error.maxNumLayers", e.getMessage());
              }

3 - It only crashes when this layer is turned on. Map is shown with this layer off when user first logs and it can be turned on from a tree widget. If he does, boom. 4 - Just before calling map.draw(), both map.getLayerByName(name) and map.getLayer(index) return the right layer. whem map.draw() is called, boom. 5 - Suspecting of the clonage bits mixed with the changes to object parenthood Umberto implemented, I modified make threadtests to clone a bunch of layers, insert them into the map, juggle them around a bit like happens in my app and then call map.draw() in the hopes of reproducing the error. No go. The test works normally and no errors occur. :(
   and finally 6 - reverting to mapserver 4.10.1 "fixes" it.

   Any clues?

   Thanks!

   Rodrigo



--
*Rodrigo Del C. Andrade*
/Programador/
/SIC - SSE - Soluções Segurança Pública/

*DÍGITRO TECNOLOGIA*
*E-mail:* [EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>
*Fone:* +55 48 3281-7314 / +55 48 3281-7000
*Fax:* +55 48 3281-7299
*Site:* www.digitro.com <http://www.digitro.com>

Reply via email to