[Gvsig_desarrolladores] Problemas con extension en la version 1.0.2 de SIG

Jose Manuel Vivó (Chema) josemanuel.vivo en iver.es
Jue Jul 26 08:29:22 CEST 2007


Hola Jaime:

  El problema es la fuente de datos esta 'cerrada'. En la versión 1.0.2 la 
fuentes de datos se abren justo cuando se van a empezar a trabajar con los 
datos. Usa 'va.start()' antes de pedir la geometría y 'va.stop()' cuando ya 
termines de usarla.


Un Saludo.
Chema.

El Jueves 26 Julio 2007 01:43, Jaime Traver escribió:
> Hola a todos,
>
> Estoy teniendo problemas con una extensión en la versión 1.0.2 de SIG, que
> con la 1.0 no tenia, os planteo como lo tengo hecho y haber si encontramos
> expliación al error, de entrada es una excepción
> java.lang.NullPointerException,
>
> Atributros de la clase:
>
>         private ReadableVectorial va;
>         private FLayer layerTolocate;
>         private FLyrVect lyrVect;
>         private MapControl mapControl;
>
>
>     public void ObtenerCapaActiva(){
>         FLayers layer=mapControl.getMapContext().getLayers();
>         FLayer[] visibles = layer.getVisibles();
>         for (int i=0; i<visibles.length; i++){
>             if (visibles[i].isActive() && visibles[i] instanceof FLyrVect)
>                 layerTolocate = mapControl.getMapContext
> ().getLayers().getLayer(i-1);
>         }
>     }
>     public OperacionesVistas(MapContext mapContext){
>
>          mapControl = new MapControl();
>          mapControl.setMapContext(mapContext);
>          ObtenerCapaActiva();
>          lyrVect = (FLyrVect)layerTolocate;
>          va = lyrVect.getSource();
> }
>
>     Hasta aqui todo correcto, el error se produce cuando ejecuto este
> metodo, para obtener las propiedadas geometricas:
>
>    public void ObtenerCoordenadasTupla(int posTupla){
>            try {
>             geom = va.getShape(posTupla);  --> AQUÍ ES DONDE SE PRODUCE LA
> EXCEPCIÓN
>         } catch (DriverIOException e) {
>             // TODO Auto-generated catch block
>             e.printStackTrace();
>         }
>     }
>
>    Al hacer la instancia de la clase me ejecuta
> OperacionesVistas(MapContext mapContext), y posteriormente llamo a
> ObtenerCoordenadasTupla que es donde se produce el error; la salida de
> error que se produce es la siguiente:
>
>     java.lang.NullPointerException: null
>
> com.iver.cit.gvsig.fmap.drivers.shp.IndexedShpDriver.getPositionForRecord(U
>nknown Source)    
> com.iver.cit.gvsig.fmap.drivers.shp.IndexedShpDriver.getShape(Unknown
> Source)
>     com.iver.cit.gvsig.fmap.layers.VectorialFileAdapter.getShape(Unknown
> Source)
> com.iver.cit.gvsig.geocodificar.Geocodificar.ObtenerCoordenadasTupla(
> Geocodificar.java:56)  --> DE AQUI EN ADELANTE PERTENECE A MI EXTENSIÓN
>       com.iver.cit.gvsig.geocodificar.Geocodificar.DescodificarTupla(
> Geocodificar.java:94)
> com.iver.cit.gvsig.adddatatoview.gui.SelectInfoPanel.RepresentarTabla_array
>( SelectInfoPanel.java:229)
> com.iver.cit.gvsig.adddatatoview.gui.SelectInfoPanel.access$1(
> SelectInfoPanel.java:198)
> com.iver.cit.gvsig.adddatatoview.gui.SelectInfoPanel$2.actionPerformed(
> SelectInfoPanel.java:275)
>
> Lo extraño es que el error se produce en gvSIG y no en mi extensión.
>
>
> Un Saludo a tod en s.
>
> PD: Cuando leáis el código no intentéis encontrar errores sintácticos, por
> algún error que haya cometido, ya que lo he transcrito, ah y el código que
> os he puesto no coincide con el error que os he mostrado, ya que solo os he
> puesto el código que se ejecuta cuando da el error, evidentemente cada cosa
> esta en su clase.

-- 
=============
Jose Manuel Vivó (Chema)
Equipo de gvSIG

IVER T.I. S.A.
C/ Salamanca, 50-52
46005-Valencia
Tlf.+34963163400
Spain
www.iver.es
www.gvsig.com



Más información sobre la lista de distribución gvSIG_desarrolladores