gvSIG bugs #2953

Problema de persistencia

Added by José Vicente Higón over 9 years ago. Updated over 9 years ago.

Status:Closed% Done:

0%

Priority:NormalSpent time:-
Assignee:Joaquín del Cerro Murciano
Category:Application
Target version:2.1.0-2255-testing
Severity:Critical Add-on version:
gvSIG version:2.1.0 Add-on build:
gvSIG build:2254 Add-on resolve version:
Operative System: Add-on resolve build:
Keywords: Proyecto:
Has patch: Hito:
Add-on name:Unknown

Description

Imposible cargar un proyecto que se acaba de guardar. Ver el log para detalles

error-persistencia-gvSIG.log (400 KB) José Vicente Higón, 10/30/2014 10:31 AM

prueba_4189.zip (54.8 KB) Joaquín del Cerro Murciano, 11/03/2014 09:05 AM

proy-publicando.gvsproj (18.8 KB) José Vicente Higón, 11/03/2014 09:28 AM

proy-sinpublicar.gvsproj (18.7 KB) José Vicente Higón, 11/03/2014 09:29 AM

Associated revisions

Revision 41807
Added by Joaquín del Cerro Murciano over 9 years ago

Añadido atrapada de errores en el salvado o guardado de la capa en el proyecto refs #2953.
Ahora cuando falla la carga de una capa, intenta informar en el log de que capa no se ha podido cargar asi como intenta dejarla en el TOC como no disponible, y que prosiga la carga del resto de capas que hayan guardadas en ese proyecto.

Revision 41810
Added by Joaquín del Cerro Murciano over 9 years ago

Corregida la persistencia de FlyrDefault para que acepte nulos como valores de las propiedades extendidas de una capa. refs #2953.

History

#1 Updated by Álvaro Anguix over 9 years ago

  • Severity changed from Minor to Critical
  • Target version set to 2.1.0-2259-rc3
  • Assignee set to Joaquín del Cerro Murciano
  • Category set to Application

#2 Updated by Joaquín del Cerro Murciano over 9 years ago

Lo unico que veo en el log es un problema con la proyeccion de google (EPSG:900913).
Aunque no creo que tenga que ver con el error a ver si puedo reproducirlo.
Por lo demas no veo ningun otro error en el log.

Veas a ver si puedes adjuntar o enviarme por correo el proyecto a ver si puedo ver algo mas.

Al margen, vere si puedo añadir en el log informacion de que capa estaba cargando cuando fallo, que ahora mismo ni siquiera tenemos esa informacion.

#3 Updated by José Vicente Higón over 9 years ago

La excepción aparece al final del fichero:

