[general]
* AdoptOpenJDK 11 bundled with installed i-net Designer and Report Server was updated to version 11.0.10
* Support for Internet Explorer will be discontinued in the next version 21.4
* Support for Java 8 will be discontinued in the next version 21.4. At least Java 11 will be required
* Factur-X / ZUGFeRD plugin added
* JDK 15 now supported
* Tiff images supported

[general:de]
* AdoptOpenJDK 11, das mit installiertem i-net Designer und Report Server gebündelt ist, wurde auf Version 11.0.10 aktualisiert
* Die Unterstützung für den Internet Explorer wird mit der nächsten Version 21.4 eingestellt
* Die Unterstützung für Java 8 wird mit der nächsten Version 21.4 eingestellt. Es wird mindestens Java 11 benötigt
* Factur-X / ZUGFeRD-Plugin hinzugefügt
* JDK 15 wird jetzt unterstützt
* Tiff-Bilder werden unterstützt

[changes]
* Performance improved when embedding large font files
* Date formats with regional settings (e.g. en-UK) supported in prompt dialog 
* Improved compatibility for old save states with dataviews
* New notifications are now directly shown in the web client when the OS notifications are disabled or not possible
* `SameSite=Lax` Attribute set for login cookies 
* Changes of heap memory, language, country and VM arguments will work with a server restart from the web interface. Before a service restart was required
* Web applications can now be installed as Progressive Web App (PWA)
* Note added to configuration property "Restrict Permissions" in dialog "User & Groups" because when global permissions are not restricted then all users have administrative access!
* Diagnostics now show cache memory usage
* Maintenance: It is now possible to restore backups that were not made with the current version. The backup is checked for whether it is compatible with the current version, and if so, it is able to be restored
* Changed AdHoc default render format in the WebGUI to `PNG` for a lossless result
* Use the correct database row for inlined fields in crosstab labels such as the total labels
* ToWords formula function for Hungarian language adds a space as thousands separator
* Break algorithm improved for Text Interpretation "HTML(advanced)" to prevent breaks in text lines
* Use getColumnLabel() instead getColumnName() for DB2 driver version 4 and later. This has an effect for a SQL command with "AS" keywords on columns

### HTML Report Viewer
* Prompt dialog is pre-filled with first default prompt values
* Break algorithm improved for Text Interpretation "HTML(advanced)" to prevent breaks in text lines

[changes:de]
* Verbesserte Leistung beim Einbetten großer Schriftdateien
* Datumsformate mit regionalen Einstellungen (z.B. en-UK) werden im Eingabeaufforderungsdialog unterstützt
* Verbesserte Kompatibilität für alte Speicherstände bei Dataviews
* Neue Benachrichtigungen werden nun direkt im Web-Client angezeigt, wenn die OS-Benachrichtigungen deaktiviert oder nicht möglich sind
* `SameSite=Lax` Attribut für Login-Cookies gesetzt
* Änderungen des Heap-Speichers, der Sprache, des Landes und der VM-Argumente funktionieren nun auch bei einem Server-Neustart über das Web-Interface. Vorher war ein Service-Neustart erforderlich
* Webanwendungen können nun als Progressive Web App (PWA) installiert werden
* Hinweis zur Konfigurationseigenschaft "Berechtigungen einschränken" im Dialog "Benutzer & Gruppen" hinzugefügt, denn wenn globale Berechtigungen nicht eingeschränkt sind, haben alle Benutzer administrativen Zugriff!
* Diagnose zeigt jetzt die Cache-Speicherauslastung an
* Wartung: Es ist jetzt möglich, Backups wiederherzustellen, die nicht mit der aktuellen Version erstellt wurden. Das Backup wird daraufhin überprüft, ob es mit der aktuellen Version kompatibel ist, und wenn ja, kann es wiederhergestellt werden
* Das Standard-Rendering-Format von AdHoc in der WebGUI wurde auf "PNG" geändert, um ein verlustfreies Ergebnis zu erzielen
* Verwendung der korrekten Datenbankzeile für eingefügte Felder in Kreuztabellenbeschriftungen wie z.B. die Gesamtbeschriftung
* ToWords-Formelfunktion für die ungarische Sprache fügt ein Leerzeichen als Tausendertrennzeichen hinzu
* Der Umbruchalgorithmus wurde für die Textinterpretation "HTML(advanced)" verbessert, um Umbrüche in Textzeilen zu verhindern
* Verwendung von getColumnLabel() anstelle von getColumnName() für DB2-Treiber Version 4 und höher. Dies hat Auswirkungen auf einen SQL-Befehl mit "AS"-Schlüsselwörtern auf Spalten

### HTML-Berichtsbetrachter
* Prompt-Dialog wird mit den ersten Standard-Prompt-Werten vorausgefüllt
* Umbruchalgorithmus für Textinterpretation "HTML(advanced)" verbessert, um Umbrüche in Textzeilen zu verhindern

