gvSIG bugs #582

Error en Capa / Exportar a / ...

Added by Leticia Riestra about 12 years ago. Updated almost 12 years ago.

Status:Closed% Done:

0%

Priority:ImmediateSpent time:-
Assignee:Juan Lucas Domínguez
Category:-
Target version:-
Severity: Add-on version:
gvSIG version:2.0.0 Add-on build:
gvSIG build:2046 Add-on resolve version:
Operative System: Add-on resolve build:
Keywords: Proyecto:
Has patch:No Hito:
Add-on name:Unknown

Description

Hola
Me he descargado el build 2046 (código fuente) y lo he instalado y compilado sin ningún problema.
He cargado una capa de tipo punto con vuestra herramienta de carga de capas desde Base de datos sin problemas pero cuando he probado a exportarla a formato DXF / SHP (Capa - Exportar a - Formato DXF o Capa - Exportar a - Formato Shape) me lanza la siguiente excepción (nada más seleccionar Formato DXF o Formato Shape).

ERROR [AWT-EventQueue-1] (NotificationManager.java:107) - java.lang.RuntimeException: org.gvsig.tools.service.spi.NotRegisteredException: No provider or service implementation has been registered with the name 'Exporta al formato DXF '
java.lang.RuntimeException: org.gvsig.tools.service.spi.NotRegisteredException: No provider or service implementation has been registered with the name 'Exporta al formato DXF '
    at org.gvsig.exportto.swing.impl.DefaultExporttoSwingProviderManager.getDescription(DefaultExporttoSwingProviderManager.java:254)
    at org.gvsig.exportto.swing.impl.wizard.ExporterSelectionWizard.valueChanged(ExporterSelectionWizard.java:101)
    at javax.swing.JList.fireSelectionValueChanged(JList.java:1765)
    at javax.swing.JList$ListSelectionHandler.valueChanged(JList.java:1779)
    at javax.swing.DefaultListSelectionModel.fireValueChanged(DefaultListSelectionModel.java:167)
    at javax.swing.DefaultListSelectionModel.fireValueChanged(DefaultListSelectionModel.java:147)
    at javax.swing.DefaultListSelectionModel.fireValueChanged(DefaultListSelectionModel.java:194)
    at javax.swing.DefaultListSelectionModel.changeSelection(DefaultListSelectionModel.java:388)
    at javax.swing.DefaultListSelectionModel.changeSelection(DefaultListSelectionModel.java:398)
    at javax.swing.DefaultListSelectionModel.setSelectionInterval(DefaultListSelectionModel.java:442)
    at javax.swing.JList.setSelectionInterval(JList.java:2035)
    at javax.swing.plaf.basic.BasicListUI$Handler.adjustSelection(BasicListUI.java:2731)
    at javax.swing.plaf.basic.BasicListUI$Handler.mousePressed(BasicListUI.java:2687)
    at java.awt.AWTEventMulticaster.mousePressed(AWTEventMulticaster.java:263)
    at java.awt.Component.processMouseEvent(Component.java:6260)
    at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
    at java.awt.Component.processEvent(Component.java:6028)
    at java.awt.Container.processEvent(Container.java:2041)
    at java.awt.Component.dispatchEventImpl(Component.java:4630)
    at java.awt.Container.dispatchEventImpl(Container.java:2099)
    at java.awt.Component.dispatchEvent(Component.java:4460)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4574)
    at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4235)
    at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
    at java.awt.Container.dispatchEventImpl(Container.java:2085)
    at java.awt.Window.dispatchEventImpl(Window.java:2475)
    at java.awt.Component.dispatchEvent(Component.java:4460)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
    at org.gvsig.andami.ui.AndamiEventQueue.dispatchEvent(AndamiEventQueue.java:59)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
Caused by: org.gvsig.tools.service.spi.NotRegisteredException: No provider or service implementation has been registered with the name 'Exporta al formato DXF '
    at org.gvsig.tools.service.spi.AbstractProviderManager.getProviderFactory(AbstractProviderManager.java:90)
    at org.gvsig.exportto.swing.impl.DefaultExporttoSwingProviderManager.getExporttoSwingProviderFactory(DefaultExporttoSwingProviderManager.java:269)
    at org.gvsig.exportto.swing.impl.DefaultExporttoSwingProviderManager.getDescription(DefaultExporttoSwingProviderManager.java:251)
    ... 34 more

En realidad falla las 4 posibilidades (formato dxf, formato mysql, formato postgresql y formato Shape)

¿Se os ocurre cúal puede ser el motivo?

