gvSIG bugs #582
Error en Capa / Exportar a / ...
Status: | Closed | % Done: | 0% | |
---|---|---|---|---|
Priority: | Immediate | Spent 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
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