ERROR AWT-EventQueue-0 org.gvsig.andami.ui.mdiFrame.MDIFrame - Can't perform action 'application-project-open'.
java.lang.NullPointerException
    at java.util.Hashtable.put(Unknown Source)
    at java.util.Hashtable.putAll(Unknown Source)
    at java.util.Hashtable.<init>(Unknown Source)
    at org.gvsig.fmap.mapcontext.layers.FLyrDefault.loadFromState(FLyrDefault.java:952)
    at org.gvsig.fmap.mapcontext.layers.vectorial.FLyrVect.loadFromState(FLyrVect.java:458)
    at org.gvsig.tools.persistence.impl.SimplePersistenceFactory.loadFromState(SimplePersistenceFactory.java:129)
    at org.gvsig.tools.persistence.impl.DefaultPersistentContext.updateObjectInReference(DefaultPersistentContext.java:298)
    at org.gvsig.tools.persistence.impl.DefaultPersistentContext.access$000(DefaultPersistentContext.java:73)
    at org.gvsig.tools.persistence.impl.DefaultPersistentContext$ContextValue.getObject(DefaultPersistentContext.java:161)
    at org.gvsig.tools.persistence.impl.DelegatedContainer.getObject(DelegatedContainer.java:113)
    at org.gvsig.tools.persistence.impl.DelegatedCollection$1DelegatedIterator.next(DelegatedCollection.java:173)
    at org.gvsig.tools.persistence.impl.AbstractPersistentState.getValues(AbstractPersistentState.java:170)
    at org.gvsig.tools.persistence.impl.AbstractPersistentState.get(AbstractPersistentState.java:161)
    at org.gvsig.tools.persistence.impl.AbstractPersistentState.get(AbstractPersistentState.java:139)
    at org.gvsig.tools.persistence.impl.AbstractPersistentState.getIterator(AbstractPersistentState.java:207)
    at org.gvsig.fmap.mapcontext.layers.FLayers.loadFromState(FLayers.java:775)
    at org.gvsig.tools.persistence.impl.SimplePersistenceFactory.loadFromState(SimplePersistenceFactory.java:129)
    at org.gvsig.tools.persistence.impl.DefaultPersistentContext.updateObjectInReference(DefaultPersistentContext.java:298)
    at org.gvsig.tools.persistence.impl.DefaultPersistentContext.access$000(DefaultPersistentContext.java:73)
    at org.gvsig.tools.persistence.impl.DefaultPersistentContext$ContextValue.getObject(DefaultPersistentContext.java:161)
    at org.gvsig.tools.persistence.impl.AbstractPersistentState.get(AbstractPersistentState.java:157)
    at org.gvsig.tools.persistence.impl.AbstractPersistentState.get(AbstractPersistentState.java:139)
    at org.gvsig.fmap.mapcontext.MapContext.loadFromState(MapContext.java:1592)
    at org.gvsig.tools.persistence.impl.SimplePersistenceFactory.loadFromState(SimplePersistenceFactory.java:129)
    at org.gvsig.tools.persistence.impl.DefaultPersistentContext.updateObjectInReference(DefaultPersistentContext.java:298)
    at org.gvsig.tools.persistence.impl.DefaultPersistentContext.access$000(DefaultPersistentContext.java:73)
    at org.gvsig.tools.persistence.impl.DefaultPersistentContext$ContextValue.getObject(DefaultPersistentContext.java:161)
    at org.gvsig.tools.persistence.impl.AbstractPersistentState.get(AbstractPersistentState.java:157)
    at org.gvsig.tools.persistence.impl.AbstractPersistentState.get(AbstractPersistentState.java:139)
    at org.gvsig.app.project.documents.view.BaseViewDocument.loadFromState(BaseViewDocument.java:266)
    at org.gvsig.app.project.documents.view.DefaultViewDocument.loadFromState(DefaultViewDocument.java:150)
    at org.gvsig.app.project.documents.AbstractDocumentManager.loadFromState(AbstractDocumentManager.java:230)
    at org.gvsig.tools.persistence.impl.DefaultPersistentContext.updateObjectInReference(DefaultPersistentContext.java:298)
    at org.gvsig.tools.persistence.impl.DefaultPersistentContext.access$000(DefaultPersistentContext.java:73)
    at org.gvsig.tools.persistence.impl.DefaultPersistentContext$ContextValue.getObject(DefaultPersistentContext.java:161)
    at org.gvsig.tools.persistence.impl.DelegatedContainer.getObject(DelegatedContainer.java:113)
    at org.gvsig.tools.persistence.impl.DelegatedCollection$1DelegatedIterator.next(DelegatedCollection.java:173)
    at org.gvsig.tools.persistence.impl.AbstractPersistentState.getValues(AbstractPersistentState.java:170)
    at org.gvsig.tools.persistence.impl.AbstractPersistentState.get(AbstractPersistentState.java:161)
    at org.gvsig.tools.persistence.impl.AbstractPersistentState.get(AbstractPersistentState.java:139)
    at org.gvsig.app.project.DefaultProject.loadFromState(DefaultProject.java:613)
    at org.gvsig.app.project.DefaultProject.loadState(DefaultProject.java:569)
    at org.gvsig.app.project.DefaultProject.loadState(DefaultProject.java:584)
    at org.gvsig.app.extension.ProjectExtension.readProject(ProjectExtension.java:509)
    at org.gvsig.app.extension.ProjectExtension.execute(ProjectExtension.java:358)
    at org.gvsig.app.extension.ProjectExtension.execute(ProjectExtension.java:308)
    at org.gvsig.andami.actioninfo.impl.DefaultActionInfo.execute(DefaultActionInfo.java:284)
    at org.gvsig.andami.ui.mdiFrame.MDIFrame.actionPerformed(MDIFrame.java:914)
    at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
    at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
    at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
    at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
    at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
    at java.awt.AWTEventMulticaster.mouseReleased(Unknown Source)
    at java.awt.AWTEventMulticaster.mouseReleased(Unknown Source)
    at java.awt.Component.processMouseEvent(Unknown Source)
    at javax.swing.JComponent.processMouseEvent(Unknown Source)
    at java.awt.Component.processEvent(Unknown Source)
    at java.awt.Container.processEvent(Unknown Source)
    at java.awt.Component.dispatchEventImpl(Unknown Source)
    at java.awt.Container.dispatchEventImpl(Unknown Source)
    at java.awt.Component.dispatchEvent(Unknown Source)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
    at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
    at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
    at java.awt.Container.dispatchEventImpl(Unknown Source)
    at java.awt.Window.dispatchEventImpl(Unknown Source)
    at java.awt.Component.dispatchEvent(Unknown Source)
    at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
    at java.awt.EventQueue.access$200(Unknown Source)
    at java.awt.EventQueue$3.run(Unknown Source)
    at java.awt.EventQueue$3.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
    at java.awt.EventQueue$4.run(Unknown Source)
    at java.awt.EventQueue$4.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
    at java.awt.EventQueue.dispatchEvent(Unknown Source)
    at org.gvsig.andami.ui.AndamiEventQueue.dispatchEvent(AndamiEventQueue.java:50)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.run(Unknown Source)

