Jasper Reports 6.8: isStretchWithOverflow="true" verursacht zufällige Nullzeiger-AusnahmenJava

Java-Forum
Guest
 Jasper Reports 6.8: isStretchWithOverflow="true" verursacht zufällige Nullzeiger-Ausnahmen

Post by Guest »

Ich verwende JasperReports 6.x, um Berichte mit mehr als 60 Tabellen zu erstellen, und jede Tabelle enthält im Durchschnitt etwa 10 Spalten. Mein Bericht verwendet die Eigenschaft isStretchWithOverflow="true" für viele Textfelder, um dynamische Inhalte zu verarbeiten. Ich stehe jedoch vor einem wiederkehrenden Problem:
Problem:
Beim Erstellen des Berichts erhalte ich manchmal die folgende Fehlermeldung:

Code: Select all

java.lang.NullPointerException: null   at net.sf.jasperreports.engine.fill.FillerSubreportParent.isSplitTypePreventInhibited(FillerSubreportParent.java:116)   at net.sf.jasperreports.engine.fill.JRFillBand.isSplitTypePreventInhibited(JRFillBand.java:633)   at net.sf.jasperreports.engine.fill.JRFillBand.isSplitTypePreventInhibited(JRFillBand.java:612)   at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillColumnBand(JRVerticalFiller.java:2589)   at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillDetail(JRVerticalFiller.java:813)   at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReportStart(JRVerticalFiller.java:264)   at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport(JRVerticalFiller.java:110)   at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:615)   at net.sf.jasperreports.engine.fill.BaseReportFiller.fill(BaseReportFiller.java:432)   at net.sf.jasperreports.engine.fill.JRFillSubreport.fillSubreport(JRFillSubreport.java:818)   at net.sf.jasperreports.engine.fill.JRSubreportRunnable.run(JRSubreportRunnable.java:61)   at net.sf.jasperreports.engine.fill.AbstractThreadSubreportRunner.run(AbstractThreadSubreportRunner.java:221)   at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)   at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)   at java.lang.Thread.run(Thread.java:748)   
Dieser Fehler tritt willkürlich auf und tritt nicht immer für dasselbe Feld auf.
Beobachtungen:< /p>
Der Bericht verwendet die Eigenschaft isStretchWithOverflow="true" an 533 Stellen.
Wenn der Fehler auftritt:
Ich habe vorübergehend isStretchWithOverflow="false" für alle Felder festgelegt und die Der Bericht funktioniert einwandfrei.
Diese Eigenschaft ist jedoch für meinen Bericht unerlässlich, daher muss ich sie erneut aktivieren.
Zum Debuggen aktiviere ich die Eigenschaft in Blöcken, zum Beispiel:
Aktivieren Sie es für 50 Felder, führen Sie den Bericht aus und prüfen Sie, ob der Fehler auftritt.
Wenn kein Fehler auftritt, gehe ich zu den nächsten 50 Feldern usw.
Wenn der Fehler auftritt In einem bestimmten Abschnitt schränke ich es auf kleinere Bereiche ein (z. B. 10 Felder), um das problematische Feld zu finden.
Das Merkwürdige daran: Das problematische Feld ändert sich jedes Mal, wenn ich den Bericht ausführe. Beispiel:
In einem Lauf könnte der Fehler für Tabelle X1 auftreten.
Nachdem die Tabelle repariert oder getestet wurde, könnte der Fehler das nächste Mal für Tabelle X5 auftreten.
Was ich versucht habe:
Vorübergehende Einstellung von isStretchWithOverflow="false" für alle Felder.
Testen in kleinere Stücke, um das problematische Feld zu finden.
Debugging-Protokolle, aber sie zeigen nur die gleiche Nullzeiger-Ausnahme, ohne auf das spezifische Feld oder den Grund zu verweisen.
Frage:
Was könnte dieses zufällige Verhalten bei isStretchWithOverflow="true" verursachen?
Wie kann ich das effektiv debuggen oder das Problem beheben?
Gibt es eine bessere Möglichkeit, mit dynamischen Inhalten in großen JasperReports umzugehen? viele Tabellen und Felder?
Für Hinweise oder Vorschläge wäre ich sehr dankbar!

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post