[general]
There is additional security hardening implemented in this version, e.g. by removing the obsolete `driverLibrary` property from data sources, as well as disallowing unknown data sources by default.

[general:de]
In dieser Version wurden zusätzliche Sicherheitsvorkehrungen getroffen, z. B. durch die Entfernung der veralteten Eigenschaft `driverLibrary` aus Datenquellen und die standardmäßige Nichtzulassung unbekannter Datenquellen.

[changes]
* Transparent objects that are not visible are now ignored and no longer displayed visibly during PDF/A export.
* Merging parameters of stored procedures with the same name in different catalog/schema is prevented.
* The obsolete Datasource Property `driverLibrary` was removed.
* In the HTML Viewer, using the search now allows to find more than 50 entries. Once the user went through all the entries to 50, another set of 50 entries will be searched in the the report.
* The conversion "To SQL" in the database wizard now also supports "SQL expression fields" used in formula fields.
* Enlargeable images that extend beyond their parent section are no longer cut off at the bottom of the page if they fit on the next page.
* For divisions in formulas or totals, the numbers are now converted to fixed point numbers with a higher tolerance in order to minimize rounding errors.
* ToWords formula function added for the Indonesian language.

[changes:de]
* Transparente nicht sichtbare Objekte werden beim PDF/A Export nun ignoriert und nicht mehr sichtbar dargestellt.
* Das Zusammenführen von Parametern gespeicherter Prozeduren mit dem demselben Namen in unterschiedlichen Catalog/Schema wird verhindert.
* Die veraltete Datasource Property `driverLibrary` wurde entfernt.
* Im HTML-Viewer ist es nun möglich, mit der Suche mehr als 50 Einträge zu finden. Sobald der Benutzer alle Einträge bis auf 50 durchgegangen ist, wird ein weiterer Satz von 50 Einträgen im Bericht durchsucht.
* Die Umwandlung "Nach SQL" im Datenbankassistenten unterstützt jetzt auch "SQL Ausdrücke", die in Formeln genutzt werden.
* Vergrößerbare Bilder, die über ihren übergeordneten Abschnitt hinausgehen, werden nicht mehr am Seitenende abgeschnitten, wenn sie auf die nächste Seite passen.
* Bei Divisionen in Formeln oder Summen werden die Zahlen nun mit einer höheren Toleranz in Festkommazahlen umgewandelt, um Rundungsfehler zu minimieren.
* ToWords-Formelfunktion für die indonesische Sprache hinzugefügt.

[bugfixes]
* Several configuration settings for the XLS output format were used only after a server restart.
* Drawing operations in subreports (e.g. bullets in HTML) did not restore the context in the output format for the JavaViewer, such as colors. Which leads to incorrect colors in the report.
* The HTML Viewer modified the line spacing incorrectly to calculate font auto scaling options.
* The date and time data type detector accepts only years in the range 0 to 9999 as valid dates for JSON and XML data sources.
* Regression: when using the Oracle Thin driver, no database columns were found anymore in stored procedures.
* `Wrong value for tag ConformanceLevel` error occurred when the FacturX profile `BASIC WL` or `EN 16931` was used.
* XML data sources duplicated content if the XML file contained a `&` encoded as `&amp;`.
* Regression: It was not possible to open a report using `file:` key URL parameter, e.g. `https://servername:port/file:/<path>/<reportfile>.rpt`.
* When a subreport was moved to the next page to handle a 'keep-together' flag, lines and boxes across multiple sections within the subreports began at the top position.
* Performance of SQL generation with complex formulas for grouping and sorting improved.
* NullPointerException in XLS export with multi-section lines that starts in the hidden report header area.
* Some elements of SVG graphics were missing in PDF format.
* The fields in crosstabs contained position frames, although the report was exported as editable files in Microsoft Word format (DOCX).
* Black/white images such as QR codes were missing when printing under macOS from JavaViewer or Designer.
* With the XLSX export format, the cell format could change randomly due to a race condition if several reports were rendered at the same time.
* Hyperlinks in the PDF export format with encryption via password were incorrect.
*  Fixed appearance of checkbox form elements in PDF export.
  * Checkmark will be displayed even with font embedding if the 'ZapfDingbats' font was not found.
  * Checkbox will be displayed in 'mouse down' state as well and doesn't flicker.
* Dynamic NULL values in formulas were not recognized as type NULL, which is why the generated SQL incorrectly returned `... = null` instead of `... is null`.
* The text interpretation `HTML (advanced)` can, under rare circumstances, write only partial data or data from the next records if a `Keep Together` flag of a section or area has switched the rendering to a new page.
* Performance improvement for XLSX export for large reports with user-defined formats for field values.
* A StackOverflowError occurred in the XLS export format when there were more than 65,536 rows without interrupting groups in the detail area.
* Not all data were written to the FacturX XML file.