#4 Updated by Joaquín del Cerro Murciano over 9 years ago

José Vicente Higón wrote:

La excepción aparece al final del fichero:

[...]

Ya se que al final del log habia un error, pero no aporta nada sobre que puede estar pasando.
Lo unico que se puede saber es que estaba intentando recuperar una capa vectorial, pero no se sabe nada mas.
Si con la prueba que he preparado no lo puedo reproducir, con solo el log no podre saber por que pasa.

#5 Updated by José Vicente Higón over 9 years ago

  • Status changed from New to Invalid

Ok, voy a preguntar a Jose por si tiene relación con las aplicaciones que desarrolló.

#6 Updated by Joaquín del Cerro Murciano over 9 years ago

Bueno, pues el intento de reproducirlo no ha salido muy bien.

Crear dos servicios OGC:

- Capa1 WFS con CRS EPSG:4189
- Capa2 WMS la misma capa1, CRS EPSG:4189, pero servida por WMS

Pasos ha hacer:

- Habrir un gvSIG
- Cargar Capa2 (WMS)
- Cargar Capa1 (WFS)
- Guardar proyecto
- Proyecto nuevo
- Cargar el proyecto
- Copiar el log

Con muchos errores de por medio debido a que el servidor wms estaba anunciando muchos sistemas de referecia que no soportaba gvSIG, pero parece que ha funcionado.

Pasame si tienes el proyecto por si puedo ver algo en el, si prefieres a mi correo de gvsig.org.

(He adjuntado el log y el proyecto de las pruebas por si puede ser util en algun momneto).

#7 Updated by José Vicente Higón over 9 years ago

Inicialmente, al ver la excepción, pensé que era de gvSIG. Hoy, tras probar varias veces, creo que el problema viene al instalar la extensión de publicación. Por eso he puesto el bug como inválido. De todas formas, añado el proyecto que da fallo y el mismo proyecto sin dar el fallo pero porque no llego a darle al botón "publicar" (la diferencia de ambos proyectos debe dar una pista del problema).

#8 Updated by Joaquín del Cerro Murciano over 9 years ago

Por lo que te he entendido es el proy-publicado el que no carga.
La principal diferencia respecto al otro esta que la capa
"ABRAE_GURAPICHE_REGVEN_4189" que tiene una entrada en el map de
propiedades asociado a ella con el valor a nulo
(key="MapServer-symbol-properties"). Es facil que no se haya probado
nunca a meter un null como valor del map y que este fallando algo
de la persistencia al tratar de recuperarlo.

...

He echado un vistazo y se estaba usando un HashTable para recuperar las
las "propiedades extra" de una capa, y era por eso por lo que
fallaba cuando se encontraba un null. Lo he cambiado a un HashMap
para que acepte nulos.

De todos modos no estaria mal echar un vistazo a lo de publicacion a ver
si el que haya llegado un null a la propiedad "MapServer-symbol-properties"
es algo normal o es que ha podido fallar alguna cosa a la hora de persistir
el valor de esa propiedad en el proyecto.

#9 Updated by Joaquín del Cerro Murciano over 9 years ago

  • Status changed from Invalid to Fixed

#10 Updated by Joaquín del Cerro Murciano over 9 years ago

  • Target version changed from 2.1.0-2259-rc3 to 2.1.0-2255-testing

#11 Updated by Álvaro Anguix over 9 years ago

  • Status changed from Fixed to Closed

Also available in: Atom PDF