[bugfixes]
#### Fixed Bugs
* Exception "java.lang.IllegalStateException" with message "Not valid for write: id=..." occurred
* Error occurred with expired session: IllegalStateException: Invalid for read: id=xxx created=xxx accessed=xxx lastaccessed=xxx maxInactiveMs=xxx expiry=xxx
* PDF export: Character replacement for embbeded fonts improved containing characters which are in code blocks which are not in the code block list of the font
* Regression in Diagnostics occurred because of that only the first 8 entries in list was show because the pagination was broken
* ORA-01000: maximum open cursors exceeded - occurred if Oracle JDBC driver was used
* `OutOfMemory` or `ReportCache` errors occurred because of problems with false positive low memory detection. The log output contains the warning: "There was a low memory situation and possibly some jobs were canceled." and maybe other subsequent errors
* It was not possible to login if a localhost URL was used in Chrome browser to open the web interface
* Access to the repository with Login using WebDav has not worked on Windows
* Wrong PDF signature configuration leads to a failed designer start
* WebDav access to the report repository has not worked on Windows. No login was requested
* Temporary errors (Extenal visible URL '...' was not validated) occurred during validation of Private Cloud License
* PDF export: IndexOutOfBoundsException and NullPointerException occurred with embedded OpenType font
* Chinese content was not aligned well on right side if Justified was used 
* PDF export:
  * Chinese characters were missing because of a bug with word wrapping that was wider than the field, surrogate characters and font replacement.
*  `IllegalStateException` occurred with message `Unknown operation: com.inet.report.renderer.doc.controller.bk@0` if:
  * subreport contains TotalPageCount and the last instance of the subreport has no rows
  * harddisk cache was used
* XLSX / ODS export: Exception "java.lang.IllegalArgumentException with message x2 must not less than x1" occurred if the report contains a crosstab
* XLSX / ODS export: Percentage number was incorrectly displayed (multipled by 100)
* Rare rounding error occurred when reducing the scale of a number by more than 9 digits in a formula function
* Patches the SQL command to query the metadata (column names) was wrong if the SQL statement contains strings which contains brackets, e.g. `REPLACE(A.FIELD,'；)',')')`. In this case `WHERE 1=0` was added after the `ORDER BY` clause
* Oracle table source identifier with a package name will be always used as name of a stored procedure and never as name of a table. This makes it possible to use the same name for a package stored procedure and a table
* 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.

### HTML Report Viewer
* Print preview was empty if the "HTML Viewer Module Toolbar" plugin was enabled

### i-net Designer
* The following errors occurred sometimes in Remote Designer when opening a report from the repository: "No repository configuration found for file: "...rpt"" and "Not authorized. Please check your permissions and restart the Designer if applicable.".
* It was not possible to edit a 3D Chart because the properties dialog does not open
* Wrong PDF signature configuration leads to a failed designer start
* The error "`HTTP ERROR 400 Duplicate valid session cookies`" occurred with remote designer

### SDK
* HTML Viewer Print via PDF Plugin: Error occurred: Class Not Found: com.inet.htmlviewer.printpdf.HTMLViewerPrintViaPDFPlugin

[bugfixes:de]
#### Behobene Fehler
* Exception "java.lang.IllegalStateException" mit Meldung "Not valid for write: id=..." aufgetreten
* Fehler bei abgelaufener Sitzung aufgetreten: IllegalStateException: Ungültig zum Lesen: id=xxx created=xxx accessed=xxx lastaccessed=xxx maxInactiveMs=xxx expiry=xxx
* PDF-Export: Zeichenersetzung für eingebettete Schriften verbessert, die Zeichen enthalten, die in Codeblöcken stehen, die nicht in der Codeblockliste der Schrift enthalten sind
* Regression in Diagnostics aufgetreten, da nur die ersten 8 Einträge in der Liste angezeigt wurden, da die Paginierung defekt war
* ORA-01000: Maximum Open Cursors exceeded - trat auf, wenn der Oracle JDBC-Treiber verwendet wurde
* `OutOfMemory`- oder `ReportCache`-Fehler traten aufgrund von Problemen mit der falsch-positiven Erkennung von zu wenig Speicher auf. Die Protokollausgabe enthält die Warnung: "Es gab eine Situation mit wenig Speicherplatz und möglicherweise wurden einige Aufträge abgebrochen" und möglicherweise andere nachfolgende Fehler
* Es war nicht möglich, sich anzumelden, wenn eine localhost-URL im Chrome-Browser verwendet wurde, um die Weboberfläche zu öffnen
* Der Zugriff auf das Repository mit Login über WebDav hat unter Windows nicht funktioniert
* Falsche Konfiguration der PDF-Signatur führt zu einem fehlgeschlagenen Designer-Start
* Der WebDav-Zugriff auf das Berichts-Repository hat unter Windows nicht funktioniert. Es wurde kein Login angefordert
* Temporäre Fehler (Extenal visible URL '...' wurde nicht validiert) sind bei der Validierung der Private Cloud Lizenz aufgetreten
* PDF-Export: IndexOutOfBoundsException und NullPointerException traten bei eingebetteter OpenType-Schrift auf
* Chinesischer Inhalt wurde nicht gut rechts ausgerichtet, wenn Justified verwendet wurde
* PDF-Export:
  * Chinesische Zeichen fehlten aufgrund eines Fehlers beim Wortumbruch, der breiter als das Feld war, bei Ersatzzeichen und Schriftersetzung.
