msDrawMap(): Map parent object is null

Rodrigo Del C. Andrade rodrigo.andrade at DIGITRO.COM.BR
Tue Jun 5 15:20:23 EDT 2007


    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:* rodrigo.andrade at digitro.com.br 
<mailto:rodrigo.andrade at digitro.com.br>
*Fone:* +55 48 3281-7314 / +55 48 3281-7000
*Fax:* +55 48 3281-7299
*Site:* www.digitro.com <http://www.digitro.com>



More information about the mapserver-users mailing list