gvSIG bugs #5128

Falla al presentar informes por que no encuentra algun recurso.

Added by Joaquín del Cerro Murciano over 4 years ago. Updated over 4 years ago.

Status:Closed% Done:

0%

Priority:NormalSpent time:-
Assignee:Joaquín del Cerro Murciano
Category:-
Target version:2.5.0-2928
Severity:Minor Add-on version:
gvSIG version:2.5.0 Add-on build:
gvSIG build: Add-on resolve version:
Operative System: Add-on resolve build:
Keywords: Proyecto:
Has patch: Hito:
Add-on name:Unknown

Description

Se me ha dado en varias ocasiones, pero solo tengo una en la que lo pueda reproducir.

  • Cargo una capa (comvalenciana_muni-4326.shp)
  • Muestro la tabla de atributos
  • Voy al gestor de columnas
  • En el icono de arriba derecha selecciono "Mostrar informe".

Falla mostrando un mensaje de "El documento no tiene paginas" y la ventana del visor de informes vacia y por la consola muestra el siguiente mensaje:

INFO 45885 [AWT-EventQueue-0] (Messages.java:753) - [org.gvsig.i18n.Messages] Cannot find translation for key 'Gestor de columnas - comvalenciana_muni-4326'.
 WARN 50001 [AWT-EventQueue-0] (DefaultReport.java:156) - Can't load report from resource 'file:/home/jjdelcerro/datos/devel/org.gvsig.desktop/target/product/gvSIG/extensiones/org.gvsig.report.app.mainplugin/reports/featuretype.jasper'.
net.sf.jasperreports.engine.JRException: Error loading object from InputStream.
        at net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:282)
        at net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:262)
        at org.gvsig.report.lib.impl.DefaultReport.getName(DefaultReport.java:153)
        at org.gvsig.report.app.mainplugin.ReportExtension$ShowReportAction.actionPerformed(ReportExtension.java:306)
        at org.gvsig.configurableactions.ActionsComponent$ActionListenerAdapter.actionPerformed(ActionsComponent.java:35)
        at java.desktop/javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1967)
        at java.desktop/javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2308)
        at java.desktop/javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:405)
        at java.desktop/javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:262)
        at java.desktop/javax.swing.AbstractButton.doClick(AbstractButton.java:369)
        at java.desktop/javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:980)
        at java.desktop/javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:1024)
        at java.desktop/java.awt.Component.processMouseEvent(Component.java:6589)
        at java.desktop/javax.swing.JComponent.processMouseEvent(JComponent.java:3342)
        at java.desktop/java.awt.Component.processEvent(Component.java:6354)
        at java.desktop/java.awt.Container.processEvent(Container.java:2261)
        at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:4966)
        at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2319)
        at java.desktop/java.awt.Component.dispatchEvent(Component.java:4798)
        at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4914)
        at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Container.java:4543)
        at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Container.java:4484)
        at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2305)
        at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2772)
        at java.desktop/java.awt.Component.dispatchEvent(Component.java:4798)
        at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:772)
        at java.desktop/java.awt.EventQueue.access$600(EventQueue.java:97)
        at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
        at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:715)
        at java.base/java.security.AccessController.doPrivileged(Native Method)
        at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:87)
        at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:97)
        at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:745)
        at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:743)
        at java.base/java.security.AccessController.doPrivileged(Native Method)
        at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:87)
        at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:742)
        at org.gvsig.andami.ui.AndamiEventQueue.dispatchEvent(AndamiEventQueue.java:50)
        at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
        at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
        at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
        at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
        at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
        at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
Caused by: java.io.StreamCorruptedException: invalid stream header: ACED7300
        at java.base/java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:869)
        at java.base/java.io.ObjectInputStream.<init>(ObjectInputStream.java:342)
        at net.sf.jasperreports.engine.util.ContextClassLoaderObjectInputStream.<init>(ContextClassLoaderObjectInputStream.java:56)
        at net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:277)
        ... 43 more
 INFO 50094 [AWT-EventQueue-0] (Messages.java:753) - [org.gvsig.i18n.Messages] Cannot find translation for key 'Informe: comvalenciana_muni-4326!comvalenciana_muni-4326'.
 WARN 50001 [gvSIG_ReportLoader] (DefaultJReport.java:136) - Can't create report.
java.lang.RuntimeException: Can't generate report.
        at org.gvsig.report.lib.impl.DefaultReport.generateReport(DefaultReport.java:244)
        at org.gvsig.report.swing.impl.DefaultJReport.loadReport(DefaultJReport.java:134)
        at org.gvsig.report.swing.impl.DefaultJReport.access$000(DefaultJReport.java:37)
        at org.gvsig.report.swing.impl.DefaultJReport$2.run(DefaultJReport.java:112)
        at java.base/java.lang.Thread.run(Thread.java:844)
Caused by: net.sf.jasperreports.engine.JRException: Error loading object from InputStream.
        at net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:282)
        at net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:262)
        at org.gvsig.report.lib.impl.DefaultReport.generateReport(DefaultReport.java:202)
        ... 4 more
Caused by: java.io.StreamCorruptedException: invalid stream header: 00057228
        at java.base/java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:869)
        at java.base/java.io.ObjectInputStream.<init>(ObjectInputStream.java:342)
        at net.sf.jasperreports.engine.util.ContextClassLoaderObjectInputStream.<init>(ContextClassLoaderObjectInputStream.java:56)
        at net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:277)
        ... 6 more

Associated revisions

Revision 1149
Added by Joaquín del Cerro Murciano over 4 years ago

refs #5128, sincronizados los metodos getName y generateReport de DefaultReport. Tambien se ha cerrado el recurso en el getName que se estaba dejando abierto.

History

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

  • Status changed from New to Fixed

Vale, ya esta claro...
El problema era algo aleatorio ya que se trataba de que desde varios threads (el de swing y el de uno especifico que se usa para cargar el report en segundo plano) se estaba usando el mismo inputstream y segun como lo pillase un thread se "comia" los datos del stream y dejaba sin datos al otro.

Como el problema estaba entre los metodos getName y generateReport de DefaultReport los he hecho sincronizados y con eso se soluciona.

#2 Updated by Álvaro Anguix over 4 years ago

  • Status changed from Fixed to Closed

Also available in: Atom PDF