*  es trat eine "IllegalStateException" mit der Meldung "Unknown operation: com.inet.report.renderer.doc.controller.bk@0" auf, wenn:
  * subreport TotalPageCount enthält und die letzte Instanz des Subreports keine Zeilen hat
  * festplatten-Cache verwendet wurde
* XLSX / ODS-Ausgabe: Exception "java.lang.IllegalArgumentException mit Meldung x2 darf nicht kleiner sein als x1" aufgetreten, wenn der Bericht eine Kreuztabelle enthält
* XLSX / ODS-Export: Prozentzahl wurde falsch angezeigt (mit 100 multipliziert)
* Seltener Rundungsfehler beim Reduzieren der Skala einer Zahl um mehr als 9 Stellen in einer Formelfunktion
* Patches der SQL-Befehl zur Abfrage der Metadaten (Spaltennamen) war falsch, wenn die SQL-Anweisung Strings enthält, die Klammern enthalten, z.B. `REPLACE(A.FIELD,'；)',')')`. In diesem Fall wurde `WHERE 1=0` nach der `ORDER BY` Klausel hinzugefügt
* Der Oracle-Tabellenquellenname mit einem Paketnamen wird immer als Name einer gespeicherten Prozedur und nie als Name einer Tabelle verwendet. Dies macht es möglich, den gleichen Namen für eine Stored Procedure und eine Tabelle zu verwenden
* 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.

### HTML-Berichtsbetrachter
* Die Druckvorschau war leer, wenn das "HTML Viewer Module Toolbar"-Plugin aktiviert war

### i-net Designer
* Die folgenden Fehler traten manchmal im Remote Designer auf, wenn ein Bericht aus dem Repository geöffnet wurde: "Keine Repository-Konfiguration für Datei gefunden: "...rpt"" und "Nicht autorisiert. Bitte überprüfen Sie Ihre Berechtigungen und starten Sie den Designer ggf. neu.".
* Es war nicht möglich, ein 3D-Diagramm zu bearbeiten, da der Eigenschaftsdialog nicht geöffnet wurde
* Falsche Konfiguration der PDF-Signatur führt zu einem fehlgeschlagenen Designer-Start
* Der Fehler "`HTTP ERROR 400 Duplicate valid session cookies`" trat beim Remote Designer auf

### SDK
* HTML-Viewer Drucken über PDF-Plugin: Es ist ein Fehler aufgetreten: Klasse nicht gefunden: com.inet.htmlviewer.printpdf.HTMLViewerPrintViaPDFPlugin

[security]
* Security Fix: Open Redirect Vulnerability occurred (CVE-2020-28150)
* Security Fix: Jetty CVE-2020-27216
  * In Eclipse Jetty versions 1.0 thru 9.4.32.v20200930, 10.0.0.alpha1 thru 10.0.0.beta2, and 11.0.0.alpha1 thru 11.0.0.beta2O, on Unix like systems, the system's temporary directory is shared between all users on that system. A collocated user can observe the process of creating a temporary sub directory in the shared temporary directory and race to complete the creation of the temporary subdirectory. If the attacker wins the race then they will have read and write permission to the subdirectory used to unpack web applications, including their WEB-INF/lib jar files and JSP files. If any code is ever executed out of this temporary directory, this can lead to a local privilege escalation vulnerability
* Possible JavaScript injections prevented
* Security Fix for CVE-2020-13692
  * PostgreSQL JDBC Driver (aka PgJDBC) before 42.2.13 allows XXE

[security:de]
* Sicherheitsfix: Offene Redirect-Schwachstelle aufgetreten (CVE-2020-28150)
* Sicherheits-Fix: Jetty CVE-2020-27216
  * In den Eclipse-Jetty-Versionen 1.0 bis 9.4.32.v20200930, 10.0.0.alpha1 bis 10.0.0.beta2 und 11.0.0.alpha1 bis 11.0.0.beta2O wird auf Unix-ähnlichen Systemen das temporäre Verzeichnis des Systems von allen Benutzern auf diesem System gemeinsam genutzt. Ein kollokierter Benutzer kann den Prozess der Erstellung eines temporären Unterverzeichnisses in dem gemeinsam genutzten temporären Verzeichnis beobachten und um die Erstellung des temporären Unterverzeichnisses wetteifern. Wenn der Angreifer das Rennen gewinnt, hat er Lese- und Schreibrechte für das Unterverzeichnis, das zum Entpacken von Webanwendungen verwendet wird, einschließlich ihrer WEB-INF/lib jar-Dateien und JSP-Dateien. Wenn aus diesem temporären Verzeichnis heraus Code ausgeführt wird, kann dies zu einer lokalen Schwachstelle führen, die eine Ausweitung der Rechte zur Folge hat
* Verhinderung möglicher JavaScript-Injektionen
* Sicherheitsfix für CVE-2020-13692
  * PostgreSQL JDBC-Treiber (alias PgJDBC) vor 42.2.13 erlaubt XXE