Me interesa saber el problema porque estoy intentando hacer una herramienta que exporta todas las capas visibles a formato shp / dxf y queria basarme en vuestro código para hacerlo pero prefiero hacerlo cuando el código funcione perfectamente

Muchas gracias
Muchas gracias


Related issues

Related to Application: gvSIG desktop - gvSIG bugs #500: Error al exportar a SHP Closed 04/06/2012

History

#1 Updated by Leticia Riestra about 12 years ago

Hola
Mirando el código, no estoy segura, pero creo haber detectado el problema. Os lo comento por si os puede servir de algo

He ejecutado la aplicación en debug y he ido comprobando los métodos por donde se va ejecutando la aplicación:

- ExporterSelectionWizard.java en el método valueChanged
providerFactory.getDescription() devuelve "Exporta al formato DXF". No estoy segura, pero creo que el problema viene de aquí por que debería de devolver DXF. Lo digo por que he seguido la ejecución y he detectado el sitio donde lanza la exception.
La línea de código EXPORTTO_SWING_PROVIDER_MANAGER.getDescription hace la llamada siguiente

- DefaultExporttoSwingProviderManager.java en el método getDescription() el cual llama al método getExporttoSwingProviderFactory() que hace la llamada a la clase siguiente

- AbstractProviderManager.java en el método getProviderFactory el cual hace ep.create(serviceName).

- Ésteo último es una llamada a la clase DefaultExtensionPoint.java en su método create
Es aquí donde creo que está el fallo

El código de este método es:

Extension extension = (Extension) this.alias.get(name);
if (extension == null) {
extension = (Extension) this.extensions.get(name);
if (extension == null) {
return null; // FIXME: throw exception
}
}
return extension.create();

Al hacer Extension extension = (Extension) this.alias.get(name); devuelve null por lo que hace la siguiente llamada del if.
Lo que pasa que this.extensions vale
{DXF=org.gvsig.tools.extensionpoint.impl.DefaultExtensionPoint$Extension@afa268, MySQL=org.gvsig.tools.extensionpoint.impl.DefaultExtensionPoint$Extension@cf9ad2, Generic=org.gvsig.tools.extensionpoint.impl.DefaultExtensionPoint$Extension@1bd702e, DBF=org.gvsig.tools.extensionpoint.impl.DefaultExtensionPoint$Extension@100e23, PostgreSQL=org.gvsig.tools.extensionpoint.impl.DefaultExtensionPoint$Extension@104b0d, Shape=org.gvsig.tools.extensionpoint.impl.DefaultExtensionPoint$Extension@1af53f3}

Como name vale "Exporta al formato DXF", al hacer extension = (Extension) this.extensions.get(name);, resulta que extension toma el valor null y se produce una excepción al hacer return extension.create()

Espero haber sido clara y que me hayáis entendido

#2 Updated by Leticia Riestra about 12 years ago

Perdón
Vuelvo a escribiros porque creo saber lo que hay que poner

En ExporterSelectionWizard.java en el método valueChanged
En lugar de hacer

descriptionText.setText(EXPORTTO_SWING_PROVIDER_MANAGER
.getDescription(providerFactory.getDescription()));

Debería de ser
descriptionText.setText(EXPORTTO_SWING_PROVIDER_MANAGER
.getDescription(providerFactory.getName()));

De esa manera, el nombre del provider ya irá como DXF, MySQL en lugar de de la descripción

#3 Updated by Leticia Riestra about 12 years ago

Hola

Deciros que, después de arreglar ese fallo que os comenté, he seguido probando el módulo y continúa fallando

FALLO EXPORTAR SHP

Cargamos una capa de tipo POLYGON ( también falla con otros tipos de geometría) y al exportarla a shp ( Capa/ Exportar a.../ Formato Shape) salta la excepción:

Exception in thread "Thread-10" java.util.ConcurrentModificationException
    at java.util.AbstractList$Itr.checkForComodification(AbstractList.java:372)
    at java.util.AbstractList$Itr.next(AbstractList.java:343)
    at org.gvsig.fmap.dal.feature.impl.DefaultFeatureType$DelegatedIterator.next(DefaultFeatureType.java:337)
    at org.gvsig.fmap.dal.store.shp.SHPStoreProvider.addGeometryColumn(SHPStoreProvider.java:206)
    at org.gvsig.fmap.dal.store.shp.SHPFilesystemServerProvider.create(SHPFilesystemServerProvider.java:162)
    at org.gvsig.fmap.dal.serverexplorer.filesystem.impl.DefaultFilesystemServerExplorer.add(DefaultFilesystemServerExplorer.java:193)
    at org.gvsig.fmap.dal.impl.DefaultDataManager.newStore(DefaultDataManager.java:463)
    at org.gvsig.exportto.swing.prov.shape.ExporttoShapeService.export(ExporttoShapeService.java:202)
    at org.gvsig.exportto.swing.prov.shape.ExporttoShapeService.export(ExporttoShapeService.java:118)
    at org.gvsig.exportto.swing.impl.DefaultJExporttoServicePanel$Export.run(DefaultJExporttoServicePanel.java:233)
