- État Fermée
- Pourcentage achevé
- Type Bug
- Catégorie Application → Core
-
Assignée à
DevTeam - Système d'exploitation Tous
- Sévérité Critique
- Priorité Très haute
- Basée sur la version 17.7
- Due pour la version 17.7
-
Échéance
Non décidée
- Votes
- Privée
Ouverte par DevTeam - 2017-08-03
Dernière modification par DevTeam - 2017-08-03
FS#1311 - Erreur interne lors de l'export de certains rapport en PDF
Lorsqu’on essaye d’exporter certains rapports en PDF, une erreur interne se produit et bloque la procédure.
Il est toutefois possible de quitter le logiciel proprement.
L’erreur ne se produit pas systématiquement, mais seulement à quelques reprise, pour finir par fonctionner correctement.
Détails de la fenêtre de débogage:
HTMLDOC *** AutoCheckFontSize patching font size 10 -> 11 *** HTMLDOC *** AutoCheckFontSize patching font size 6 -> 7 *** CREATE PageClassicHeaderImage : javax.swing.ImageIcon@1efe5d6a Exception in thread "Thread-20" java.lang.NullPointerException at javax.swing.text.FlowView$FlowStrategy.layoutRow(FlowView.java:563) at javax.swing.text.TextLayoutStrategy.layoutRow(TextLayoutStrategy.java:127) at javax.swing.text.FlowView$FlowStrategy.layout(FlowView.java:477) at javax.swing.text.TextLayoutStrategy.layout(TextLayoutStrategy.java:110) at javax.swing.text.FlowView.layout(FlowView.java:201) at javax.swing.text.BoxView.setSize(BoxView.java:397) at javax.swing.text.BoxView.updateChildSizes(BoxView.java:366) at javax.swing.text.BoxView.setSpanOnAxis(BoxView.java:348) at javax.swing.text.BoxView.layout(BoxView.java:708) at javax.swing.text.BoxView.setSize(BoxView.java:397) at javax.swing.text.BoxView.updateChildSizes(BoxView.java:366) at javax.swing.text.BoxView.setSpanOnAxis(BoxView.java:348) at javax.swing.text.BoxView.layout(BoxView.java:708) at javax.swing.text.BoxView.setSize(BoxView.java:397) at javax.swing.plaf.basic.BasicTextUI$RootView.setSize(BasicTextUI.java:1722) at javax.swing.plaf.basic.BasicTextUI.modelToView(BasicTextUI.java:1046) at bedesk.pageeditor.PrintableEditorPane.a(Unknown Source) at bedesk.pageeditor.PrintableEditorPane.a(Unknown Source) at bedesk.pageeditor.PrintableEditorPane.a(Unknown Source) at bedesk.pageeditor.PrintableEditorPane.a(Unknown Source) at bedesk.pageeditor.PrintableEditorPane.getNumberOfPages(Unknown Source) at bedesk.pageeditor.PrintableEditorPane.b(Unknown Source) at bedesk.printing.Imprimer$MetaContext.getBook(Unknown Source) at bedesk.printing.Imprimer$MetaContext.c(Unknown Source) at bedesk.printing.Imprimer.a(Unknown Source) at bedesk.RepportSet$MyPrivatePDFThread.run(Unknown Source)
L’impression est lancée à partir d’un Thread indépendant et non à partir de l’AWTEventQueue:
WARNING : Task.invoke from Thread[Thread-11,6,main](bedesk.RepportSet$MyPrivatePDFThread)
Certaines données ne sont donc pas nécessairement disponibles au moment où le processus se poursuit (d’où l’erreur null pointer).
Solution : Remplacer le thread MyPrivatePDFThread par une structure Runnable que l’on exécute via le Worker.
Les méthodes compilToPrintableObject() et getBook() de Imprimer.MetaContext ont été également patchées pour s’exécuter uniquement dans le contexte de l’AWTEvenQueue.