[bugfixes:de]
* Mehrere Konfigurationseinstellungen für das XLS-Ausgabeformat wurden erst nach einem Server Neustart verwendet.
* Zeichnungsoperationen in Unterberichten (z.B. Aufzählungszeichen in HTML) stellten den Kontext im Ausgabeformat für den JavaViewer nicht wieder her, wie z.B. Farben. Was zu fehlerhaften Farben im Bericht führte.
* Der HTML-Viewer änderte das Line-Spacing auf eine falsche Art, um die automatischen Skalierung der Schrift zu berechnen.
* Der Datentyp-Detektor für Datum- und Zeit akzeptiert für JSON- und XML-Datenquellen nur noch Jahre im Bereich von 0 bis 9999 als gültiges Datum.
* Regression: bei Nutzung des Oracle Thin Treibers wurden bei Stored Procedures keine Datenbankspalten mehr gefunden.
* `Wrong value for tag ConformanceLevel` Fehler behoben, wenn das FacturX Profile `BASIC WL` oder `EN 16931` benutzt wurde.
* XML-Datenquellen haben Inhalte verdoppelt, wenn die XML-Datei ein & enthielt, das als &amp; kodiert war.
* Regression: Es war nicht möglich, einen Bericht mit dem URL-Parameter `file:` zu öffnen, z.B. `https://servername:port/file:/<path>/<reportfile>.rpt`.
* Wenn ein Unterbericht auf die nächste Seite verschoben wurde, um eine 'Zusammenhalten' Flag zu behandeln, begannen Linien und Boxen über mehrere Sektionen im Unterbericht an der oberen Position.
* Performance der SQL Generierung mit komplexen Formeln für Groupierung und Sortierung wurde verbessert.
* NullPointerException beim XLS Export mit Multi-Sektionen-Linien, die im ausgeblendeten Berichtskopfbereich starten.
* Einige Elemente einer SVG Grafik fehlten im PDF Format.
* Die Felder in Kreuztabellen enthielten Positionsrahmen, obwohl der Bericht als bearbeitbare Dateien im Microsoft Word-Format (DOCX) exportiert wurde.
* Schwarz/Weiß-Bilder wie QR-Codes fehlten beim Drucken unter macOS aus JavaViewer oder Designer.
* Beim XLSX-Exportformat konnte das Zellformat durch eine Race Condition zufällig wechseln, wenn mehrere Berichte gleichzeitig gerendert wurden.
* Hyperlinks im PDF-Exportformat mit Verschlüsselung via Passwort waren fehlerhaft.
* Korrektur der Darstellung von Checkboxen in PDF-Formularelementen.
  * Das Häkchen wird nun auch dann angezeigt, wenn Einbettung für Schriftarten gewählt wurde und die Schritftart "ZapfDingbats' nicht vorhanden ist.
  * Die Checkbox wird nun auch im "Maus gedrückt"-Zustand angezeigt und flackert nicht mehr.
* Dynamische NULL Werte in Formeln wurden nicht als Typ NULL erkannt, weshalb das generierte SQL fälschlicherweise `... = null` statt `... is null` enthielt.
* Die Textinterpretation `HTML (erweitert)` kann unter seltenen Umständen nur partielle Daten oder Daten aus den folgenden Datensätzen schreiben, wenn ein `Zusammenhalten`-Flag einer Sektion oder einer Area das Rendering auf eine neue Seite verschoben hat.
* Performance-Verbesserung beim XLSX-Export für große Berichte mit benutzerdefinierten Formaten für Feldwerte.
* Beim XLS-Exportformat ist ein StackOverflowError aufgetreten, wenn mehr als 65.536 Zeilen ohne unterbrechende Gruppen im Detailbereich vorhanden sind.
* Es wurden nicht alle Daten ins FacturX XML geschrieben.

[security]
* The default value of the "Allow unknown Data Sources" setting (key permission.allowunknowndatasource) has been changed from "true" to "false".
* *Security Update for CVE-2024-1597*
  * pgjdbc, the PostgreSQL JDBC Driver, allows attacker to inject SQL if using PreferQueryMode=SIMPLE. Note this is not the default. In the default mode there is no vulnerability. A placeholder for a numeric value must be immediately preceded by a minus. There must be a second placeholder for a string value after the first placeholder; both must be on the same line. By constructing a matching string payload, the attacker can inject SQL to alter the query,bypassing the protections that parameterized queries bring against SQL Injection attacks. Versions before 42.7.2, 42.6.1, 42.5.5, 42.4.4, 42.3.9, and 42.2.8 are affected.
* PDF files exported using encryption could be opened with Safari without a password if only the user password was set.
* When adding a subreport via Designer or API, the option "Save data source configuration in report file" was always set. Now the value of the main report is adopted.
* Fixes an XSS vulnerability in the HTML viewer with POST parameters for prompts and manipulated parameter names.

[security:de]
* Der Defaultwert der Einstellung "Erlaube unbekannte Datenquellen" (key permission.allowunknowndatasource) wurde von "true" auf "false" geändert.
* *Sicherheitsupdate für CVE-2024-1597*
  * pgjdbc, der PostgreSQL JDBC-Treiber, ermöglicht es Angreifern, SQL einzuschleusen, wenn sie PreferQueryMode=SIMPLE verwenden. Beachten Sie, dass dies nicht der Standardmodus ist. Im Standardmodus gibt es keine Sicherheitslücke. Einem Platzhalter für einen numerischen Wert muss unmittelbar ein Minuszeichen vorangestellt werden. Nach dem ersten Platzhalter muss ein zweiter Platzhalter für einen Zeichenkettenwert stehen; beide müssen sich in derselben Zeile befinden. Durch die Konstruktion eines passenden String-Payloads kann der Angreifer SQL injizieren, um die Abfrage zu verändern und so den Schutz vor SQL-Injection-Angriffen durch parametrisierte Abfragen zu umgehen. Betroffen sind die Versionen vor 42.7.2, 42.6.1, 42.5.5, 42.4.4, 42.3.9 und 42.2.8.
* PDF-Dateien, die mit Verschlüsselung exportiert wurden, konnten mit Safari ohne Passwort geöffnet werden, wenn nur das Benutzerkennwort festgelegt war.
* Beim Hinzufügen eines Subreports via Designer oder API, war die Option `Datenquellenkonfiguration im Bericht speichern` immer gesetzt. Jetzt wird der Wert des Hauptberichts übernommen.
* Behebt eine XSS-Schwachstelle im HTML-Viewer mit POST-Parametern für Prompts und manipulierten Parameternamen.