Parece que se está accediendo de forma concurrente al EditableFeatureType fType de la clase SHPStoreProvider.

FALLO EXPORTAR A DXF

Al exportar a dxf una capa de polígonos ( Capa/ Exportar a.../ Formato DXF) salta la siguiente excepción :

WARN [AWT-EventQueue-1] (Messages.java:141) - org.gvsig.gui.beans -- Cannot find translation for Open
 INFO [Thread-7] (DXFStoreProvider.java:550) - load: acadVersion = 'ACAD2000'
Exception in thread "Llenando índice" java.lang.RuntimeException: org.gvsig.fmap.dal.feature.exception.FeatureIndexOperationException: Error performing operation: Llenando índice, on feature index: Feature index with nameQuadtreeJts, for the FeatureType: default:[ID,Geometry,Entity,Layer,Color,Elevation,Thickness,Text,HeightText,Rotation], and the attribute: Geometry
    at org.gvsig.fmap.dal.feature.impl.DefaultFeatureIndex$FeatureIndexOperationTask.run(DefaultFeatureIndex.java:239)
Caused by: org.gvsig.fmap.dal.feature.exception.FeatureIndexOperationException: Error performing operation: Llenando índice, on feature index: Feature index with nameQuadtreeJts, for the FeatureType: default:[ID,Geometry,Entity,Layer,Color,Elevation,Thickness,Text,HeightText,Rotation], and the attribute: Geometry
    at org.gvsig.fmap.dal.feature.impl.DefaultFeatureIndex$FeatureIndexOperationTask.run(DefaultFeatureIndex.java:236)
Caused by: org.gvsig.fmap.dal.feature.exception.GetFeatureTypeException: Can't get feature type of store 'ggggggggggs'.
    at org.gvsig.fmap.dal.feature.impl.DefaultFeatureStore.getDefaultFeatureType(DefaultFeatureStore.java:1550)
    at org.gvsig.fmap.dal.feature.impl.DefaultFeatureStore.getFeatureSet(DefaultFeatureStore.java:1298)
    at org.gvsig.fmap.dal.feature.impl.DefaultFeatureIndex$FeatureIndexOperationTask.clearAndFill(DefaultFeatureIndex.java:252)
    at org.gvsig.fmap.dal.feature.impl.DefaultFeatureIndex$FeatureIndexOperationTask.run(DefaultFeatureIndex.java:221)
Caused by: java.lang.NullPointerException
    at org.gvsig.fmap.dal.feature.impl.DefaultFeatureStore.getDefaultFeatureType(DefaultFeatureStore.java:1539)
    ... 3 more
 INFO [Thread-7] (DXFStoreProvider.java:550) - load: acadVersion = 'ACAD2000'
 WARN [MapControl Drawer Worker] (SimpleTextSymbol.java:234) - font <-- null

Parece que no puede cargar el dxf generado. NullPointer en el método getDefaultFeatureType la clase DefaultFeatureStore.

#4 Updated by Leticia Riestra almost 12 years ago

Hola

¿Alguno tiene idea de cuál puede ser el problema?

Siento meter prisa, pero queríamos publicar una versión beta con nuestro código y para ello, nos interesaba tener este fallo arreglado.
Si supiéramos la solución os lo diríamos pero no sabemos que puede ser

Muchas gracias

#5 Updated by Joaquín del Cerro Murciano almost 12 years ago

  • Assignee set to Juan Lucas Domínguez
  • Priority changed from Normal to Immediate

#6 Updated by Juan Lucas Domínguez almost 12 years ago

  • Status changed from New to Fixed

This error does not happen in the current workspace or in build 2047: http://downloads.gvsig.org/download/gvsig-desktop/dists/2.0.0/builds/2047/

#7 Updated by María Maluenda almost 12 years ago

  • Status changed from Fixed to Closed

Closed in the gvSIG build 2048

Also available in: Atom PDF