Migration Information
Version 23.4
- For higher accuracy, the tolerance for images and lines in the 'Verify Identitiy' comparison profile was reduced from 1 to 0.01. This still compensates rounding errors but may cause additional differences. In case you're using this profile, consider creating a copy with tolerances set back to 1 in case of unintended differences.
Version 20.0
Changes in program structure
The internal structure has changed. Due to this change the previous startup scripts are no longer valid and have to be changed.
If manual changes were made to the startup scripts, they have to be updated accordingly:
- Server: the startup script has to be changed from
- From: ''<del>java -cp java/PDFC.jar com.inet.pdfc.PDFCServer</del>''
- To: ''java -jar core/inetcore.jar''
- Desktop Application: the startup script has to be changed from
- From: ''<del>java -jar java/PDFCGui.jar</del>''
- To: ''java -jar core/inetcore.jar pdfc.gui''
- Command Line Parameters: the startup has to be changed
- From: ''<del>java -jar java/PDFC.jar ...</del>''
- To: ''java -jar core/inetcore.jar cmd ...''
Behavioural changes
- The Comparison API// plugin requires the //Web API plugin (with the ID ''webapi.core'') to be enabled. The activation will be performed once automatically for custom configurations that had the ''comparison.api'' plugin enabled already (e.g. saving changes in the Configuration Manager -> Plugins section). Otherwise the Comparison API plugin is disabled by default now.
- The Web API plugin has been updated with a new remote interface application which requires an additional permission. Every other previous Web API extension now requires this permission as well. Users with specific Web API permissions must be checked and reconfigured in the Users and Groups Manager.
- The Comparison API by default returns the ''JSON'' format now. To still get an HTML result, please add the parameter ''format=html'' to the request query.
Version 5.0
- Data will be migrated by the setup into the new format of i-net PDFC version 5. Therefore we recommend to backup the program data.
- The global quoata settings will be updated by the setup to allow user and group quotas.
- The text parser now can be configured. Thus the default font and line spacing may differ when rendering to PDF or images.
- All profile settings that do not affect the comparison itself were removed. Such global settings are now command line switches or can be set to the API using the Settings object or the ConfigurationManager.
Comparison Application
Version 22.10
- Published comparison profiles will automatically be migrated to be published for the user group 'All Users'
i-net PDFC Server
Version 24.4
- The Repository has been deprecated and is replaced by the all-new Drive.
Discord
Version 21.10
- Any webhooks found in existing Task Planner Discord actions will be added to the central Discord Incoming Webhooks list in the configuration.
Field Settings
Version 24.4
- Custom field of type "Selectable Values" with both options "Own Value" and "Multiple Values" activated are migrated to the option "Own Value". A combination of both options is not possible anymore.
HTML Engine
Version 24.4
The HTMLEngine is a core component of all our products. As such, it must be included in the plugins directory at all times; otherwise, the server will not start.
i-net CoWork
Version 22.4
Backups
Backups for MeetUp that were previously configured and used in maintenance are no longer compatible. CoWork must be activated again in the configured backup.
It is recommended to create fresh backups before and after each update.
PDF Parser
Version 24.10
- The
parser.pdf
plugin replaces the previousdecoder.pdf
plugin
Reporting
Version 24.4
- The Java Viewer Applet has been removed. In modern browsers, Java Applets have been unavailable for some time now. You can still use the Java Viewer in API mode.
- The
ReportServletJSP
has been removed. It was used as an entry point for*.jsp
files that allowed to instantiate report engines and control Java Viewer Applet HTML output. - The Drive will replace the previous Report Repository as the central storage solution.
Version 23.10
- The deprecated datasource property
driverLibrary
has been removed. To use additional driver libraries, you must move them to thelib
directory of the installation.
Version 21.4
WAR file for Oracle Weblogic
The initialization for WebSocketEndPoint to be registerable in Oracle Weblogic was changed in version 21.10. This fixed the error java.lang.IllegalStateException: Not in 'deploy' scope.
.
If you use an web.xml file of another WAR file you need to add the listener **com.inet.http.ExpandableServletContextListener
**
Version 20.0
Changes in program structure
The internal structure has changed. That is why the new plugin reporting
(file: plugins/reporting.zip
) is now mandatory to start i-net Clear Reports. Due to this change the previous startup scripts are no longer valid and have to be changed.
In addition, the i-net Designers plugin remotedesigner.zip
has been renamed to designer.zip
.
If manual changes were made to the startup scripts, they have to be updated accordingly:
- Report Server: the startup script has to be changed from
- From:
~~java -cp core/ClearReports.jar com.inet.report.ClearReportsServer~~
- To:
java -jar core/inetcore.jar
- From:
- i-net Designer: the startup script has to be changed from
- From:
~~java -jar core/designer.jar~~
- To:
java -jar core/inetcore.jar designer
- From:
- Command Line Parameters: the startup has to be changed
- From:
~~java -jar core/ClearReports.jar -forceImportConfig ...~~
- To:
java -cp core/inetcore.jar com.inet.config.recovery.RecoveryConfiguration -forceImportConfig ...
- From:
- **Servlet Users of custom
*.war
or*.ear
**: the servlet class has to be changed- From:
com.inet.report.ReportServlet
- To:
com.inet.http.PluginDispatcherServlet
. See the referencewar
file for details.
- From:
Note: Developers who utilise API classes such as com.inet.report.Engine
from the reporting.jar
have to extract this jar file from the reporting.zip
plugin now.
Behavioural changes
- The Web API plugin has been updated with a new remote interface application which requires an additional permission. Every other previous Web API extension now requires this permission as well. Users with specific Web API permissions must be checked and reconfigured in the Users and Groups Manager.
com.inet.report.ReportServlet
has been removed. If there were extensions from the previously deprecated API, then they have to be moved to a plugin, registering an extension now.- The formula functions
BytesFromFile
andTextFromFile
now limits access to files to prevent a path traversal for normal users. The specified file must be from a valid report location, and if it is located in the file system then it must be from the same directory or subdirectory as the report itself. - Custom implementations of
com.inet.report.PropertiesChecker
can not be added to thelib
directory anymore. They have to be implemented using a plugin. See<SDK>\\Documentation and Samples\\Plugin - Samples\\PropertiesChecker
for an example plugin. - Custom implementations of
javax.servlet.Filter
can not be added to thelib
directory anymore. They have to be implemented using a plugin. See<SDK>\\Documentation and Samples\\Plugin - Samples\\ SessionDatasource
for an example plugin. - The
com.inet.report.Listener
class has been removed. The web server has not been started by this class since version 15.x. The web server is started using the pluginwebserver.zip
.
Version 19.0
- The MySQL Connector/J was updated to version 8.0.13. It is recommended for MySQL Server 5.5 or higher. For older MySQL Server version you could replace the MySQL Connector/J with the version of the previous i-net Clear Reports version
- With the
Server Printers
plugin enabled users will not be able to use the server printer after upgrading to version 19. They will have to have group permissions assigned to regain access to server printers - The Data Source Manager Interface has been renewed from the ground up. Existing Data Sources in the former User/System/Temp/Session - Scopes will now be readonly from the interface but can still be added and modified using API. An new Application Scope has been added which now supports assigning user groups to restrict permissions
- Data Sources are now handled differently for reports.
- Data Sources with the same name may exist with different permissions in different scopes
- The are looked up in the following order: User Session Scope → Temporary Scope → Application Scope with permission → User Scope → System Scope
- Application Scope with permission means that there may be more than one Data Source with the same name but with different permissions. The first that is allowed for the users group will be used
Version 18.0
- Data will be migrated by the setup into the new format of i-net Clear Reports version 18. Therefore we recommend to backup the program data.
- The
/remote
context of the Remote GUI has been removed. Applications beneath this entry point have been moved up one level. - If you have a plugin which implements your own AuthenticationProvider then you must rewrite it. To support multiple login sources in parallel the API has changed. A sample for a such a plugin can be found in the SDK.
- If you use the repository plugin then security settings will be migrated. After the migration it will no longer work with older versions of i-net Clear Reports. Permission patterns are not supported anymore. The administrator needs to check whether the users have the desired and expected permissions.
- If the remote printing plugin is enabled then in the HTML viewer this is available via menu point.
- There is a new default plugin that embeds the HTML Viewer into the remote application. That means that users of the HTML Viewer will see the configured logo, will be able to to signup/login and directly access their remote applications.
- When having permissions or userdata for old, now unused, users, such users will appear as User Accounts in the new Users And Groups Manager. Take a look there and delete obsolete users.
- The pattern (like "", "vwl.rpt", ...) in the folder permissions of the Repository Browser are no longer supported. After migration the settings will be valid for all report files in the same folder. If other patterns than "*" (all reports) were used then it is necessary to check the folder permission settings in the Repository Browser. The permission "Server Administration" is necessary for that.
- The C# implementation based on IKVM is deprecated. It was replaced with the ProcessBridge. You can find it in the SDK (https://download.inetsoftware.de/clear-reports-sdk-latest.zip). You find the required folder structure for Visual Studio and Powershell in the readme.html of the folder "i-net Clear Reports .NET Bridge". It is necessary to reimplement your program using i-net Clear Reports API because the API is not compatible with the implementation based on IKVM.
- In version 18 the option "Mapping Fonts" is enabled by default. If this option is activated, all characters of a logical or not embedded font will be replaced with characters of an embedded font.
Version 17.0
Migration of Scheduler Jobs
Every Scheduler task since version 12 will be migrated to the Task Planner in the setup when updating a system that used the previous Scheduler.
Migrating tasks from the Scheduler to the Task Planner
- Make sure that the plugin Task Planner - Render Reports is activated
- Make sure all tasks of all users are deleted from the Task Planner. Migration only occurs if the Task Planner is empty.
- Restart your server. In the initialization phase it will now migrate the tasks silently.
- If it does not migrate the Scheduler tasks to the Task Planner please check the log files and send it to our support.
Migration issues
When tasks are migrated from Scheduler to Task Planner, some minor issues may arise, since many things have been streamlined and simplified. See the following hints.
Reports
- The setting
as file:
was removed, which gave each generated report a different name. Now the name of the generated file(s) come from the title configured in the report template (.rpt). However, the *File System Action has an option File Name Format which allows you to construct a unique name.
Action settings
- For
Save (on servers file system)
the settings Attach date and Attach time was combined into the option File Name Format. - For
Send via Email
, the CC and BCC options were removed, and values from CC are added as normal receivers. The options Put reports in a zip file, Attach date and Attach time were removed. - For
Print (at server-known printer)
the option Count of Copies was removed, it always prints once. Other even older options like orientation and quality which were only available via Java API were also removed.
Time settings
There are some rare combinations of settings which were possible with the old Scheduler but are no longer possible with the Task Planner. It is possible some of the more exotic settings will get a slightly different behavior in the Task Planner.
- Daily execution with a
DayStepSize
greater than 1, which means execute everyN
days. In the scheduler this addsN
days from the start date for each next execution. After conversion to Task Planner this always starts at the 1st of month and then addsN
days for each next execution. If theDayStepSize
is 7 then it will convert to a weekly interval. - Weekly execution with a
WeekStepSize
greater than 1, which means everyN
weeks. If it is 2 then aTwo Weeks
interval will be used. Other values are not supported in the Task Planner and when converting this it will set theWeekStepSize
to 1. - Monthly execution with a
MonthStepSize
greater than 1, which means everyN
months. In the scheduler this addsN
months to the start date for each next execution. This can only be represented with a Cron Trigger. The Cron starts at a given month and then addsN
months for the next execution. When converting such tasks it will determine the start-month automatically in order to match the correct interval. This only works if theMonthStepSize
is 2, 3, 4, 6 or 12. For other values it will be everyN
months, but the execution month will likely be wrong. - Yearly execution with a
YearStepSize
greater than 1, which means everyN
years. This is not supported in the Task Planner and when converting this it will set theYearStepSize
to 1. - Delete this task after Execution: This feature is not available in the Task Planner.
- Multiple executions on same day: one Time or Cron-Trigger does not support this, but you can add multiple triggers to the same task. When those tasks are migrated it will create many triggers automatically.
- End execution after
N
executions or after a given Date: this feature is not available in the Task Planner. When converting expired tasks they will be deactivated.
Custom Actions
Old custom actions will not work after migrating to the Task Planner. Those actions must be replaced with custom Jobs and/or Actions. See the programming samples for how to implement your own Job or Action.
Dynamic Properties
Old dynamic properties classes will not work after migration to Task Planner. If you loaded your dynamic values from a Database then you can probably replace your custom dynamic properties with a Database Series. For other cases it should be replaced with a custom Series implementation. See the programming samples for how to implement your own Series type.
Task owner
In Task Planner, each task always must have an owner, so a task belongs to a user. Migrated tasks will have Scheduler
as owner. Because certain triggers, jobs and result handlers require certain permissions the artificial user Scheduler
gets some permissions automatically if you have System Permissions enabled. If you remove the permissions it can happen that tasks can no longer be executed.
If you want to move the tasks to another user then you must duplicate a task and then delete the old one. The new task will belong to the currently logged in user.
The Repository: permissions and ownership
Due to the new user the reporting server is running with there may be permission problems when accessing the Repository browser. You should look up the path of your repository in the Configuration Manager and check the permissions of this path in a console program on the server.
It is important for the reporting server that its user has read+write permissions to every file and additional execute permissions for directories. The owner of each file and directory should be the user the reporting server is executed with.
You can find out the respective user using ps aux | grep java
.
A server restart is required after these changes were made.
Version 16.0
Java 8 required
The i-net Designer and the i-net Clear Reports server now requires Java 8 as minimum version of the Java virtual machine. The i-net Clear Reports viewer requires Java 7.
64bit Java VM embedded
The report server use a 64bit Java VM. As the 32 bit and 64 bit preferences on Windows are stored on different locations it may be necessary to export the configuration using the older i-net Clear Reports version and import it using i-net Clear Reports version 16.
Version 15.0
WebServer plugin
The i-net Clear Reports web server was moved into a plug-in. Since plug-ins will be initialized automatically, the web server will start automatically, for example if the API was used. You need to remove the webserver plug-in if you embedd i-net Clear Reports instead of using it as report server.
64bit Java VM embedded on Windows
The setup and report server on Windows use a 64bit Java VM to install and use i-net Clear Reports. As the 32 bit and 64 bit preferences on Windows are stored on different locations it may be necessary to export the configuration using the older i-net Clear Reports version and import it using version 15.
Plugins
In the configuration manager dialog "Plugins" it is now possible to activate/deactivate plugins to extend or restrict the functionality of i-net Clear Reports. Some plugins are deactivated by default, e.g. Statistics and Scheduler.
Version 14.0
i-net Clear Reports consists of plugins
With version 14 we are introduced the concept of plugins to i-net Clear Reports. This removes a large amount of libraries from the installation and adds a single zip file per feature. This makes it much easier to say which library is required for a specific feature, this also avoids ClassNotFoundExceptions which could occur when removing libraries for features you didn't need.
Loading
Every plugin is a single zip file. All plugins are located in a folder named "plugins". On server start this directory is scanned and a plugin dependency hierarchy is created. All plugins with unresolved dependencies will be disabled. Now the start classes of all valid plugins are instantiated and the extensions for the core or other plugins are registered. The last step is the initialization of all valid plugins. To check which plugins were successfully loaded, activate the logging of i-net Clear Reports and set the log level to at least INFO.
Architecture
A plugin is a zip file. It contains at least the files "plugin.properties" and "server.jar". The plugin.properties defines the start class which implements the interface com.inet.plugin.ServerPlugin.
Further properties of the plugin are defined by annotations of the start class. These annotations cover the id of the plugin, its dependencies and the plugin version. For further details refer to the Server Programming Guide.
Scheduler - Custom Actions / Dynamic Properties
If you are using a custom scheduler action and/or dynamic properties, it is necessary to write a plugin for this action and/or dynamic property class. Registering custom actions or dynamic properties to the scheduler does no longer work by adding a jar-file to the lib path. For more information please refer to the samples in the i-net Clear Reports installation directory.
API Changes
- The following constructors of the class com.inet.report.Listener have been removed:
- Listener(int port, boolean throwException)
- Listener(boolean standalone, int port, boolean throwException)
- The other constructors of class com.inet.report.Listener are new throwing an IOException in case of IO error.
- The following interfaces and classes were moved from package com.inet.report.config to com.inet.config:
- Configuration
- ConfigurationChangeListener
- ConfigurationChangeEvent
- ConfigurationManager
- The following interfaces and classes were added:
- com.inet.authentication
- UsersAndGroupsProvider
- com.inet.problemfinder.rules
- ProblemFinderRule
- AbstractRuleElement
- AbstractRuleField
- AbstractRulePropertyFormula
- AbstractRuleSection
- com.inet.plugin
- ServerPlugin
- ServerPluginManager
- com.inet.report
- ListenerSettings
- com.inet.authentication
- Removed deprecated API:
- com.inet.report.ReportProperties
- getLabelFormat()
- setLabelFormat( String s )
- com.inet.report.ValueProperties
- getBooleanFormatTypeFormula()
- com.inet.report.AbstractValueElement
- getBooleanFormatTypeFormula()
- com.inet.report.chart.plot.BarPlot
- DEFAULT_BAR_MARGIN_PERCENT
- getBarMarginPercent()
- setBarMarginPercent( double barMarginPercent )
- com.inet.report.ReportProperties
Removed deprecated Methods and Constants
The following methods had been deprecated for longer than 2 major versions and
have now been entirely removed in version 11 of i-net Clear Reports.
- com.inet.designer.BasicDesignerDataModel
- chooseReportFile(java.awt.Component)
- com.inet.designer.DesignerDataModel
- chooseReportFile(java.awt.Component)
- com.inet.report.AbstractValueElement
- getDateWindowsDefaultType() replaced by getDateFormatType()
- setDateWindowsDefaultType(int) replaced by setDateFormatType(int)
- getDateWindowsDefaultTypeFormula() replaced by getDateFormatTypeFormula()
- setDateWindowsDefaultTypeFormula(FormulaField) replaced by setDateFormatTypeFormula(FormulaField)
- setUseSystemDefaultFormat(boolean) replaced by the individual format type method
- getUseSystemDefaultFormat() replaced by the individual format type method
- setUseSystemDefaultFormatFormula(FormulaField) replaced by the individual format type method
- getUseSystemDefaultFormatFormula() replaced by the individual format type method
- com.inet.report.DatabaseTables
- createDatasource(String,String,String,String,String,String) replaced by createDatasource(String)
- createDatasource(String,String,String,String) replaced by createDatasource(String)
- com.inet.report.Datasource
- dll_connectionByConfiguration
- getDll() replaced by getDataSourceConfigurationName()
- setDll(String) replaced by setDataSourceConfigurationName(String)
- com.inet.report.Element
- getHyperlinkType() replaced by getHyperlinkUrl="migration-to-11.html" data-contextid="migration-to-version-11" data-rawid="documentation:clear-reports:release-notes:en:migration:migration-to-11" and getHyperlinkUrlFormula()
- setHyperlinkType(int) replaced by setHyperlinkUrl="../../String" and setHyperlinkUrlFormula(FormulaField)
- com.inet.report.Engine
- setPath(String, String, String) replaced by ConfigurationManager#setCurrent(com.inet.report.config.Configuration)
- setPath(java.net.URL) replaced by ConfigurationManager#importFromStream(int, String, java.io.InputStream)
- getGroupTree(int, int) replaced by #getGroupTree()
- com.inet.report.GroupTree
- getData(byte[],int,int) replaced by Engine.getGroupTree()
- com.inet.report.HyperlinkProperties
- NO_HYPERLINK
- FILE_HYPERLINK
- WEBSITE_HYPERLINK
- EMAIL_HYPERLINK
- FIELD_VALUE_HYPERLINK
- getHyperlinkType() replaced by getHyperlinkUrl="migration-to-11.html" data-contextid="migration-to-version-11" data-rawid="documentation:clear-reports:release-notes:en:migration:migration-to-11" and getHyperlinkUrlFormula()
- setHyperlinkType(int) replaced by setHyperlinkUrl="../../String" and setHyperlinkUrlFormula(FormulaField)
- com.inet.report.RDC
- getCrystalClearPropertyPath()
- setConfigurationProperties(Properties)
- getConfigurationProperties()
Use the following code sample to replace RDC.setConfigurationProperties(Properties p):
Configuration config = ConfigurationManager.getInstance().create( Configuration.SCOPE_TEMP, "xyz" );
config.putAll( props );
ConfigurationManager.getInstance().setCurrent( config );
- com.inet.report.SummaryField
- getChartSourceIndex() replaced by getName()
- setChartSourceIndex(int) replaced by setName(String)
- com.inet.report.ValueProperties
- USE_WINDOWS_LONG_DATE replaced by USE_SYSTEM_LONG_DATE
- USE_WINDOWS_SHORT_DATE replaced by USE_SYSTEM_SHORT_DATE
- NOT_USING_WINDOWS_DEFAULTS replaced by NOT_USING_SYSTEM_DEFAULTS
- getDateWindowsDefaultType() replaced by getDateFormatType()
- setDateWindowsDefaultType(int) replaced by setDateFormatType(int)
- getDateWindowsDefaultTypeFormula() replaced by getDateFormatTypeFormula()
- setDateWindowsDefaultTypeFormula(FormulaField) replaced by setDateFormatTypeFormula(FormulaField)
- setUseSystemDefaultFormat(boolean)
- getUseSystemDefaultFormat()
- setUseSystemDefaultFormatFormula(FormulaField)
- getUseSystemDefaultFormatFormula()
Version 10.0
The following methods had been deprecated for longer than 2 major versions and have now been entirely removed in version 10 of i-net Crystal-Clear.
- com.inet.report.AbstractFontElement
- getBold()
- getItalic()
- getStrikeout()
- getUnderline()
- com.inet.report.AbstractLineElement
- getExtendToBottomOfSectionWhenPrinting()
- com.inet.report.AbstractValueElement
- getAllowFieldClipping()
- getReverseSignForDisplay()
- com.inet.report.BorderProperties
- getTightHorizontal()
- setTightHorizontal(FormulaField)
- com.inet.report.Chart
- com.inet.report.ChartFormatProperties
- getAllowFieldClipping()
- getReverseSignForDisplay()
- com.inet.report.CrossTabCell
- getSubElements()
- com.inet.report.DatabaseTables
- getConvertDateTime()
- isPasswordValid()
- setConvertDateTime(int)
- com.inet.report.Element
- getCanGrow()
- getCloseBorderOnPageBreak()
- getDropShadow()
- getSuppress()
- getSuppressIfDuplicated()
- getTextRotation()
- getTightHorizontal()
- setTextRotation(int)
- setTightHorizontal(FormulaField)
- com.inet.report.Engine
- EXPORT_CSV_COM
- EXPORT_CSV_COL
- DEFAULT_PAPER_ORIENTATION
- DEFAULT_PAPERSIZE
- LANDSCAPE
- pageSizes
- PAPER_*
- PATER_TABLOID
- PORTRAIT
- USERDEFINED_PAPER
- getAcrossThenDown()
- getFormatGroupsWithMultipleColumn()
- getHorizontal()
- getLabel*()
- getMargin*()
- getPaper*()
- getVertical()
- isFormatWithMultipleColumns()
- setAcrossThenDown(boolean)
- setData(ResultSet, boolean)
- setFormatGroupsWithMultipleColumn(boolean)
- setFormatWithMultipleColumns(boolean
- setHorizontal(int)
- setLabel*(...)
- setMargin*(...)
- setPaper*(...)
- setVertical(int)
- com.inet.report.FieldElement
- getLineSpacing()
- getLineSpacingType()
- setLineSpacing(int)
- setLineSpacingType(int)
- com.inet.report.FontProperties
- getBold()
- getItalic()
- getStrikeout()
- getUnderline()
- com.inet.report.ValueProperties
- TWELF_HOURS
- getAllowFieldClipping()
- getReverseSignForDisplay()
- com.inet.report.GeneralProperties
- CENTER_ALIGN
- DEFAULT_ALIGN
- JUSTIFIED_ALIGN
- LEFT_ALIGN
- RIGHT_ALIGN
- ROTATE_*
- getCanGrow()
- getCloseBorderOnPageBreak()
- getCloseBorderOnPageBreakFormula()
- getDefaultPromptValues()
- getDropShadow()
- getDropShadowFormula()
- getKeepTogether()
- getSuppress()
- getSuppressIfDuplicated()
- getTextRotation()
- setCloseBorderOnPageBreak(boolean)
- setCloseBorderOnPageBreakFormula(FormulaField)
- setDropShadow(boolean)
- setDropShadowFormula(FormulaField)
- setTextRotation(int)
- com.inet.report.Group
- getInstanceId()
- getParentGroup()
- removeGroupDirectionFormula()
- setHierarchicalGrouping(boolean, Field, Field, int)
- setInstanceId(Field)
- setParentGroup(Field)
- com.inet.report.LineProperties
- getExtendToBottomOfSectionWhenPrinting()
- com.inet.report.Paragraph
- getLineSpacingType()
- setLineSpacingType(int)
- com.inet.report.ParagraphProperties
- EXACT_SPACING
- MULTIPLE_SPACING
- getLineSpacing()
- getLineSpacingType()
- setLineSpacing(int)
- setLineSpacingType(int)
- com.inet.report.PictureProperties
- BOTTOM_ALIGN
- CENTER_ALIGN
- TOP_ALIGN
- com.inet.report.PromptField
- addDefaultValue(String,String)
- addDefaultValue(Object,String)
- getPromptValueDesciptions()
- setDefaultPromptValues(Object[])
- setDefaultPromptValues(String)
- setDefaultValue(int,Object,String)
- com.inet.report.ReportComponent
- getKeepTogether()
- com.inet.report.ReportProperties
- getAcrossThenDown()
- getDistinct()
- getFormatGroupsWithMultipleColumn()
- com.inet.report.SortField
- removeSortDirectionFormula()
- com.inet.report.Subreport
- getOnDemand()
- com.inet.report.SubreportProperties
- getOnDemand()
- com.inet.report.SummaryField
- SUMMARY_CROSSTAB_ROW
- SUMMARY_CROSSTAB_COLUMN
The following methods had been deprecated for longer than 2 major versions and
have now been entirely removed in version 9 of i-net Crystal-Clear.
- com.inet.report.AbstractLineElement
- getExtentToBottomOfSectionWhenPrinting()
- com.inet.report.AbstractValueElement
- getDateFirstSeperator()
- setDateFirstSeperator(String)
- getDateFirstSeperatorFormula()
- setDateFirstSeperatorFormula(FormulaField)
- getDatePrefixSeperator()
- setDatePrefixSeperator(String)
- getDatePrefixSeperatorFormula()
- setDatePrefixSeperatorFormula(FormulaField)
- getDateSecondSeperator()
- setDateSecondSeperator(String)
- getDateSecondSeperatorFormula()
- setDateSecondSeperatorFormula(FormulaField)
- getDateSuffixSeperator()
- setDateSuffixSeperator(String)
- getDateSuffixSeperatorFormula()
- setDateSuffixSeperatorFormula(FormulaField)
- getDateTimeSeperator()
- setDateTimeSeperator(String)
- getDateTimeSeperatorFormula()
- setDateTimeSeperatorFormula(FormulaField)
- getDayOfWeekSeperator()
- setDayOfWeekSeperator(String)
- getDayOfWeekSeperatorFormula()
- setDayOfWeekSeperatorFormula(FormulaField)
- getDecimalSeperatorsSymbol()
- setDecimalSeperatorsSymbol(String)
- getDecimalSeperatorsSymbolFormula()
- setDecimalSeperatorsSymbolFormula(FormulaField)
- getHourMinuteSeperator()
- setHourMinuteSeperator(String)
- getHourMinuteSeperatorFormula()
- setHourMinuteSeperatorFormula(FormulaField)
- getMinuteSecondSeperator()
- setMinuteSecondSeperator(String)
- getMinuteSecondSeperatorFormula()
- setMinuteSecondSeperatorFormula(FormulaField)
- getThousandSeperatorsSymbol()
- setThousandSeperatorsSymbol(String)
- getThousandSeperatorsSymbolFormula()
- setThousandSeperatorsSymbolFormula(FormulaField)
- getUseThousandSeperators()
- setUseThousandSeperators(boolean)
- getUseThousandSeperatorsFormula()
- setUseThousandSeperatorsFormula(FormulaField)
- com.inet.report.BorderProperties
- getBottomLineStyleFormel()
- getTopLineStyleFormel()
- com.inet.report.Chart
- CUSTOM_NUMER_FORMAT
- getSort()
- setdataValuesMinMax(double, double)
- setSort(int)
- com.inet.report.ChartFormatProperties
- getDateFirstSeperator()
- setDateFirstSeperator(String)
- getDateFirstSeperatorFormula()
- setDateFirstSeperatorFormula(FormulaField)
- getDatePrefixSeperator()
- setDatePrefixSeperator(String)
- getDatePrefixSeperatorFormula()
- setDatePrefixSeperatorFormula(FormulaField)
- getDateSecondSeperator()
- setDateSecondSeperator(String)
- getDateSecondSeperatorFormula()
- setDateSecondSeperatorFormula(FormulaField)
- getDateSuffixSeperator()
- setDateSuffixSeperator(String)
- getDateSuffixSeperatorFormula()
- setDateSuffixSeperatorFormula(FormulaField)
- getDateTimeSeperator()
- setDateTimeSeperator(String)
- getDateTimeSeperatorFormula()
- setDateTimeSeperatorFormula(FormulaField)
- getDayOfWeekSeperator()
- setDayOfWeekSeperator(String)
- getDayOfWeekSeperatorFormula()
- setDayOfWeekSeperatorFormula(FormulaField)
- getDecimalSeperatorsSymbol()
- setDecimalSeperatorsSymbol(String)
- getDecimalSeperatorsSymbolFormula()
- setDecimalSeperatorsSymbolFormula(FormulaField)
- getHourMinuteSeperator()
- setHourMinuteSeperator(String)
- getHourMinuteSeperatorFormula()
- setHourMinuteSeperatorFormula(FormulaField)
- getMinuteSecondSeperator()
- setMinuteSecondSeperator(String)
- getMinuteSecondSeperatorFormula()
- setMinuteSecondSeperatorFormula(FormulaField)
- getThousandSeperatorsSymbol()
- setThousandSeperatorsSymbol(String)
- getThousandSeperatorsSymbolFormula()
- setThousandSeperatorsSymbolFormula(FormulaField)
- getUseThousandSeperators()
- setUseThousandSeperators(boolean)
- getUseThousandSeperatorsFormula()
- setUseThousandSeperatorsFormula(FormulaField)
- com.inet.report.CrossTab
- getColTotalOnLeft()
- com.inet.report.CrossTabCell
- setHeightByFieldElements()
- setWidthByFieldElement(int)
- com.inet.report.DatabaseTables
- addSproc(String, String[], int[])
- addSproc(String, String, String[], int[])
- addSqlSource(String)
- addSqlSource(String, String)
- getDistinct()
- getPassword()
- getUser()
- setCatalog(String)
- setColumnNames(String, String[])
- setColumnTypes(String, int[])
- setDistinct(boolean)
- setDll(String)
- setHost(String)
- setPassword(String)
- setSchema(String)
- setURL(String)
- setUser(String)
- com.inet.report.Element
- getBottomLineStyleFormel()
- getToolTipsTextFormel()
- getTopLineStyleFormel()
- getWebSiteAddressFormel()
- setWebSiteAddressFormula(FormulaField)
- com.inet.report.Engine
- getCatalog()
- getConnection()
- getDll()
- getHost()
- getPassword(int)
- getPasswords()
- getSchema()
- getURL()
- getUser(int)
- getUsers()
- setDll(String)
- setHost(String)
- setPassword(String, int)
- setPasswords(Vector)
- setSql(String, boolean)
- setURL(String)
- setUser(String, int)
- setUsers(Vector)
- com.inet.report.Fields
- addDatabaseField(String)
- addSortField( field, String)
- com.inet.report.FormulaField
- checkFormula(String, boolean, Engine, Field, Object, boolean)
- com.inet.report.GeneralProperties
- getToolTipsTextFormel()
- com.inet.report.HyperlinkProperties
- getWebSiteAddressFormel()
- setWebSiteAddressFormula(FormulaField)
- com.inet.report.JavaBean
- getBeanProperty(String)
- com.inet.report.LineProperties
- getExtentToBottomOfSectionWhenPrinting()
- com.inet.report.SortField
- setSortDirectionFormula(String)
- com.inet.report.TableSource
- setColumnName(int idx, String)
- setColumnType(int, int)
- com.inet.report.ValueProperties
- getDateFirstSeperator()
- setDateFirstSeperator(String)
- getDateFirstSeperatorFormula()
- setDateFirstSeperatorFormula(FormulaField)
- getDatePrefixSeperator()
- setDatePrefixSeperator(String)
- getDatePrefixSeperatorFormula()
- setDatePrefixSeperatorFormula(FormulaField)
- getDateSecondSeperator()
- setDateSecondSeperator(String)
- getDateSecondSeperatorFormula()
- setDateSecondSeperatorFormula(FormulaField)
- getDateSuffixSeperator()
- setDateSuffixSeperator(String)
- getDateSuffixSeperatorFormula()
- setDateSuffixSeperatorFormula(FormulaField)
- getDateTimeSeperator()
- setDateTimeSeperator(String)
- getDateTimeSeperatorFormula()s
- setDateTimeSeperatorFormula(FormulaField)
- getDayOfWeekSeperator()
- setDayOfWeekSeperator(String)
- getDayOfWeekSeperatorFormula()
- setDayOfWeekSeperatorFormula(FormulaField)
- getDecimalSeperatorsSymbol()
- setDecimalSeperatorsSymbol(String)
- getDecimalSeperatorsSymbolFormula()
- setDecimalSeperatorsSymbolFormula(FormulaField)
- getHourMinuteSeperator()
- setHourMinuteSeperator(String)
- getHourMinuteSeperatorFormula()
- setHourMinuteSeperatorFormula(FormulaField)
- getMinuteSecondSeperator()
- setMinuteSecondSeperator(String)
- getMinuteSecondSeperatorFormula()
- setMinuteSecondSeperatorFormula(FormulaField)
- getThousandSeperatorsSymbol()
- setThousandSeperatorsSymbol(String)
- getThousandSeperatorsSymbolFormula()
- setThousandSeperatorsSymbolFormula(FormulaField)
- getUseThousandSeperators()
- setUseThousandSeperators(boolean)
- getUseThousandSeperatorsFormula()
- setUseThousandSeperatorsFormula(FormulaField)
- com.inet.report.schedule.Scheduler
- getEmailPassword()
- setEmailPassword(String)
- getEmailPop3Host()
- setEmailPop3Host(String)
- getEmailSender()
- setEmailSender(String)
- getEmailSmtpHost()
- setEmailSmtpHost(String)
- getEmailUser()
- setEmailUser(String)
The following methods had been deprecated for longer than 2 major versions and have now been entirely removed in version 8 of i-net Crystal-Clear.
- com.inet.report.Area
- setSectionWillbePrinted(int)
- getSectionWillBePrinted()
- com.inet.report.Chart
- setXAxisSource(Field)
- getXAxisSource()
- com.inet.report.CrossTab
- dropColumn()
- com.inet.report.DatabaseTables
- *_JOIN
- addJoin(String, String, String, String, int )
- com.inet.report.Engine
- setPath(String)
- setPath(String, String)
- com.inet.report.Fields
- getGroupSortField(int)
- getGroupSortFieldsCount()
- com.inet.report.FormulaField
- getBasicSyntax()
- setBasicSyntax(boolean)
- com.inet.report.Group
- setKeepGroupTogether(boolean)
- getKeepGroupTogether()
- com.inet.report.RDC
- gc(Engine)
- com.inet.report.ReportProperties
- getPageWidth()
- setPageWidth(int)
- com.inet.report.ReportServletJSP
- props
Added Classes
- com.inet.repor.Region
- com.inet.report.config
- Configuration
- ConfigurationManager
- LicenseKeyInfo
- com.inet.report
- Chart2
- com.inet.report.chart
- All classes in this package and in it's sub packages
Added Methods
- com.inet.report.BorderProperties
- isCloseBorderOnPageBreak()
- getCloseBorderOnPageBreakFormula()
- setCloseBorderOnPageBreak(boolean)
- setCloseBorderOnPageBreakFormula(FormulaField)
- com.inet.report.Element
- isCloseBorderOnPageBreak()
- com.inet.report.Field
- duplicate(String)
- com.inet.report.FormulaField
- checkContext()
- duplicate()
- getNullBehavior()
- setNullBehavior(int)
- com.inet.report.PromptField
- duplicate(String)
- com.inet.report.SQLField
- duplicate(String)
- com.inet.report.SummaryInfo
- getThumbnail()
- setThumbnail(Image)
- com.inet.report.SummaryField
- duplicate(String)
- com.inet.report.TableSource
- getDatabaseField(int)
- com.inet.report.cache.Cache
- getFailureCause(ReportCacheKey)
- com.inet.report.Engine
- getStatus()
- com.inet.report.FieldElement
- getBaseUrl()
- setBaseURL(String)
- getBaseUrlFormula()
- setBaseUrlFormula(FormulaField)
- com.inet.report.ParagraphProperties
- getFirstLineIndentFormula()
- setFirstLineIndentFormula(FormulaField)
- getLeftIndentFormula()
- setLeftIndentFormula(FormulaField)
- getLineSpacingAbsoluteFormula()
- setLineSpacingAbsoluteFormula(FormulaField)
- getLineSpacingRelativeFormula()
- setLineSpacingRelativeFormula(FormulaField)
- getRightIndentFormula()
- setRightIndentFormula(FormulaField)
- com.inet.report.ReportProperties
- getReportLocale()
- setReportLocale(java.util.Locale)
- com.inet.report.Section
- addChart2(ChartStyle,int,int,int,int)
- com.inet.report.TextProperties
- getGlyphOrientationFormula()
- setGlyphOrientationFormula(FormulaField)
- getTextRotationFormula()
- setTextRotationFormula(FormulaField)
- com.inet.report.ValueProperties
- getDateFormatType()
- setDateFormatType(int)
- getDateFormatTypeFormula()
- setDateFormatTypeFormula(FormulaField)
- getTimeFormatType()
- setTimeFormatType(int)
- getTimeFormatTypeFormula()
- setTimeFormatTypeFormula(FormulaField)
- com.inet.viewer.ReportView
- getDefaultAttributeSet(int,int)
- print(PrinterJob,PrintRequestAttributeSet)
- com.inet.viewer.SwingReportView
- showPrintDialog(Component,PrinterJob,HashPrintRequestAttributeSet)
- com.inet.viewer.SwingReportViewer
- getPrinterDefaultFormatHandling()
- setPrinterDefaultFormatHandling(int)
Methods and Constants deprecated in version 10
The following list includes the methods that are deprecated in version 10 and should no longer be used. Please consult the API documentation of the individual methods for more information about newer methods to use instead.
- com.inet.report.config.datasource.DataSourceConfiguration
- checkConnection()
Removed Methods
The following list includes the methods that have been entirely removed in version 10 of i-net Crystal-Clear.
- com.inet.report.Cache
- isTypeClusterCache()
- com.inet.report.LicenseKeyInfo
- isCluster()
- getGroupNumber()
Added Constants
- com.inet.report.Engine
- EXPORT_BMP
- EXPORT_GIF
- EXPORT_JPG
- EXPORT_PNG
- com.inet.report.FormulaField
- TREAT_NULL_AS_NULL
- TREAT_NULL_BY_DEFAULT
- TREAT_NULL_BY_EXCEPTION
Methods and Constants deprecated as of Version 9
The following list includes the methods that are deprecated in version 9 and should
no longer be used. Please consult the API documentation of the individual methods
for more information about newer methods to use instead.
- com.inet.report.Datasource
- setup(String)
- setup(DataSourceConfiguration)
- com.inet.report.RDC
- saveEngine(PrintWriter, Engine)
Methods and Constants deprecated as of Version 8
The following list includes the methods that are deprecated in version 8 and should no longer be used. Please consult the Javadoc of the individual methods for information on which newer methods to use instead.
- com.inet.designer.DesignerDataModel
- openChartDialog(Chart)
- com.inet.report.AbstractValueElement
- getDateWindowsDefaultType()
- setDateWindowsDefaultType(int)
- getDateWindowsDefaultTypeFormula()
- setDateWindowsDefaultTypeFormula(FormulaField)
- setUseSystemDefaultFormat(boolean)
- getUseSystemDefaultFormat()
- setUseSystemDefaultFormatFormula(FormulaField)
- getUseSystemDefaultFormatFormula()
- com.inet.report.Chart
- all members of this class
- com.inet.report.ChartFormatProperties
- getDateWindowsDefaultType()
- setDateWindowsDefaultType(int)
- getDateWindowsDefaultTypeFormula()
- setDateWindowsDefaultTypeFormula(FormulaField)
- setUseSystemDefaultFormat(boolean)
- getUseSystemDefaultFormat()
- setUseSystemDefaultFormatFormula(FormulaField)
- getUseSystemDefaultFormatFormula()
- com.inet.report.DatabaseTables
- createDatasource(String,String,String,String,String,String)
- createDatasource(String,String,String,String)
- com.inet.report.Datasource
- dll_connectionByConfiguration
- getCatalog()
- setCatalog(String)
- getDll()
- setDll(String)
- getHost()
- setHost(String)
- getUsername()
- setUsername(String)
- getURL()
- setUrl(String)
- com.inet.report.Element
- getHyperlinkType()
- setHyperlinkType(int)
- com.inet.report.Engine
- setPath(String, String, String)
- setPath(java.net.URL)
- getGroupTree(int, int)
- com.inet.report.GroupTree
- getData(byte[],int,int)
- createErrorTree(boolean)
- com.inet.report.HyperlinkProperties
- NO_HYPERLINK
- FILE_HYPERLINK
- WEBSITE_HYPERLINK
- EMAIL_HYPERLINK
- FIELD_VALUE_HYPERLINK
- getHyperlinkType()
- setHyperlinkType(int)
- com.inet.report.RDC
- getCrystalClearPropertyPath()
- setConfigurationProperties(Properties)
- getConfigurationProperties()
- com.inet.report.Section
- addChart(int, int, int, int, int)
- com.inet.report.ValueProperties
- USE_WINDOWS_LONG_DATE
- USE_WINDOWS_SHORT_DATE
- NOT_USING_WINDOWS_DEFAULTS
- getDateWindowsDefaultType()
- setDateWindowsDefaultType(int)
- getDateWindowsDefaultTypeFormula()
- setDateWindowsDefaultTypeFormula(FormulaField)
- setUseSystemDefaultFormat(boolean)
- getUseSystemDefaultFormat()
- setUseSystemDefaultFormatFormula(FormulaField)
- getUseSystemDefaultFormatFormula()
- com.inet.viewer.SwingViewerContext
- SwingViewerContext()
Moved Methods
- com.inet.report.Element
- getManualFormatFormula() moved to AbstractValueElement.getManualFormatFormula()
- setManualFormatFormula(FormulaField) moved to AbstractValueElement.setManualFormatFormula(FormulaField)
Email settings
The email settings in the configuration moved from the category "Scheduler" into the new category "Email Settings" because they are used by "Error Notifications" as well.
Support Email Address
It is now possible to display a link with a support email address in the error dialog of HTML and Java report viewer. You can configure it in the configuration manager category "Email settings". The default value is "clearreports@inetsoftware.de".
Error notifications
It is now possible to send an email notification in case of an error. In the new plugin "Error Notifications" you can set an email address to which all error notifications will be send.
Version 13.0
Java 7 required
The i-net Designer and the i-net Clear Reports server now requires Java 7 as minimum version of the Java virtual machine. The i-net Clear Reports viewer requires Java 5.
Fixed point numbers instead of floating point numbers
Formulas and summaries now use fixed point numbers instead of floating point numbers. This reduce rounding problems. If there are problems then you could set the configuration property "Compatibility Level" to version "12.x" in the configuration manager category "Behavior".
Default report viewer: HTML
The HTML report viewer has replaced the Java report viewer as the default viewer. In the configuration manager category "Behavior" it is possible to set the default viewer.
Query files are deprecated
Crystal Reports query files are deprecated. The API for query files has been deprecated. The support will stop in version 16. We recommend to use a command in the report instead of a query file.
Version 12.0
Image URL in HTML export
The URL of the images in exported HTML files has been changed.
Scheduler redesigned
The web GUI of the i-net Clear Reports scheduler has been replaced by a new Remote Interface module.
URL parameter "init=scheduler"
The URL parameter "init=scheduler" has been removed. You can access the new scheduler module in the Remote Interface or using the URL:
http://<servername>:<port>/[<servlet-context>]/remote/scheduler
Configured Tasks saved in preferences
In previous versions the file scheduler.xml was used to store the configured task. With version 12 the tasks are stored in the Java preferences, like the i-net Clear Reports configurations.
One Action per Task
With version 12 only one action per task is supported. During import of the task of the scheduler.xml, multiple tasks created for a task with multiple actions.
Cache Action removed
The cache action is no more supported in the scheduler of version 12. Instead of this action you should use a file action to save the executed report as file and then request this file from the server.
Remote Configuration Manager redesigned
The Configuration Manager module in the Remote Interface has been redesigned. We have added some new categories and restructured the properties partially. To get more help, please click on the help link in a configuration manager category.
The remote configuration manager is now the default configuration manager. The configuration manager Java application has been removed. With the new recovery and standalone configuration tool it is possible to repair configurations. This tool is available in the installation directory.
Embedded fonts independent from property "Use Native Fonts"
If a "Font Path" is configured then the used fonts are embedded. This occurs regardless of the value of the property "Use Native Fonts".
Version 11.0
i-net Crystal-Clear has been renamed into i-net Clear Reports
The name of version 2011 (version 11.0) is now i-net Clear Reports.
Drop "Crystal", focus on clear reports - simple name, simple yet powerful reporting: i-net Clear Reports.
Java 6 required
The i-net Designer and the i-net Clear Reports server now requires Java 6 as minimum version of the Java virtual machine. The i-net Clear Reports viewer requires Java 5.
Deprecated report URL parameters are no longer supported
The following deprecated report URL parameters are no longer supported: "dll", "host", "catalog", "database", "schema", "user", "url". It is recommended to use the report URL parameter "datasource" instead.
Group Name Fields with Date format configurable
It is now possible to configure the group name field of a group on a date and/or time field in the "Property Editor" of the i-net Designer. In previous versions the group name field has displayed a string representation of the date depending on the date and/or time interval of the group. The system formats use the set time interval of the group, e.g. if the field was grouped on "each month" then the group name field contains month and year. With the custom format you can set this yourself.
New directory structure
The directory structure in the installation directory has been changed. The directory "crystalclear" has been replaced with 2 new directories: "client" and "core".
The directory "core" contains all library files of the root class path and the "lib" directory contains contains library files, which can be loaded dynamically. The directory "client" contains resources for the i-net Crystal-Clear client, e.g. the new HTML parameter request dialog.
Element border / shadow increase section height
If a report element has a border and/or shadow and the lower border of the report element is exactly on the lower edge of a section, then the height of this section is increased at runtime by the width of the border and / or shadow.
In previous versions, the border and/or shadow was painted into the next section. To use this behavior of the older versions with version 10, you need to set the value of the property "Compatibility Level" to "compliant to version 9.x".
Section property "Suppress Blank section"
The behavior of the section property "Suppress Blank section" has been changed.
If this property is enabled, an emtpy section will be suppressed. A section is emtpy, if it does not contain dynamic data.
That means, the section will be suppressed if the following report elements does not contain any data:
- all (database, formula, special, summary) fields
- all fields embedded in text elements
- all database pictures
and no chart, crosstab, Java Bean or subreport is displayed.
The following elements does not effect this property:
- text elements without embedded fields
- boxes
- lines
- pictures
- section background.
Property "Allow unknown Data Sources" added
For security reasons the property "Allow unknown Data Sources" has been added to the configuration category "General Options".
If this property is disabled, then it is not possible to execute reports containing an unknown datasource. A data source is unknown, if no data source configuration exists with this name on the report server. This will prevent that each user has the possibility to load data from external databases.
New default value for "Max HTTP Requests"
Since version 10, the new default (and recommended) value for the property "Max HTTP Requests" is 250. Because of a bug in channel handling of various Java VMs, i-net Crystal-Clear report server now uses sockets instead of channels and therefore requires more threads. The previous default value of 8 would now actually decrease performance of the report server.
If the current value of this property is less than 50, then the setup increases it to 250 during the installation of version 10.
If the current value is already between 50 and 250, then it is necessary to manually set the value to 250 if this default is desired.
Null values for string parameter fields supported
Single string parameter fields (prompts) which do not have any length limit now accept null in addition to an empty string. In the prompt dialog, they have a "no value" option which can be toggled on and off for the string prompt.
If you do not want to allow null values for string prompts, you can simply specify 0 as the minimum length of the string - note that in the i-net Designer, this is now the default setting when creating new string prompts.
Authentication for Remote Interface has changed
Up to now the password form of the Remoter Interface appears, if report permissions and/or system permissions are enabled and no login script was specified in the configuration (see Security Guide for more details).
Since version 10, i-net Crystal-Clear supports several authentication methods. The property Login Type defines, how the user has to log into the system and where the permitted user names are administrated.
The default value of the Login Type is: Automatic. In this case, the server tries to request the login in the following order: External Webserver (URL of Login Script must be set), Windows Authentication (if the server is running on a Windows operating system), Internal Webserver, Master Password.
To use a specific authentication method, you need to select it in the Configuration Manager, property: Login Type in the category System Permissions.
Cluster of i-net Crystal-Clear Plus removed
The cluster feature of i-net Crystal-Clear Plus has been removed. Operating system or application server clusters should be used instead.
Support for Crystal Reports 6
Reports created with Crystal Reports version 6 are no longer supported. If you have such reports, then you will have to open and save these reports either with a newer Crystal Reports version or with a previous version of i-net Designer.
Version 9.0
URL parameters are disallowed by default
Since version 9, for security reasons, only the following parameters are allowed by default in the report URL: "prompt", "init" and "sproc". To use other parameters in the report URL, like "datasource", it could be necessary to unlock them in the Configuration Manager before using it.
It is always possible to set values for all parameters in the checkProperties method on the server side. Java code samples showing this you can find in the "samples" directory of the documentation (if installed).
Evaluation Time of Formulas
The evaluation time of formulas has been changed in version 9 in order to provide better performance as well as be more consistent. The formula functions "WhileReadingRecords" and "WhilePrintingRecords” now have a slightly different effect on when the formula is evaluated, as well as on how the formula can be used.
If you use an older configuration with i-net Crystal-Clear version 9, then it is necessary to set the Compatibility Level to "compliant to version 9.x" to use the new behavior of "WhileReadingRecords" formulas. If you create a new configuration with version 9, then "compliant to version 9.x" is the default value.
- All formulas specified as "WhileReadingRecords” that are used in the report are now executed:
- for each record
- after all records are sorted and filtered but
- before the rendering of the first section begins.
- Variables used in formulas with the WhileReadingRecords evaluation time are not reset before the rendering starts so that the variables can be used in formulas with WhilePrintingRecords evaluation time, also.
- Summaries, grouping and sorting are also computed prior to rendering, making it impossible to summarize or group on a "while printing" formula.
- Formulas which include a summary can not have their evaluation be specified as "while reading" since the summary will not be computed until after computing the "while reading" records.
Because of the modified behavior it might be necessary to update your reports using the WhileReadingRecords function so that you get the same result as with previous i-net Crystal-Clear versions. It is unfortunately necessary to do this behavior modification because the old behavior was incorrect.
In order to figure out which reports need modification, we provide a tool called EvaluationTimeChecker with our Java source code samples (see: directory samples.formula) that can be installed during the setup, which will point you to any reports you might have which will have any changed behavior in version 9. For backwards compatibility, you have in the Configuration Manager the property "Compatibility Level". Please set the value to "compliant to version 8.x" to keep the old formula evaluation time behavior.
Note that if two formulas have the same evaluation time, they are evaluated in the order they were created. Say you have two "before reading" formulas in your report header – the first one you created will be evaluated before the second one, even if the second one is positionally above the first.
Underlay Following Sections
The algorithm for "Underlay Following Sections" was rewritten to implement the correct definition. This can change the output of your reports if you were affected by bugs in the old implementation. One benefit is that you can now design reports with watermarks without any problems. If you want to create a watermark then you need only to add a first section to the report/page header and enable "Underlay Following Sections" for this section. You should place the image either in the report or the page header depending on if you want one watermark per report
or one per page.
Improved Report File Format
Since version 9, i-net Crystal-Clear uses a zipped file format for the report templates (.rpt), similar to the OpenDocument zip file format. This new report file format was a prerequisite for new features like the Report Preview and translation resources per report. With this format the performance has been improved especially for large reports, because the file size is smaller and it is faster. Also, with this format we are open for further additions to the report templates.
Version 8.0
Java Version
i-net Crystal-Clear and i-net DesignerXML version 8.x require at least Java 5. If your application runs with an older version of Java (version 1.4.2 or earlier), you should migrate your application to Java 5 before migrating to version 8 of i-net Crystal-Clear.
i-net Crystal-Clear Configuration in Version 8
Preferences instead of crystalclear.properties
Starting in version 8 of i-net Crystal-Clear, crystalclear.properties are no longer used. All configurations are instead stored in the operating system's preferences – where these are located depends on the operating system. In Microsoft Windows, i-net Crystal-Clear uses the Windows registry, while on Unix systems the preferences are stored in the file system (/etc/.java, or ~/.java). Because of this change, it is now possible to comfortably store and manage configurations in a central place, you no longer have to work with various crystalclear.properties files.
Importing old crystalclear.properties
All existing crystalclear.properties files can be imported into a preferences scope (System, User, Temporary) with the new Configuration Manager. Note that if i-net Crystal-Clear will be started as a service, it is recommended to use the System scope since the i-net Crystal-Clear service will most likely be running as a different user.
When importing a crystalclear.properties file, its settings are completely copied into the configuration. The database driver DLL-properties, however, must first be converted into data sources in order for them to be used in version 8. An additional dialog will show the choices for converting these properties and will offer a choice
of data source configuration per database driver DLL. If no database driver DLLs are to be imported, the dialog can simply be canceled, otherwise you can skip the database driver DLLs you do not need by choosing "<do not import>". Also, for each data source Text body, an individual scope can be set (System, User, Temporary),
depending on the current read and write permissions. A context menu additionally offers help for the simple choosing of drivers and scopes. Please note that after this conversion of the properties, imported configurations do not contain the database driver DLL properties any more.
If you do not want (or are not able) to use the Configuration Manager GUI for importing your crystalclear.properties files, you can do the same via the command line. The program argument -importConfig will start the import process without displaying any window.
java -jar CrystalClear.jar -importConfig <name> <file>
In the argument <name> you must specify the scope and name of the configuration that is to be created, e.g. "System/Default" or "User/myConfig". Only scopes "System" and "User" are allowed.
The argument <file> must contain the path to a readable and valid properties file, e.g. crystalclear.properties.
Please note that the import by command line will not convert any DLL-properties to data sources. This can only be done by using the Configuration Manager.
Scopes
You can store your configurations in one of three different scopes: the System scope, the User Scope, and the Temporary scope. What this means "behind the scenes" for the storage will depend on the operating system your platform uses.
System Scope
The System scope is viewable by all users who have read access to system properties. On many systems, the System scope is only writable by administrators or users with system privileges. Typical uses of this scope would be for deployments on application servers which run as a different user than the normal user, and therefore could not see configurations stored in the User scope. It's also conceivable to store a system-wide scope for various different users in order to not have to create and configure multiple configurations for multiple users.
User Scope
The User Scope is only visible to the user it belongs to. This means configurations stored in the User scope by user A will not be visible to user B. This scope is useful for situations where there is only one user on the system, since the user scope is almost always writable and readable by that user.
Temporary Scope
Storing configurations in this scope will cause the configuration to only work as long as the session runs. As soon as the Java VM is terminated, the configuration will be lost. These configurations are not stored in the Preferences, but are rather held in memory as Properties objects.
Choosing a configuration to use...
...in i-net DesignerXML
In order to choose which configuration you wish to use in i-net DesignerXML, select the menu point "File –> i-net Crystal-Clear Options”. Here you can create, edit, delete, copy, import, and export configurations, as well as choose the configuration you wish to use in i-net DesignerXML with "Activate”.
...for the Report Server (Listener)
The i-net Crystal-Clear Listener will search for its configuration in the following order. As soon as a configuration is found, it is used until the configuration is changed in any way. In this case, the configuration is reloaded as soon as a new report is requested.
- If the Java system property "crystalclear.config” has been set, its value is used to locate a configuration. This name must have "USER” or "SYSTEM” as its prefix and then have the configuration name after a slash, for example:
"-Dcrystalclear.config=USER/myconfig"
"-Dcrystalclear.config=SYSTEM/mysystemconfig".
- If the Java system property "crystalclear.configfile” has been set, its value is used to locate a crystalclear.properties file. This file is then imported and used as a temporary configuration called "<temp copy>”.
- A configuration called "Default” in the User scope.
- A configuration called "Default” in the System scope.
- A configuration called "<Temporary Default>” in the Temporary scope.
If none of the above configurations could be found, a temporary, empty configuration is created and set. Note that this configuration will only have default configuration values and no license key, so it will not be possible to display reports with a Listener running with this temporary configuration.
To change the configuration a Listener is using once it is running, you can use the API of ConfigurationManager, e.g. ConfigurationManager.setCurrent(Configuration).
...for i-net Crystal-Clear running as Servlet
The i-net Crystal-Clear servlet will search for its configuration in the following order.
- There are two init parameters for the servlet in the web.xml. The first one has the name "crystalclear.config”. This enables you to set the configuration you wish to use. Its value's format is the same as for the listener: the name must have "USER" or "SYSTEM" as its prefix and then have the configuration name after a slash, e.g.: "USER/myconfig" or "SYSTEM/mysystemconfig".
If this first init parameter was not set or did not point to a valid configuration, the second init parameter is "crystalclear.configfile" and can specify a crystalclear.properties file with its full absolute path. This file is then imported into a temporary configuration called "<imported config>".
- The Java system parameters are checked for the same properties as for the Listener. Please consult the documentation of your application server for how to set Java system properties.
- A configuration called "Default” in the User scope.
- A configuration called "Default” in the System scope.
- A configuration called "<Temporary Default>” in the Temporary scope.
If none of the above configurations could be found, a temporary, empty configuration is created and set. Note that this configuration will only have default values and no license key, so it will not be possible to display reports with a servlet running with a temporary configuration.
Changing Configurations "On-the-fly”
Starting with version 8 of i-net Crystal-Clear, it is no longer necessary to restart the Listener or application server after changing a configuration property – i-net Crystal-Clear automatically detects the change in the configuration and reloads the configuration the next time a report is requested.
There are two ways to change a configuration:
Configuration Manager Tool
The Configuration Manager can be viewed either from within i-net DesignerXML (File –> i-net Crystal-Clear Options) or by starting it with the command "java -jar CrystalClear.jar". From within the configuration manager it is possible to create, edit, delete, and rename configurations. Remember that unless a specific
configuration is manually set as default, i-net Crystal-Clear will look for a configuration called "Default” in the user or system scope.
API
For information on changing properties programmatically, see the API
documentation to the classes ConfigurationManager and Configuration. To get
started, here is a simple code sample for setting a configuration and then changing
its properties:
ConfigurationManager manager = ConfigurationManager.getInstance();
Configuration c = manager.get(Configuration.SCOPE_USER,”myconfig”);
c.put("propertyXY”,”myvalue”);
...
manager.setCurrent(c);
For transferring to other systems, the data sources can be exported and imported from the data source manager. This is also possible using the public API of the class com.inet.report.config.datasource.DataSourceConfigurationManager.
Datasources and Configuration of Driver DLL's
In version 8 of i-net Crystal-Clear, the mapping between driver dll name and JDBC driver properties in crystalclear.properties were completely replaced by the data sources which were introduced in version 7. A data source describes all settings for a database connection. The saving of the password is optional. Data sources are
based on a similar concept to ODBC data sources.
GUI
The data sources can be edited with the Data Source Manager. This manager can be opened in i-net DesignerXML using the menu point "Database | Data Source Manager”, or with the Configuration Manager (the button on the bottom left). In the data source manager there are 3 scopes in which the data sources can be
stored, just like with the configuration manager.
Old Reports and Crystal Reports Templates
Old report templates (from before version 7) and Crystal Reports templates still have the old dll alias stored in the report. In order to open and run these reports, you will need pseudo data sources. These are created by the setup or when importing old crystalclear.properties. It is not possible to create reports on these
pseudo data sources (such as pdssql.dll).
The URL parameters such as "dll”, "host” and "catalog” only will work for old reports. The new parameter datasource works for all templates.
If this templates are saved or opened in the designer, a temporary data source is created and is stored as a copy in the report template.
Classic Viewer removed
The older Java report viewer of version 6 and older is no longer supported. If you did not migrate to the new Java report viewer in version 7, you will have to do so now.
JAR files for installation
The i-net Crystal-Clear runtime consists of the following libraries:
- **activation.jar ** - Activation Framework - used by scheduler
- **CCLib.jar ** - Core library of i-net Crystal-Clear
- **CrystalClear.jar ** - Report Engine - core library
- **jcommon.jar ** - Used by JFreeChart - core library
- **jfreechartCC.jar ** - JFreeChart library - core library
- **jhall.jar ** - JavaHelp - used by i-net DesignerXML
- **mail.jar ** - JavaMail - used by scheduler
- **crystalclear/CC-Viewer.jar ** - Java Report Viewer
Libraries of optional components:
- **lib/commons-logging-1.1.jar ** - used by JEuclid
- **lib/Fositex.jar ** - JDBC driver for simple text files
- **lib/JBarcodeBean.jar ** - JBarcode Java Bean
- **lib/jeuclid.jar ** - JEuclid - MathML Java Bean
- **lib/mysql-connector-java-3.1.12-bin.jar ** - JDBC driver for MySQL
- **lib/Sero.jar ** - JDBC driver for Oracle Server
- **lib/Sprinta.jar ** - JDBC driver for MS SQL Server
- **lib/Syto.jar ** - JDBC driver for Sybase Server
The following libraries are required if you like to embed the i-net Crystal-Clear report engine into a Java application or Java Servlet:
- CCLib.jar
- CrystalClear.jar
- jcommon.jar
- jfreechartCC.jar
- crystalclear/CC-Viewer.jar
If you use scheduler functionality then it is also necessary to add the files activation.jar and mail.jar to the class path.
To get these files execute the setup and install the Report Server - Runtime Library in a temporary directory.
New Chart API
The Chart has an entirely new API, the old one is deprecated.
The property "Compatibility Level" defines whether Charts will be converted during report loading so that they can be accessed using the new Chart API (see the class com.inet.report.Chart2).
If the value is set to "compliant to version 7.x" the old Chart-API (class Chart) can be still used for reports saved with i-net DesignerXML versions previous to version 8. You can combine also both Chart API's by using the ChartConverter class. See the following example code:
// The engine was initialized with a report with a chart in the first
section of report header
Section section =
engine.getArea(Engine.AREA_TYPE_REPORT_HEADER).getSection(0);
// Returns the old chart element
Chart chart = (Chart)section.getReportElement(0);
// Using the old API
chart.setStyle(Chart.BAR2D_STYLE);
// Converts the old chart to new, the old chart will be replaced with
Chart2
ChartConverter.replaceChart(chart);
// Returns the new chart element
Chart2 chart2 = (Chart2)section.getReportElement(0);
// Using the new API
BarPlot plot = (BarPlot)chart2.getPlot();
plot.setStyle(BarStyle.BAR2D_STACKED);
In contrast, if the value is set to "compliant to version 8.0 or later" then Charts can only be accessed using the new Chart-API (class Chart2).
Troubleshooting / FAQ
I don't see a crystalclear.properties file in our installation directory! How do I configure my i-net Crystal-Clear installation?
Starting in version 8 of i-net Crystal-Clear, crystalclear.properties are no longer used. All configurations are instead stored in the operating system's Preferences (e.g. the Registry when under Windows). To edit and manage your configurations, the easiest way is to use the Configuration Manager, by running the CrystalClear jar
file (e.g. java -jar CrystalClear.jar).
See Chapter i-net Crystal-Clear Configuration in Version 8 for more information.
I have entered a valid license key but still am receiving the error "No license key” or "No configuration found”!
Most likely the configuration with your license key is not being used by your i-net Crystal-Clear installation.
See Chapter Choosing a configuration to use... for information on how to determine which configuration is to be used by your i-net Crystal-Clear installation.
I don't see any database dll properties in the new configuration dialog! How do I configure my database connections?
The database dll properties were entirely replaced by data sources in version 8 of inet Crystal-Clear. To configure your database connections, use the Data Source Manager. See Chapter Datasources and Configuration of Driver DLL's for more information on this.
Note that importing old crystalclear.properties files will cause the dll properties to be imported into data sources. See Chapter Importing old crystalclear.properties for more information on importing crystalclear.properties files.
I have an application still using the old Chart API – using these API methods now causes an error! Do I have to change all of my code to the new API?
Version 8 of i-net Crystal-Clear supports an entirely new Chart API with many new features and an improved look to the charts. It is highly recommended to switch to the new Chart API to take advantage of these new features.
If you want to, however, you can make use of the "Compatibility Level” configuration property, and/or the ChartConverter class. See Chapter New Chart API for more information on this.
System Core
Version 24.4
- The minimum required Java version is Java 17.
Version 23.10
- The version 23.10 is the last version that supports:
- Java 11
- Jakarta EE 8 application server
- Servlet Specification 3.1
- WebSocket 1.1
Version 23.4
- The Docker Containers have been updated to run with a restricted user instead of the
root
users.- The new restricted users id and group id are
1000
. - Host mounted volumes have to be updated to reflect the new user and group id manually.
- Host mounted volumes mount points of the users home directory have to be updated from
/root
to/home/<username>
. The<username>
is determined using thewhois
command in the container - Additional information is available from our FAQ: https://faq.inetsoftware.de/t/upgrading-to-user-restricted-docker-container/277
- The new restricted users id and group id are
Web Server
Version 22.10
- The Allowed Cross Origins option is renamed to Allowed Origins and performs additional checks on the server side when configured.
- The external visible URL is also sent as allowed origin using the CORS header
- Connections to the server (either HTTPs or WSs) are also checked against the list of allowed origins and the external visible URL
Plugin Changes
Version 24.10
- In strict mode, images can now be detected as 'moved' even if they were moved outside the tolerance area.
Version 24.4
- Improved white space detection. They are now determined heuristically by character distances instead of relying on the font settings. The algorithm is only used in the absence of native white space characters.
- [parser.pdf] Added support for linearized PDFs with embedded reference streams
Fixed Bugs
- [parser.pdf] Replaced color transparency for Type3-Fonts that caused the following images to be hidden
Version 23.10
- Added comparison of meta data in images.
- Control elements are now compared as type 'text' instead of 'lines and shapes'.
- Annotation elements with no visual appearance like a 'popup' are now ignored by filters
- Unicode 'combining characters' are now excluded from the white space detection. This improves the white space detection in e.g. Hebrew text which heavly relies on combined characters.
- Negative text overhang is recognized and will update the location of the affected text chunk. This solves incorrect word bounds and white spaces.
- [parser.pdf] Reduced redundancy when handling clips. This reduces the CPU and memory requirements for documents with very complex clip shapes.
- [parser.pdf] Re-use and caching of 'Mask'-images in composite paint operations. This prevents OutOfMemory errors and reduces the storage size of comparisons.
- [parser.pdf] Bidirectional or right-to-left text is now correctly mapped to it's originating page instead of page 1.
Version 23.4
- A new option is available to combine large text differences. This feature drastically reduces the unintended matches in large changes.
- PDF Annotations which relate to some text, like strikethrough or link click areas, are now recognized as a property of the text instead of independent objects. As a result the comparison is much more accurate an can handle line breaks in such annotations.
- For higher accuracy, the pixel tolerances in the "Verify Identitiy" comparison profile were reduced from 1 to 0.01.
- The accuracy of the side-by-side page synchronization (export and GUI) was improved for pages with little to no differences.
Version 22.10
- PDF and PNG exports can now be configured to automatically select an output page size that exactly fits to the displayed content or pages. This reduces the blank space on exported pages and is the best option to view the PDFs/PNGs on screen devices.
- Support for the hyperlink annotation is added to the document comparison.
- Public profiles are restored correctly during backup.
- Subscript and Superscript are now correctly detected in any line of text.
- Detailed comparison of images without clip, e.g. page background images
- [parser.pdf] Changed decoding of 'WindAnsiEncoding' to exclude control characters like line feed.
Version 22.4
- New option for any type of PDF export to not replace external font references by default fonts. This keeps the export more alike similar to the original files even though font references are discoured for PDF.
- Modified handling of overlapping text chunks: Fonts without space character will tolerate larger overlaps without splitting the chunk. Leading spaces will be ignored on overlap.
- Added strong named assemblies for i-net PDFC .Net Bridge to the SDK
- [parser.pdf] It is now optional to replace external font references by PDF native fonts. The replacement will cause a consistent result for any PDF viewer but may cause rendering artifacts.
- [parser.pdf] PDF SetColor commands with only one parameter will now set a grey scale color instead of being skipped
Version 21.10
- Tesseract plugins on Windows have been combined into one plugin
- Batch comparison added to the .NET API
- PDFCNunit: Support for multiple .Net Frameworks added
- Whitespace calculation for small fonts improved
- Footer position corrected in case the header is missing.
- A font difference will now be detected in case the design font name is the same, but the actually used font differs due to a missing embedded font
- JPEG2000 images will be added with original JPEG2000 data to the PDF export
- The internal filter
SOLVEFALSEREPLACE
is now active even for legacy profiles. The filter has been improved and drastically reduces false positives in drawings an shapes with slight position differences due to rounding errors - It is now supported to compare annotations as well
- "Across then down" will be used alwaysif a multi column report will be exported into an endless page output format
- Performance optimization for high amount of graphic operations with blend mode
- Image serialization disparity in the swapping mechanism occurred. This could lead to rare image differences in high load scenarios
- NullPointerException occurred. To solve it we improved the handling of defective PDFs (missing PatternType parameter)
- Incorrect differences occurred due to a zero-width non-joining character
- A text with vertical font was not displayed and the position was wrong
- Glyph was missing in rendering due to an inconsistent font entry in the source PDF
- NullPointerExceptino occurred if the compared Docx files has no style information
- Line height calculation für inconsistent fonts was incorrect
- Text in Courier New font not being displayed in comparison result
- Some parenthesis not displayed in comparison result because of index bug in font generation which leads to missing characters
- Line height calculation was wrong for inconsistent fonts
- Wrong difference details reported: Text in two table columns was moved to the same X,Y position
- Rendering issues occurred for PDF file where the graphics states are not properly closed
- Fixed incorrect white space detection in case the same font is embedded multiple times in a PDF file
- ParserConfigPlugin extended for an option to deactivate the cmap from PDF files because a difference was not detected
- [parser.pdf] Not embedded fonts which refer to external system fonts will no longer be replaced by PDF-native fonts. This avoids artifacts like overlapping words in a potential PDF export of the result.
- The comparison was aborted because of an "Index out of bounds" exception that occurred in case of a style change (e.g. font face) in words with decomposable Unicode characters.
- [parser.pdf] Fixed white space issue when converting ligatures to distinct characters
- [parser.pdf] 'Alternative algorithm' for unmapped glyphes according to PDF specification implemented. This may improve the comparison result and render quality for incomplete embedded Type0 fonts.
Version 21.4
- It is supported to password protect the exported PDF file containing the comparison result
- Vastly improved drawing speed for document images, leading to a much faster page loading in the server and desktop application
- PDF-parser optimized to use stroke instead of fill if possible, resulting in smaller exported PDF files and more precise rendering
- Jpeg2000 encoded images supported
- The font Dejvu-Sans is used as default font for font embedding in PDF export
- Table comparison overhauled to compare the structure as well. Will now show added/removed cells, columns, rows and tables as well
- Text location check in strict mode will now only check the position along the baseline of the text and no longer all bounds of each word. This is more robust if the font family or size is changed as well
- Header/footer detection in documents with large line heights improved
- Recognition of the text styles ''subscript'', ''superscript'' and ''strike through'' for both PDF and DocX
- Improved table recognition for tables with header box, "cross tabs" and tables with only inner borders
- Link-Verification now checks relative URLs for potential http-Protocol as well
- Handling for incorrect PDF files improved, shapes will be ignored in that case
- Multi column detection for plain two column layouts and heading + columns scenarios improved
- Visibility calculation improved for shapes with mixed fill+stroke colors and redundant elements
- 'Compute actual visiblity' improved - it will now exclude text on filled background of equal color as well
- Word detection and separation improved in case of chunking inside a numerical value
- Tesseract OCR:
- The tesseract plugin now clear the tmp files after the usage
- DOCX parser:
- Fallback added that is used in case of not supported pattern
- Improvements of the DOCX parser
- Performance issues occurred because of language detection and improved rendering features
- Different errors occurred due to zero-height text chunks
- Because of a rounding error on first page footer detection there could be incorrect differences on the first page
- Table was detected on the first page while the header&footer filter was active
- Text merge issue in the differences output text occurred. Some white spaces were missing
- False differences occurred in case of duplicated objected in the source document
- DOCX parser:
- Surplus numbering override levels and auto-color in numberings in tables
- Cmap handling for TrueTypeFonts was incorrect. Additional brackets have been inserted between characters
- Layout problems with centered tabs occurred
- Multiple font issues occurred, e.g. with wrong font information in PDF for text with 0 width
- Scroll bug in desktop application occurred at the end of the documents in strict comparison mode
- Additional page border in single side export removed
- Graphic state was not reset for exported comparison result
Version 20.10
ArrayIndexOutOfBoundsException
occurred due to style changes in parts of a word with ligature- Recignition of the text styles subscript, superscript and strike through for both PDF and DocX
- Performance improvements for pages with >100k shape elements
- Comparison Performance improved
- It is now possible to detect style changes within a word
- Multiple bugs with OCR comparison occurred like wrong detection of text in images
- Clipping calculation for complex white shapes and stroked vertical/horizontal lines improved
- The pattern filter can now be used to filter single characters or parts of words as well. The limitation to full words is now optional but enabled by default
- Added font styles to the fonts of the exported PDF comparison result. This enables the reader to copy&paste the correct color and style for text elements from the exported PDF file
- Underline recognition for boxed text improved
- Greatly reduced heap usage and export size in case of recurring or tiled images in compared PDF documents
- Improved space detection in case of negative kerning and justified paragraphs
- Multi-Column filter improved: handling of transparent objects, recognition of row separators, narrow line spacing
- Page range filter: It is now possible to remove last page(s) per document from the comparison
- Font name normalization for 'TimesNewRomanPSMT' true type font improved
- Table filter improved to detect more types of tables in compared PDF documents
- Chinese content not aligned well on right side if Justified was used
- Bug with word wrapping occurred that was wider than the field (without a space), surrogate characters and font replacement
NullPointerException
occurred due to a missing 'Name' attribute in an optional content group- Performance optimized regarding shapes
- Multiple columns not detected because of too close separator lines
- Font rendering issue in PDF layers occurred. Error in WebGUI: begin -1, end 6, length 6
- Docx Parser:
- Missing text in chunked field elements occurred
- Bugfix for separating words within footnote. The footnote sign shouldn't stay alone
- Numbering with jumps (e.g. from a to c) if empty lines are formatted as numbering
- Word separation at the end of the line was wrong
- Excel table was embedded instead of an icon for the link
- Unnecessary page breaks after a parapraph
- Elements disappeard when using automatic header&footer filter for DOCX documents
- Rendering for symbol and symbol font was incorrect
- Text positioning incorrect with centered tabs
- Rendering of embedded EMF in DOCX was incorrect
- Link (element in structured document tags) in DOCX document was not dispalyed
- The rendering of embedded EMF in DOCX was incorrect
- Charcaters were drawn apart in the comparison result if fixed size fonts without width table data was used
NoSuchElementException
occurred in case of a style change in a word with a ligature- Recognition of stacked white elements on document background color
- Text selection/mapping of ligatures and custom glyphes was wrong in exported PDF files
NullPointerException
occurred during comparison of DocX documents because the table border could not read correctly- Invalid Character after export occurred, bugfix for embedding PDF descendant fonts with different parent fonts
- Corrupt text elements in PDF occurred in case a Form element was re-used on several pages
- Incorrectly encoded texts occurred when using a Type1C font: '' was replaced by '•'
- Regression in version 20.4: The rendering with Blendmode and CMYK Colorspace changed back to the behaviour in i-net PDFC version 6. (This combination is currently not supported)
- Handling of hex-encoded resource entry keys was incorrect, leading to missing resources and images
IllegalStateException
: glyph size is not defined occurred because of invalid value in the HEAD table of embedded TrueType fonts- Incorrect 'PageBreakAfter' in DocX files occurred which lead to additional empty pages
- Occasional incorrect vertical offset occurred during Docx comparison when using keep-together for paragraphs
- Wrong word splits occurred due to invalid intermediate space characters combined with ligatures
- 'Image Error' occurred in comparison result caused by an incorrect number of color channels in a masked image
- SDK: The header footer was not displayed in the comparison result if
-highlights headerfooter
was set in the command line
- StackOverflowError with DOCX documents occurred
- Invsible paragraphs in table cells occurred where the 'framePr' property was set
- Wrong location and clipping of annotations in PDF documents
- Referring to file locations in web API calls is limited to administrators
- OCR (tesseract) does not work on Debian
- Invalid characters occurred in comparison result export. This version contains a bugfix for embedding PDF descendant fonts with different parent fonts
- Image was not displayed because of unsupported imagemask
- Error "missing initial moveto in path definition" occurred
- Rare false positives occurred for edges of bordering similar shapes, in case the shapes were slightly moved in one of the documents
- Kerning handling in RTL bidirectional context
- The markup for an underline difference was too long
- Exception due to inconsistent path definitions in PDF files
- Incorrect unicode characters in case the character names in the font are inconsistent
IndexOutOfBoundsException
occurred in comparison core algorithm- Incorrect unicode characters occurred in case the character names in the font are inconsistent
- Differences like "Font Style was changed from bold to plain" occurred although the font style was not changed
- Memory optimization for PDF files with a lot of shapes
- Rare false positives occurred around punctuation
- Page rotation was wrong in case of negative angles
- Incorrect glyph mapping occurred. It prevented some characters from beeing rendered
- Comparison result detail was wrong if it contains .......
- Bug with Type1C Font occurred. Difference result details was replaced by ..........
ArrayIndexOutOfBoundsException
occurred, incorrectly sorted NameTrees in PDF document will now be handled correctly- Bold style recognition for embedded fonts that duplicate default fonts was wrong
IllegalArgumentException
: Color parameter outside of expected range: Alpha- Bold style recognition for embedded fonts that duplicate default fonts was wrong
- DocX files: Paragraphs were invisible in table cells where the 'framePr' property was set
- White space detection issue in case tabulators are encoded as space with kerning
NoninvertibleTransformException
: Determinant is 0 occurred because of a zero-scaled shader clipNullPointerException
occurred in rendering if the PDF explicitly sets the text transformation to zeroIllegalStateException
: Fatal error: Index out of text occurredNullPointerException
occurred sporadically during batch comparison- Rare incorrect horizontal offset in print and print preview
- Issue in the report generation occurred after changing visibilities
IllegalStateException
: Repositioning of a d is not allowed occurredjava.lang.NullPointerException
occurred with Docx files- The Windows Tesseract plugin has been improved to better recognise a single number
- Difference Marker not displayed because of
NullPointerException
- Configuration data lost if MongoDB was used for persistence with multiple i-net PDFC server instances
- Synchronization of cached user data, groups, task planner, maintenance data between multiple nodes was incorrect if using database persistence (MongoDb, Redis)
- There was a random missing image in columns detected by the 'Multi column' filter
- Placeholders in error message "Tesseract couldnt find the language file {0} in path {1}." were not replaced
- Detection of styles and naming for custom Type1C fonts was incorrect
NoSuchElementException
occurred in the continuous difference generator- Default Preview size was wrong in the Desktop Application
Version 6.0
- Desktop application now shows a notification if the license will expire in a few days
- Filter plugin "Link verification" added. With the new filter it is possible to verify external hyperlinks. Also added new difference types for per-document validation errors
- Corrupt PDF-character mappings are now passed to the comparer as well. The OCR filter can be used to reconstruct the original character mapping
- Invisible elements detection improved, will now check stroke width as well
- "Hide pages without differences" now ignores hidden differences types as well
- Underline detection improved to not mistake background lines for underlines.
- New differences type 'ValidationError' to mark errors that only affect one document, e.g. generated by the "Link verification" plugin
- Configuration data lost if MongoDB was used for persistence with multiple i-net PDFC server instances
- Delete option for user profiles was missing
- Infinite loop occurred when using i-net PDFC in an iFrame
- Invalid differences due to ZERO WIDTH SPACE characters occurred
- Fixed white space calculation of the text filter, now equal to the text selection
Version 5.1
- Bounding box calculation for Type3 fonts improved
- Improved performance when running comparisons without filters that have to be executed ahead of the actual comparison (currently OCR and CMAP filter)
- Optimized comparison result for consecutively numbered paragraph headings
- Switched from word to line comparison for rotated text blocks
- Underline detection improved to not mistake background lines for underlines
- OCR Profile added regex filter for "..."
- Different styles for type1c fonts occurred without any changes
- Problem with duplicate fonts occurred. Some characters were written on top of each other in the comparison result
- Vertical lines that are in the background of the compared PDF files are displayed above the text in the comparison result
- Missing differences due to incorrectly detected numbering changes
- White space calculation of the text filter was wrong
- Font style recognition improved
- Zoom notification was displayed two times in the Desktop Application
- Maintenance: The following error has occurred in Internet Explorer while restoring a backup: "Object doesn't support property or method 'includes'"
- Task Planner:
NullPointerException
occurred in DefaultSetting.setColor - SDK: Invalid characters in the export names of recursive batch jobs occurred
- Fixed hyphen + soft hyphen duplication, improved handling for bogus space characters that were used instead of soft hyphens
- Word/line break issues occurred when comparing text files
- PDF generation was interrupted in case of unsupported gradient fills
- WebAPI shows an error if a document requires a password
- Empty characters were partly replaced through not-defined characters
- Colors in images were inverted
- The location of differences markers for overlines was incorrect
ArrayIndexOutOfBoundsException
: Array index out of range: 508 occurred. Only glyphs having valid indexes will be proceeded during AWT font generation- Adobe built-in font processing was incorrect
- The reading of Lookup tables for index color space was incorrect
- Word wrap problem in table cells occurred due to changes in the split position of a word or word group
- False positives could occur if a text column and a drawing were aligned side by side
NullPointerException
occurred while comparing two files- Repeating table headers will now marked as difference if the whole table was added or removed
- Method setScaleToFitPageHeight was removed from the .NET API. It can be set using property "PDFCVisibility.SCALETOPAGEHEIGHT_VISIBILITY" and pdfComparer.SetSettings(settings)
- Command line parameter -exportOnlyOnDifferences was not working
- Because of encoding problem characters was not displayed correctly in difference details popup
- Error "Start point cannot equal endpoint" occurred
- Improved table header recognition and reduced false negatives in case of very similar tables
- Fixes and improvements to compare and select rotated text lines
- Whitespace detection issue with Chinese characters
"BadPaddingException
: Given final block not properly padded" occurred due to a corrupt stream- Shape matching in strict mode improved
ArrayIndexOutOfBoundsException
in PDF parser occurred due to zero-length text replacement- Annotation issue in the Chrome PDF viewer
IndexOutOfBoundsException
: Index 0 out-of-bounds for length 0 occurred in table filterArrayIndexOutOfBoundsException
: -1 occurred- Bounding box calculation for Type3 fonts improved
ArrayIndexOutOfBoundsException
: 6 at com.sun.pdfview.colorspace.IndexedColor occurredIllegalPathStateException
: missing initial moveto in path definition - occurred due to inconsistent path definitions in PDF files
- Several minor fixes and improvements for Shape normalization, Line merging and matching
- Some special characters have been displayed incorrect
- java.lang.ArrayIndexOutOfBoundsException: 37 - occurred
- java.lang.IllegalArgumentException occurred because of wrong end parameter
- Incorrectly detected word breaks due to ligatures occurred. Tolerance for overlapping characters in the same word increased
- Solved IndexOutOfBoundsException in the header&footer filter that could occur for 4-page documents
- Overlapping and redundant text chunks
- IllegalArgumentException: Keyframe fractions must be increasing: 1.0
- Incorrectly located differences marker for overlines
- Some texts written with Type 3 fonts were not displayed
- Some comparisons terminated if a lot of huge PDF files compared in a batch job
- Clipping error that was caused by subscript or superscript text
- Some diacritical marks (akut and grave) were mistaken
- IllegalArgumentException: invalid key length: 128 for algorithm version 1 - occurred. No exception will be thrown in the case of contradictory encryption parameters
- Difference occurred because one of the compared PDF files contains the same text multiple times on top of each other
- Because of wrong spacing in CJK text chunks, it could occur that Chinese text was marked as different although it is the same text
- Clip/alignment of italic right aligned text with a large italic angle was incorrect
- Another whitespace detection issue occurred
- Word recognition in case of overlapping white spaces
- The regular expressions were not able to match rotated text lines
- IllegalArgumentException: Comparison method violates its general contract
- Some characters have not been not displayed because processing of Type1 font was incorrect
- Seldomly occurring endless loop in the comparer
- Some currency characters could not be recognized
- PdfcException: PDF parser error: First item in dictionary must be a /Name.
- Property "EXPORT_PDF_ALWAYS" ignored if command line interface was used.
- False positive font color differences occurred because of wrong font color comparison.
v3.5.268 (January 24, 2017)
- Incorrect space detection in italic text occurred.
v3.5.247 (January 03, 2017)
- 'Unrecoverable stack overflow' occurred on zero dash stroke.
v3.5.236 (December 23, 2016)
- 'Space ranges not defined' error occurred.
v3.5.234 (December 21, 2016)
IllegalArgumentException
: argument type mismatch - occurred if i-net PDFC GUI was used on Mac OSX and the help button was clicked.
v3.5.207 (November 24, 2016)
- Whitespace detection for CID fonts was incorrect.
IllegalArgumentException
: Unknown encoding: Identity-H occurred.NullPointerException
occurred during start of the GUI.- Potential endless loop in the memory cleanup thread occurred.
v3.5.194 (November 11, 2016)
- Some texts were not displayed in a PDF/A document.
v3.5.192 (November 09, 2016)
NullPointerException
occurred during start of the GUI if there was no icon available for a file.- Some difference details has not been displayed in the exported PDF comparison result, if the export properties: Portrait orientation, Only right and Scale to page height were enabled.
v3.5.177 (October 25, 2016)
- Some subscript or raised characters were incorrect positioned.
v3.5.163 (October 11, 2016)
- Some texts were not displayed in the comparison result.
- Rounding errors have been taken as location differences.
- Some characters have not been displayed in the comparison result because of changed character to unicode mapping.
- If there are empty text elements the comparer ignored any shape in between these empty text elements.
v3.5.137 (September 15, 2016)
RuntimeException
: Transformation matrix is non-invertable - occurred.
v3.5.136 (September 14, 2016)
IllegalStateException
: PDF stream contains invalid characters after endstream - occurred.ArgumentException
: Parameter is not valid - occurred if .NET API was used.
v3.5.115 (August 24, 2016)
- Bugfix for distributed rotated text.
v3.5.107 (August 16, 2016)
- Text was not visible in comparison result because the bounding boxes of the text elements have negative widths.
v3.5.81 (July 21, 2016)
- Corrupt PDF export occurred in multiple thread environments.
- Filled shapes with width or height of 0 were not filtered properly.
v3.5.52 (June 22, 2016)
- Small lines were falsely classified as invisible.
v3.5.38 (June 08, 2016)
- Comparison result could contain additional white spaces.
- Elements which are marked with "Rendering-Mode=Ignore" were not ignored during comparison.
- A bug with images with a specific combination of grid and color model occurred.
- Wrong text recognition due to corrupt unicode mapping in font occurred.
- Problem in PDF parser occurred for TJ command combined with char spacing.
RuntimeException
: "Transformation matrix is non-invertable" occurred.- Text was not displayed because of
NullPointerException
.
v3.2.336 (March 02, 2016)
PDFParseException
: "First item in dictionary must be a /Name" occurred if PDF metadata object was corrupt.- Problem with rotated text occurred.
- Display problems with some ligatures occurred.
- Exception was not thrown to calling function of i-net PDFC API.
v3.2.320 (February 15, 2016)
java.lang.IllegalStateException
:java.io.EOFException
occurred.
v3.2.310 (February 05, 2016)
IllegalArgumentException
: "Dimensions (width=2147483647 height=1) are too large" occurred.- Fonts in the exported PDF comparison result were different to the original PDF files.
v3.2.247 (December 04, 2015)
- Type 3 fonts couldn't be displayed.
- Very narrow rectangles has been recognized as line.
v3.2.233 (November 20, 2015)
NullPointerException
because of invalid ICC profile occurred.
v3.2.218 (November 05, 2015)
IllegalArgumentException
: Bad command (15) occurred.- Fix for invisible annotations/reviews.
- Fix for hexadecimal encoded font names.
- Glyph transformation in CID fonts with postscript layout were incorrect.
v3.2.204 (October 22, 2015)
- Text was misplaced, if the compared PDF files were created with dvipdf.
v3.2.201 (October 19, 2015)
- Because of threading problems incorrect image comparison results occurred, if .NET API was used.
v3.2.195 (October 13, 2015)
- The following warning occurred if command line interface was used: log4j:WARN No appenders could be found for logger.
v3.2.190 (October 08, 2015)
- Thread bug could produce invalid text differences if the GUI was used to compare PDF files.
v3.2.182 (September 30, 2015)
- Quote characters %%"%% and %%'%% were not compared correctly. Unicode values for characters in Type1 font corrected.
v3.2.170 (September 18, 2015)
ArrayIndexOutOfBoundsException
in Latin character mapper has occurred.IllegalStateException
occurred: Could not read from stream.- If the export option "Scale to page height" was enabled, then some difference marker were missing.
ArrayIndexOutOfBoundsException
occurred if the sub type of font type 0 has not been correct declared.
v3.2.160 (September 08, 2015)
- Some characters like apostrophes not displayed in the comparison result.
v3.2.156 (September 04, 2015)
- Pages in the PDF file containing the comparison result are overlapping sometimes.
- Some characters having varying code by different encodings were not drawn.
v3.2.153 (September 01, 2015)
- If the visibility property "Only pages with differences" was enabled (-m parameter in command line) and the PDF files contained pages with different page widths, then the right page was cut off on the right side of the PDF file containing the comparison result.
v3.2.139 (August 18, 2015)
ArrayIndexOutOfBoundsException
occurred if the PDF files contains invisible singular spaces with no width.
v3.2.134 (August 13, 2015)
NullPointerException
occurred because the optional content dictionary of the PDF file was empty.
v3.2.113 (July 23, 2015)
- Texts that are rendered with positive and negative font sizes were automatically evaluated as different.
RuntimeException
: Transformation matrix is non-invertable: AffineTransform ... occurred.
v3.2.107 (July 17, 2015)
- Error by decryption process occurred because of a
NullPointerException
. Padding errors occurred in encrypted PDF files. - Comparison does not show differences if one PDF file contains invalid characters. Command line parameters added.
- Comparison result export ignores the checkbox for "Only Left" and "Only Right" if the overlay mode was used in the comparison result view.
- Comparison result export does not split resulting pages within PDF file pages, if "Scale to page height" is enabled.
- Because of a
NullPointerException
some text was not displayed in the comparison result.
v3.2.64 (June 04, 2015)
- Fixed issue with nested form fields
- Fixed non-invertable transformation in PDF export
- OutOfMemoryError with occurred if .NET API was used.
v3.2.48 (May 19, 2015)
- Image were displayed in inverse colors.
v3.2.44 (May 15, 2015)
- Wrong scroll position when switching from overlay to side-by-side mode.
- Fixed scroll position list when enabling/disabling 'hide similiar pages'.
v3.2.37 (May 08, 2015)
- During search in more complex PDF files, the following exception occurs:
IllegalArgumentException
: Comparison method violates its general contract!.
v3.2.34 (May 05, 2015)
- Decimal encoding of type 3 fonts was incorrect.
InvalidMarkException
occurred due to inconsistent true type fonts embedded in pdf documents.ArrayIndexOutOfBoundsException
occurred due to kerning incorrections.- Glyph Mapping for certain CID Type 0 fonts was incorrect.
- Whitespace detection for CID fonts was incorrect.
- Modified name of folder for image export, fixed zip filenameof PNG export.
v3.1.176 (March 26, 2015)
IllegalStateException
occurred: Invalid character code byte count: 1.IllegalStateException
occurred: The checkbox is not initialized.ArrayIndexOutOfBoundsException
in PDFHintTable.- The method SetTypeVisible was missing in the .Net API of the ResultModel object.
v3.1.148 (February 26, 2015)
- Differences where displayed in upper / lower case although the words were displayed in uppercase.
v3.1.126 (February 04, 2015)
BufferUnderflowException
occurred because of inconsistent CID-Type2 font.NullPointerException
in LZWDecode occurred.
v3.1.120 (January 29, 2015)
- Fix for negative font sizes in PDF files.
v3.1.100 (January 09, 2015)
- Broken links and images in the online help.
RuntimeException
: "Transformation matrix is non-invertable" occurred.
v3.1.82 (December 22, 2014)
IllegalStateException
: procedure is already running - has occurred.
v3.1.77 (December 17, 2014)
PDFParseException
: Bad character in Hex String occurred because of Unix linebreaks in the PDF XRef table.NullPointerException
occurred if the command line parameter '-m' was used in combination with parameter '-i'.
v3.1.57 (November 27, 2014)
IllegalArgumentException
: Bad size for Maxp table occurred.FileNotFoundException
: Could not find file ''c:\windows\system32\inetsrv\DifferenceColors.properties'' occurred if i-net PDFC was running from a service in IIS.- Scrollbars were not displayed correctly if the PDF files contains pages in portrait and landscape orientation.
- The GUI has crashed on Mac OS X 10.7.
- .Net environment:
- Font issue occurred which could lead to missing PDF difference export files in multi-thread and .Net environments.
- Could not load file or assembly 'IKVM.OpenJDK.Management, Version=7.4.5196.0
- Could not load file or assembly 'IKVM.OpenJDK.XML.XPath, Version=7.4.5196.0
- Markers were incorrectly displayed on rotated pages.
- OutOfMemoryError occurred if the PDF files contains a lot of images.
PDFParseException
: "content reference not found" occurred.- ANSI-Encoding in certain TrueType fonts was wrong.
- Annotations were not displayed correctly.
v3.0.462 (September 15, 2014)
- When exporting graphical comparison to PDF, PNG or Printer (-p commandline), PDF-pairs without differences will no longer cause an export.
v3.0.445 (August 29, 2014)
- Font issue occurred under .NET. An embedded font was not embedded in the PDF file containing the comparison result.
RuntimeException
occurred: Error by decryption process
v3.0.441 (August 25, 2014)
- The following exception occurred:
PDFParseException
: Unknown command: ...
v3.0.427 (August 11, 2014)
- The following exception occurred during creation of the compariosn report: "com.inet.lib.json.h" with message "Field 'breakPoints' not found.
v3.0.417 (August 01, 2014)
- Position and orientation of an annotation was incorrect.
v3.0.414 (July 29, 2014)
RuntimeException
: Error by decryption process occurred.ArrayIndexOutOfBoundsException
: 253 occurred.NumberFormatException
: "For input string: "0/.notdef" in Type1 fonts occurred.
v3.0.393 (July 08, 2014)
IllegalArgumentException
: Unknown encoding: ZapfDingbatsEncoding occurred. Character encoding ZapfDingbatsEncoding is now supported.PDFParseException
: Data format exception:incorrect header check. PDF files that are encrypted with AES algorithm with default 128 bit keys can be compared now.
v3.0.350 (May 26, 2014)
PDFParseException
: xref part is corrupted occurred.
v3.0.337 (May 13, 2014)
ArrayIndexOutOfBoundsException
in some Type 7 Shaders occurred.- Character from CIDFontType2 (Japanese fonts) could not be recognized if parent font does not define Unicode mapping.
v3.0.263 (February 28, 2014)
ArrayIndexOutOfBoundsException
occurred.- If the .NET API of i-net PDFC was used then the following exception occurred: "A generic error occurred in GDI+".
v3.0.256 (February 21, 2014)
NullPointerException
occurred.
v3.0.254 (February 19, 2014)
ClassCastException
occurred in strict comparison mode on PDF control elements.- The following exception occurred with the .NET edition:
cli.System.Runtime.InteropServices.ExternalException
: A generic error occurred in GDI+.
v3.0.246 (February 11, 2014)
- Activated / non activated checkbox was not detected as difference.
v3.0.235 (January 31, 2014)
- Files with upper case suffix were not compared in batch compare mode.
- Specific text differences were not found.
- Chinese, Japanese and Korean characters have not been rendered correctly and an
ArrayIndexOutOfBoundException
has occurred if the PDF files containing such characters. ProfileDataException
with invalid ICC profile occurred.
v3.0.214 (January 10, 2014)
PDFParseException
: Stream ended inappropriately occurred
Version 2.0
v2.5.155 (November 12, 2013)
- Text clipping will now be only active if the filter 'Invisible Elements' is in use.
- Decryption of PDF files with user permissions access is extended to standard encryption filters with revision 4 and version 4.
IllegalArgumentException
: Parsen of encrypted pdf files is not supported occurred in this case.
v2.5.130 (October 18, 2013)
- Solid red boxes has been displayed over images in the PDF file.
UnsupportedOperationException
: ps command: add
v2.5.64 (August 13, 2013)
- Java and .Net edition of i-net PDFC installed with the same setup.
java.awt.color.CMMException
: Invalid profile data occurred.- Difference description contains wrong page number if there is a text replacement with equal bounds but on different pages.
- File name in the difference summary on the console was limited.
- Text concatenation error occurred sometimes near punctuation marks.
v2.5.7 (June 17, 2013)
- new text filter which accepts plain text and regular expressions to exclude certain text from the comparison
- major performance improvements for the internal and GUI rendering process
- report can now be generated with the command line tool as well
- GUI: cycle through differences the with left and right cursor keys
- improved scrolling, doesn't jump when zooming anymore
- the gui now logs to a file
- several fixes for embedded font, especially Type1C
v2.2.14 (April 15, 2013)
- Performance optimization in parser.
- Improvements in memory usage to prevent OutOfMemory errors.
- It is now supported to scroll with the left and rigth key through the differences.
- The GUI executable now accepts two parameters which will preset the first and second file of the GUI.
- CheckBoxes in PDF files are now compared.
UnsupportedOperationException
: ps command dupRuntimeException
: invalid reference: nullIllegalArgumentException
: Unknown encoding: SymbolSetEncodingArrayIndexOutOfBoundsException
BufferUnderflowException
PDFParseException
: Data format exception:incorrect header check
- Following exceptions fixed:
UnsupportedOperationException
: ps command dupRuntimeException
: invalid reference: nullIllegalArgumentException
: Unknown encoding: SymbolSetEncodingArrayIndexOutOfBoundsException
BufferUnderflowException
PDFParseException
: Data format exception:incorrect header check
- It was not possible to compare PDF files on the command line using runPDFC.bat
- Scrolling behavior in the GUI was wrong if the compared PDF files had different lengths.
v2.1.38 (January 18, 2013)
- Comparison report was improved
PDFParseException
: Unknown command: Qq- Differences in watermark of PDF files were not highlighted
- Various bugs in the GUI were fixed
v2.1.7 (December 18, 2012)
- EXPORT of a comparison report as PDF
- API class IDifference has a new type "TYPE_STYLE_MODIFIED" to get the distinguish between content and style modifications
NullPointerException
in PDFFontEncoding occurred- PDF parser improvements for:
- type 6 and 7 shaders are now supported
- support for embedded CIDMaps
- unicode mapping to character arrays
- improved support of CMYK colors
NullPointerException
in PDFFontEncoding occurred
v2.0.161 (November 09, 2012)
- Command line parameter -generateinfo added
BufferUnderflowException
solvedIllegalStateException
: "invalid dimension of return values" solved- French accents are now displayed correctly
- Content of the compared PDF files were not displayed in the i-net PDFC GUI for some landscape pages
v2.0.143 (October 22, 2012)
- Optimization of the Multi-Column filter for single column scenarios - produces less columns boxes
- Image comparison for images with different internal resolution is now possible
- Fix for scaled font sizes and font colors
- Fix for Type3-Fonts with embedded images
- Fix for the PDF 'carriage return' command
v2.0 (August 27, 2012)
- Streamlined licensing process, include offline mode
- Invisible elements filter
- Performance optimization in parser and result view
- Several bug fixes to conform strict and loose compare mode
- Several bug fixes to conform strict and loose compare mode
v2.0 Beta (July 31, 2012)
- Entirely new continuous comparison engine to find modifications in large documents. This engine focuses on content changes rather than on exact location of each element. It's configurable by several new configuration properties.
- Whole new comparison GUI for both comparison modes.
- New result visualizations in the GUI for both modes
- Visual configuration
- Support for PDF form elements added
- New paged mode normalizer 'HEADER_FOOTER' to exclude fixed header and footer areas
- New module property 'COMPARE_TEXT_STYLES' to compare the text styles as well
- New module property 'TEXT_ALIGN_RATIO' to better compensate alignment differences due to different PDF generators
- New values for the 'CREATE_DIFFIMAGES' property to create only images for the left or right page
- Support for Colored Tiling Patterns added
- Fix for 'div zero' error in pattern type 1
- Fix for PDFs with corrupt kerning data
- Fix for
ParserException
due to incorrect CCITT image decoding
Version 1.0
v2.5.135 (October 23, 2013)
IllegalArgumentException
: Unknown encoding: StandardEncoding occurred.
v2.5.113 (October 01, 2013)
"PDFParseException
: Unsupported shader type: 4" occurred.
v2.5.98 (September 16, 2013)
- UnsupportedClassVersionError occurred if Java API or command line version was used with Java 6.
v2.5.92 (September 10, 2013)
- 'Illegal Capacity' exception occurred randomly for pages with a large amount of lines.
v2.5.78 (August 27, 2013)
- CompareTwoFilesWithCustomHandler - Differences directory was deleted after comparison.
NullPointerException
occurred, if a required value in the font description was missing.
v1.14 (February 29, 2012)
- New Image scaling property 'IMAGE_SCALE_FACTOR' to scale all image output
- New text module property 'TOLERANCE_TEXT_LOCATION' to verify text identity
UnsupportedOperationException
: ps command: roll
v1.10 (November 21, 2011)
- API enhancements: Classes in package "diffimage" added.
- Command line parameter -x and -r added.
- Bug:
IllegalArgumentException
occurred during the file comparison. - Bug: Endless loop occurred during the file comparison.
- The height and width of the text difference mark box were not correct calculated for large font size.
v1.09 (July 29, 2011)
- Equal text passages marked as different.
- Differences in several PDF/A documents were not found.
NumberFormatException
: For input string: "xxx" occurred.
v1.08 (June 10, 2011)
- The international format for date-time is now used for error messages.
- The batch file runPDFC.bat (or shell script runPDFC.sh) can now be launched from any directory.
- The log level "OFF" produces no output.
- The log level list is reduced. The following log levels can be used: OFF, ERROR, WARN, INFO, ALL.
- Bug in ASCIIHexDecode was fixed. Some texts encoded with this encoding could not be decoded.
- Text scaling was corrected in order to calculate the proper height of text-difference marker.
- Differences on single PDF pages not found because of an error while reading the PDF comments in the file.
v1.07 (May 09, 2011)
- API revised
- Properties "USE_HD_CACHE_FOR_PAGE_IMAGES" and "USE_MEMORY_CACHE_FOR_PAGE_IMAGES" replaced with "CACHE_FOR_PAGE_IMAGES".
- API documentation added
- Java code samples added
- Documentation enhanced
- The default encryption of pdf files is taken into account for additional elements such as functions, color spaces and hint tables.
- Image comparision has been improved through corrected image cache.
- Java 5 supported.
- Differences in PDF files were not found, because some characters from CFF fonts were not shown.
- Character codes using MacRomanEncoding could not be compared.
- Not embedded CID-fonts could not be used to build the page difference images.
- Problems with PDF/A files occurred. If the key-length for default encryption is not set, it will be defined on the basis of security handler version.
v1.06 (Feb 23, 2011)
- Rectangles in difference images sometimes appeared a few pixels below the point at which they should appear.
v1.05 (Jan 26, 2011)
- It is now supported to compare PDF files created with FastReports.
- No differences were found between PDF files because of error by font reading.
ClassCastException
occurred during the comparison of PDF files.- The width array length during string processing is now limited by the string length to avoid
IndexOutOfBoundsException
s.
v1.04 (Dec 09, 2010)
- Using hard disk or memory cache is now possible.
- Improved image comparison: the pixel values of images are now compared too.
v1.01 (Mar 23, 2010)
- Improved chart detection and comparison.
- Fixed problems when identical shapes occurred more than once.
v1.0 (Feb 25, 2010)
- Initial release.
v1.15 (March 16, 2012)
BufferUnderflowException
occurred
v1.13 (February 10, 2012)
PDFParseException
: Unsupported function type: 4
v1.12 (February 02, 2012)
- Bug:
ArrayIndexOutOfBoundsException
occurred during processing of some Type1C fonts. - Bug:
ArrayIndexOutOfBoundsException
occurred by processing masked images.
v1.11 (November 28, 2011)
- Bug:
"IllegalArgumentException
: space ranges not defined" occurred during the file comparison.
v1.03 (Nov 30, 2010)
- Fixed a problem regarding the reading of compressed objects and xref streams.
- Fixed a bug with default width for CID-fonts type 0.
- Fixed a bug with ToUnicode font map ranges for CID-fonts.
v1.02 (Jul 08, 2010)
- Fixed a bug with inlined DCT-encoded images in a PDF.
- Fixed a bug regarding Unicode special characters not being read correctly.
- Fixed a problem regarding the reading of embedded True Type text.
i-net PDFC Server
- The permission
Comparison API
has been removed. It is now covered by the combination of theModify and run comparisons
andWeb API
permissions (requires the Web API Plugin to be enabled). - The plugin name
ocr.tesseract.winavx
changed toocr.tesseract.installed
- The plugin name
ocr.tesseract
changed toocr.tesseract.windows
- *Task Planner: * The action "Print" is only supported for job export formats PDF and Images
- Rendering Performance improved with a better font metrics caching
- 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
- Note added to configuration property "Restrict Permissions" in dialog "User & Groups" because when global permissions are not restricted then all users have administrative access!
- Web API:
- Result parameter for comparison info added (timestamp for create and modify)
- Option to add header information added (for example for authentication) for remote PDF request
- New parameter
exportbydiff
for the requestsresult/pdf
andresult/report
. If this parameter is set to true the result will be returned only in case of differences - Compare Command:
- can receive additional (or exclusive) JSON file to configure PDF documents, e.g. to set their passwords.
- JSON may contain Request Headers for HTTP/S request to load PDF files, e.g. to authenticate the request
- Option to add header information (for example for authentication) for remote PDF request added. (Upload pdf via URL)
- 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
- Tesseract OCR:
- Plugin
ocr.tesseract.installed
can be configured, e.g. setting the runtime path to Tesseract - Plugin
ocr.tesseract.windows
is included only in the Windows and the SDK installer. If using the plugin fails, a Windows System Tesseract Installation is required (see pluginocr.tesseract.installed
)
- Plugin
- Task Planner: The file format(PDF,XLSX,ODS,RTF) can now be selected for export type 'report' in the Task Planner module
- Web API:
NullPointerException
occurred when using not existing profile name. The post request handling without filename has been fixed and a better message for not exist profil name/id will be displayed NullPointerException
occurred during "Loading Comparisons" in the i-net PDFC server Maintenance- Fix for content-disposition header when uploading multipart content using the comparison web api
System.Net.WebException
: The remote server returned an error - occurred with PDFCNunit- It was not possible to login if a localhost URL was used in Chrome browser to open the web interface
- Parameterized streams were evaluated in the wrong order by the comparison Web API
- Temporary errors (Extenal visible URL '...' was not validated) occurred during validation of Private Cloud License
- Comparison profiles (shared or not) was no longer accessible by the API users (not administrative users)
- Exception "Object doesn't support or method 'append'" occurred in web interface during comparison in Internet Explorer 11
- Login of Members of Windows group Guest is possible
- Private Cloud License added
- New collector option "Cross compare all files per folder" added to the TaskPlanner batch comparison to cross compare each file in a folder with each reference file in another folder
- WebAPI - comparison result parameter (timestamp for create and modify) added to comparison info
- Task Planner: New collector option in the TaskPlanner batch comparison to compare each file with each reference file
- Data protection:
- New option to removed all unnamed comparisons as soon as all viewers are disconnected
- It is possible to configure the time after which inactive users will be disconnected so that the unnamed comparisons of inactive users will be removed
- New Permission added to define whether users are allowed to create/modify/run comparisons. Without this permission the user can only view published comparisons
- New publishing mode added to publish comparisons only temporarily
- Usage of the Web-API for micro services is now available out of the box
- Drastically reduced size of exported PDFs in case there are re-used images in the compared files
- The "External visible URL" being used for the EHLO command when connecting to an SMTP server
- PDF export optimized to reduce average size of the result by 10 to 50%
- Any subdomain (like *.example.com) on "Allowed Cross Origins" supported
- Web API: Parameter comments added to the PDF export function
- Task Planner: It is now supported to set "Delete previous results after X days" for a file action. With this property it is possible for example to delete old backups
- Unexpected result with webapi compare request occurred
- Multiple values in the property "Other VM Arguments" in configuration dialog "Web Server" were not supported
- Timeout occurred during long running backup job in Task Planner
- Because of a corrupt file the following exception occurred in Maintenance / Comparisons:
java.io.EOFException
: Unexpected end of JSON data
- A restart in the server interface triggers a restart of all nodes if database persistence (MongoDb, Redis) is used
- Event log contains a "node" column if it runs with database persistence (MongoDb, Redis)
- Let's Encrypt certificate requests now work with multiple server and database persistence
- Type1CFont use now a mapping because of difference: Text "–" was replaced by "+-"
- Notification for low disk space added
- Web API will start now a plain text comparison, if the URL contains unknown content instead of PDF, text or image files
- The webserver can be configured to send addtional header fields with HTTP responses to, e.g. enforce HSTS or provide custom server information to the web client
- New file associations for the batch comparison job in the Task Planner added
- The 'Visibilities' settings now enables you to mark up filtered elements and change colors
- Event Log views added to Statistics app in report server interface
- Multiple LDAP server on authentication supported as fallback
- Account id of the user added to the "stored data" view
- A master account will be created after a valid login using the master password even if the setting "Create new User" is deactivated
- New feature "stay logged in". After login, each user will remain logged in until they log out. After 28 days, they will be automatically logged out. It is also possible to delete user sessions in the "User and Groups" module, if you have the permission to access this module
- Login Sessions displayed in the User details
- Account id of the user added to the "stored data" view
- Task Planner: It is now supported to select a preconfigured datasource for a database series. The user defined JDBC settings are still possible
- New user/group permission to publish comparisons. With this permission it is possible to hide the "Publish" button in the web interface
- Generation of needless text selection data in the server improved
- Reduced I/O load in the User Manager and comparison meta data
- Improved support when OCR cannot initialize
- Domain license supports a single host also without reverse DNS lookup
- Task Planner: Format options added to the PDF export in the Comparison Job dialog
- Export button added to the web GUI. Using this button it is possible to create the comparison report in the select formats XLS, XLSX, ODS and RTF in addition to PDF
- Comparison quotas can now be set per user group and per user as well
- Support for SSL certificate in PEM format added
- The Task Planner Web API can now export and import tasks (single or multiple). The exported task definitions can be used to manually create one-off task definitions to quickly schedule and execute tasks
- Filter settings added to the WebAPI
- Language selection for OCR
- For all quota values in the configuration: The value for 'unlimited' is now -1 instead of 0. The values will automatically be adjusted by the setup if required
- Option "Only pages with differences" is now available
- A differences limit can be defined by the user to avoid slowing down the web browser with massive differences. By default this limit is set to 1000
- The PDF report of the command line and desktop version can now be generated in the web application as well
- Users can administer their own account data and login settings
- Search feature in the help improved. The help tree will be displayed and help pages with search results are highlighted in the help tree
- The output format for the report can now be configured
- Fonts not correct embedded in comparison result export when using 'only pages with differences'
- Redesigned and streamlined entry page and application frame
- There no longer is a
/remote
context. All remote modules have been moved one level up. So it's now/comparison
instead of/remote/comparison
for instance - The TaskPlanner jobs will no longer clean up the 'normal' user comparisons.
- Web API: Redirected URL was wrong
- Web interface don't show error message, if the uploaded document can not be read
- Exception: "org.bouncycastle.asn1.pkcs.PrivateKeyInfo cannot be cast to org.bouncycastle.openssl.PEMKeyPair" occurred
- WebSocket connections has been closed when using the guest account
- If the comparison result contains no differences then PDF export created a PDF file with 0 KB file size
- WebAPI: Specified PDF files has been loaded mutliple times for one comparison
- WebAPI: It was not possible to delete a comparison using web API after an error has occurred
- No cipher suite error with HTTPS connections occurred
- The web API redirect to the web application now creates preview images as well and will no longer cause an additional inactive user to be displayed
- It was possible to override comparison profil by switch to profile editing
- New Feature TaskPlanner: This feature can be used to schedule comparisons and save or send the results
- New remote/web module and plugin
- Operable per user if TaskPlanner permissions are granted
- Supports single and batch comparisons
- Results can be stored to the file system, to the persistence or sent by email
- Extendable by plugins
- Can be triggered by web API
- Because of an tolerance error during difference calculation the following error occurred: The line 'line(xxx)' has been modified: Shape fill color was changed from '(xxx, xxx, xxx)' to '(xxx, xxx, xxx)
- Image background was displayed in reverse color in PDF comparison result file
java.util.EmptyStackException occurred due to missing start of Marked Content
- "Unknown command: PS" exception occurred
- Some currency characters could not be recognized
- Wrong font color comparison results occurred
IllegalArgumentException: Raster ByteInterleavedRaster: width = 1024 height = 1024 #numDataElements 1 dataOff[0] = 0 is incompatible with ColorModel
UnsupportedOperationException: shading type 4 with function attribute is not supported
- Encoding for buildin fonts was incorrect
- Arabic characters in the exported comparison result file not readable because images for character glyphs have used inverted colors
- Invalid differences due to incorrectly merged line shapes
- IndexOutOfBoundsException in PDFDrawTextCmds occurred
- Some characters could not be displayed because of not embedded fonts
- Differences in ImageMask objects not found, e.g. in signatures
- Outlines of some characters was incorrect
- ArrayIndexOutOfBoundsException occurred due to empty text
- Characters in composite font have not been displayed due to errors in unicode mapping
IllegalArgumentException: Radius must be greater than zero - occurred because of special case of radial shading
- UnsupportedOperationException: ps command: div occurred
- The following difference could occur with one page PDF files: "the page ‘page #1’ was added"
- Additional differences with Chinese characters occurred
- Rotated PDF files are sometimes not displayed correctly
- Line swapping detection was wrong
- Web GUI application
- The i-net PDFC web application can be used to compare PDF and text files online. It's features and visualization are similar to the desktop application
- Supports all comparison features of i-net PDFC as well as the PDF export
- Comparisons can be stored and published
- The Web API component is a RESTful interface to execute and manage comparisons and configurations
- Can execute comparisons and return the result in different formats with a singe HTTP request
- Supports all comparison and management features of the WebGUI
- Can access and manage the comparison of the WebGUI
- JUnit test client - a slim client library to compare and verify documents using an i-net PDFC server in the local network
- Configuration plugin - to configure all server features, permissions and user settings remotely
- Statistics plugin - a plugin to monitor the server status and manage the executed compare jobs
- Maintenance plugin - an extension to backup & restore the server state as well as cleaning the user storages
- Full support for right-to-left writing context (e.g. Arabic)
- Document synchronization was completely overhauled. This affects the interactive GUIs as well as the PDF export. It greatly improves the alignment of differences
- Improved PDF export, reduces the filesize
- New API sample project at [[https://github.com/i-net-software/pdfc-samples]]
- New API methods to get the page numbers for differences
- Streamlined comparison pipeline - resulting in a smaller memory requirement and a more responsive comparison
- New text parser plugin to compare any type of text files, can be compared to PDF documents as well
- The configuration keys MODULES, CONTINUOUS_COMPARE_TYPES are deprecated and replaced by COMPARE_TYPES
- The configuration keys NORMALIZERS, CONTINUOUS_FILTERS are deprecated and replaced by FILTER
- The configuration key INVISIBLEELEMENTS_HIDE_ROTATION is deprecated and replaced by the filter key HIDEROTATEDTEXT
- The configuration key COMPARE_TEXT_STYLES was extended to specify the attributes to compare like SIZE or COLOR
i-net PDFC GUI
- Comparison result details displayed in a column on the left side of the documents
- Configuration dialog added to modify setting like Logging and Tesseract
- Native high DPI support, e.g. for Mac Retina displays or screen scaling on Windows
- Position of the desktop application was sometimes wrong or it was not displayed on a computer with two or more screens
- A high number of difference will no longer block the desktop application for some time once the comparison has finished
- Desktop application on macOS does not show the comparison state in the icon, if no comparison is started
- The size of the maximized window of the Desktop application was wrong with Java 11.0.8 or Java 15 or newer
- MSI installer set i-net PDFC desktop application as default application for DOCX, PDF and TXT
- Configurations are now stored and managed as comparison profiles. A base set of profiles is provided with the application
- The 'Report' tab has been merged into the 'Export & Print' tab
- Improved zoom and page controls
- Window states will be saved and restored after restart and compare
- Label of the disabled "RegEx" filter button was black on a black background
Version 3.0
v3.5.253 (January 09, 2017)
- Cleanup of temporary files improved.
v3.5.249 (January 05, 2017)
- Help page has not been opened in i-net PDFC GUI on macOS.
v3.5.236 (December 23, 2016)
- Comparison of tensor product mesh gradients improved.
v3.5.177 (October 25, 2016)
- The DifferencesImagePresenter will only create a folder for the difference images of a pair of PDF files if there were difference.
v3.5.163 (October 11, 2016)
- Command line parameter -e does not work together with -c in the same command line.
- Space detection by using the kerning data optimized.
v3.5.136 (September 14, 2016)
- The number of false differences reduced when comparing drawings.
v3.5.115 (August 24, 2016)
- Improvement for redundant elements.
- Improvement for false positives in case of text in drawings.
v3.5.86 (July 26, 2016)
- Positioning of markers in one page export optimized.
v3.5.81 (July 21, 2016)
- Performance improvements, especially for batch comparisons with a lot of PDF files.
- It is now possible to use some mixed CID Fonts which actually not according to PDF Reference.
- Word boundaries detection further improved.
v3.5.60 (June 30, 2016)
- Misspelled word in comparison result report.
- "ERROR - unsupported value type: ..." removed from log output.
v3.5.46 (June 16, 2016)
- New implementation of the cache to provide sporadic
NullPointerException
and other exceptions.
v3.5.38 (June 08, 2016)
- Open Type Fonts will be identified, even if they are declared as other font type (Type1C).
- Parameters to detect word boundaries has been optimized.
v3.2.310 (February 05, 2016)
- Processing of white spaces in regular expression filter has been improved.
- The text line recognition for rotated text blocks has been improved.
- Memory usage of exported PDF comparison result optimized for PDF files with large number of images.
- The default configuration will now be founds alongside the PDF files as well.
v3.2.278 (January 04, 2016)
- Processing of white spaces in regular expression filter has been improved.
v3.2.233 (November 20, 2015)
- CCITT decoding algorithm replaced.
v3.2.218 (November 05, 2015)
- JPX / Jpeg2000 encoded images are not supported. Therefore they are replaced with a warning image now.
- Don't abort comparison on JPX and JP2 images.
- Support for case insensitive comparison added.
v3.2.204 (October 22, 2015)
- Add complete filename to the header of the exported PDF file containing comparison result.
v3.2.170 (September 18, 2015)
- The i-net PDFC GUI re-displays the red comparison result panel by moving the mouse to the result panel position.
v3.2.139 (August 18, 2015)
- New onProgressUpdate API method added for presenters to get progress updates.
v3.2.134 (August 13, 2015)
- New onProgressUpdate method added to Presenter to get the current progress.
- Parameter /verysilent for setup and uninstall now runs the applications silently without any messages or dialogs.
v3.2.113 (July 23, 2015)
- More reporting log messages hidden.
v3.2.107 (July 17, 2015)
- New command line parameters added to use all export types, switch visible types and highlights.
- Reporting log messages hidden and redirected to the logger of i-net PDFC.
- Cache handling optimized to reduce OutOfMemoryErrors with Java 8.
v3.2.64 (June 04, 2015)
- MULTI_COLUMN filter improved. Significantly better results for regular three and two column layouts.
- Implemented soft-hyphen handling for tagged PDFs.
- Color transformation defined in Adobe Application segment will be used for converting cmyk jpeg images.
- Optimized white space detection.
v3.1.190 (April 09, 2015)
- Default visibility for layers / optional content implemented.
v3.1.176 (March 26, 2015)
- The command line tool prints the full absolute path after ''Scanning <filename>''.
v3.1.148 (February 26, 2015)
- Handling for '...' in table of contents optimized.
- A better error message will be displayed if the PDF files contains an corrupt image.
- Optimized internal handling of JPG images. Increases performance for PDF files with large JPG images.
- Special cases of text spacing occurred.
- Property EXPORT_PDF_ALWAYS added to the config.xml.
v3.1.120 (January 29, 2015)
- New GUI control to reset the GUI to it's startup state (clear documents and result).
- Support for embedded OpenType/CFF fonts.
- Support for very large CID Fonts, Type 2.
v3.1.77 (December 17, 2014)
- Extended font name mapping to compare embedded and built-in fonts.
v3.1.57 (November 27, 2014)
- When exporting graphical comparison to PDF, PNG or printer (-p commandline), PDF file pairs without differences will no longer cause an export.
- New Visibilities option: "Only pages with differences" added to the GUI. Pages which do not have differences (with current visibility filter) will be minimized and will only show their page number. It affects the output in the GUI and the printing, PNG and PDF export of the comparison result. In the command line, option -m or -minimize can be used.
- Command line parameter "-m" added. Only in conjunction with -p: causes pages in the graphical PDF-Export which have no differences to be minimized.
- Reduced memory requirements for large PDF files and PDF files with large images.
- The file commons-logging.properties removed from the PDFC.jar because it is not used.
v3.0.441 (August 25, 2014)
- Word break detection optimized
v3.0.393 (July 08, 2014)
- While you scroll through the pages, the page number will be displayed on the right side of the GUI.
v3.0.373 (June 18, 2014)
- Modified font engine to return equal font metrics on all operating systems an Java runtime types. This may affect the comparison result if a very low TEXT_ALIGN_RATIO is configured.
v3.0.295 (April 01, 2014)
- Configuration property INVISIBLEELEMENTS_HIDE_ROTATION added. With this property it is possible to filter rotated text (vertical text) as well.
v3.0.246 (February 11, 2014)
- Version 3.0.235 was delivered as a beta version.
v3.0.214 (January 10, 2014)
- New features in the i-net PDFC GUI:
- Export the comparison result in a PDF file or print it on a printer
- Display annotations in the PDF files
- Search within the PDF file(s) is possible
- Continuous Zoom of the PDF files is possible
- Meta Data added to the visibilities filter
- Tabs layout has been redesigned
- Tabs Search, Annotations, Export / Print added
- Comparison result view:
- With a rigth click on a difference marker it is possible to get detailled information about the difference, copy the text, ignore selected text, ignore selected difference
- Export/Import of the configuration, useful to use it with i-net PDFC command line / API
- It is now possible to save the comparison result in PDF file using -p command line parameter
- A color difference tolerance for text and shapes can now be defined using the configuration property TOLERANCE_COLOR
- Legacy API deprecated, will be removed in Version 4.0
- Batchrunner, IReportResult, IPageResult, IDifference is now deprecated
- Batchrunner.setLoader is not used anymore, the new threading architecture requires full control over the parser process
- Complete new API with extended capabilities
- New Filter to normalize visually equals characters added. This is useful especially for ORC or PDF-printer generated PDF documents
- Improved Space recognition for the 'Text by pattern' Filter
- PS commands gt, ge, lt and le supported
- Support for special type of Adobe-encoded Jpeg images
- Default language for the comparison report was German. Now it is English.
Security Fixes
- 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
Version 20.4
- PDF export optimized to reduce average size by 10 to 50%
- Overhauled 'invisible objects' filter to compute the actual visibility of all elements in the document
- New filter added to use the (optional) PDF structure information to improve the comparison result
- Handling for stacked sdt* elements in docx improved
- Multi-Column filter improved
- Detection of outlined tables and recognition of columns by embedded images
- Column mapping for shapes and images in multi column layout
- Column detection near very large text chunks
- Bug in ASCII stream decode. The memory consumption of SMasks was optimized
- Optimized Ascent calculation for TT-Fonts in PDF files
- Support for languages with word breaks in non latin text improved, for example Chinese
- Password protected PDF files: Support for PDF 1.7-extended and PDF 2.0 decryption algorithms added
- The differences for image detail comparison improved
- Improved block recognition and ordering in rotated text sequences
- New fall back to use the glyph code in case of missing unicode mapping
- Fixed XXE vulnerability for authenticated users with privileges to ad-hoc reporting or remote designer (CVE-2020-12684)
- Fixed multiple XSS vulnerabilities (login was not required).
- Fixed a path traversal vulnerability which allowed access to files within the installation folder and its sub-folders
Version 6.2
- Automatic header and footer detection for documents with large line spacing improved
- Strict line comparison no longer detects a line size change if the size and orientation of the line is vastly different. Instead a replace or removed/new will be displayed as this is more likely
- Hyphen detection in multi column layouts improved
- Strict comparison for curves takes into account the overall offset of the shape when checking the curve points
- Word boundary detection improved when kerning is simulated by a negative text chunk offset
- Boundary detection for inserted/removed sentences and paragraphs improved
- Word detection in case of stacked text fragments improved
- Plugin to compare PDF files in the order of the document internal structure is available on-demand. This may produce better results for complex documents from the same generator application
- Words with no stroke or fill color are now covered by the 'Ignore invisible elements' filter
- "Simplify special characters" enabled by default in "Continuous Document" profile
- Method ''Engine.Prompt(string,string)'' added to the .NET process bridge
- Critical Security Update for Help Plugin (CVE-2020-11431)
- Fixed XXE vulnerability for authenticated users with privileges to ad-hoc reporting or remote designer (CVE-2020-12684)
- Fixed multiple XSS vulnerabilities (login was not required).
- Fixed a path traversal vulnerability which allowed access to files within the installation folder and its sub-folders
Version 6.1
- Improvement of the differences accumulation - the comparer will no longer return ambiguous groups in case of repeating content
- Improved comparison of subscript and superscript text. This reduces false positives due to mixed baselines in tables
- Improved support for layers (Optional Content Groups) - covers shapes and images now as well
- New text comparison features to detect changes in stylistic spaces and line breaks
- Added a fallback for the windows tesseract plugin for the case that both tesseract engines didn't work
- Tesseract plugin: error handling and documentationn improved, OCR sample added to the .NET samples in the SDK
- White space detection in case of ambiguous kerning data improved
- Critical Security Update for Help Plugin (CVE-2020-11431)
- Fixed XXE vulnerability for authenticated users with privileges to ad-hoc reporting or remote designer (CVE-2020-12684)
- Fixed multiple XSS vulnerabilities (login was not required).
- Fixed a path traversal vulnerability which allowed access to files within the installation folder and its sub-folders
Version 5.0
- New image parser to read images and ZIP-archives of images
- Table filter can now recognize repeating headers even if there are some differences
- Improved disctinction between replacements and adds/removes in the comparison result
- Annotation issues in the Chrome PDF viewer occurred
- Decoding of HTML encoded actual content in PDF files
- Critical Security Update for Help Plugin (CVE-2020-11431)
- Fixed XXE vulnerability for authenticated users with privileges to ad-hoc reporting or remote designer (CVE-2020-12684)
- Fixed multiple XSS vulnerabilities (login was not required).
- Fixed a path traversal vulnerability which allowed access to files within the installation folder and its sub-folders
Version 4.2
- New filter "Optimize Basic Tables" to greatly improve the comparison of tables with visual borders
- Supports merged cells
- Supports repeating table headers
- Is inactive by default, has to be activated by using a custom comparison profile
- New command line switch "exportOnlyOnDifferences" to export PDFs only in case of differences
- Differences are now joined per text line, creating a much more compact and readable result
- The JAR file inetslf4j.jar was renamed into inetloggeradapter.jar. It also contains an adapter for Commons Logging
- Optimized multiple column filter: text in drawings or fragmented page layouts will not longer be mistaken for separate columns
- Page alignment when printing 'scale to fit page' with 'collapse equal pages' improved
i-net PFDC Desktop Application
- Drag&Drop document to the view area to compare them (in addition to the header buttons)
- New control to show a list of all differences with the option to confirm & hide certain differences
- Preview of the first page of selected documents
- Annotations sometimes not transparent
- Comparison result details displayed in a column on the left side of the documents
i-net PDFC SDK
- Command line parameter for landscape export added
- JsonPresenter added to .Net Process Bridge
- Improved performance and memory requirements for very large batch comparisons
- Filter settings added to the web API
- New API-method for to retrieve the presenter errors, if any
- Command Line parameter "-parameters <File>" added, to configurate the command line via a file
- Command Line parameters "-loglevel", "-logfile" and "-logmaxerror" added
- New optional plugin to export the result as JSON summary using the command line interface
- The profile properties
LOG_FILE
,LOG_LEVEL
andMAX_ERRORS_PER_FILE
will be ignored since they modify the global configuration. Use the command line switchesloglevel
,logmaxerror
andlogfile
instead - The profile properties
EXPORT_PDF_ALWAYS
and the commandline switchexportonlyondifferences
will be removed soon use instead the commandline switchexportAlways
(Default isexportAlways false
) or for SDK theSettings.EXPORT.ONLY_ON_DIFFERENCES
- The profile properties
CREATE_DIFFIMAGES
,CREATE_ORIGIMAGES
,CREATE_XORIMAGES
will be removed soon use instead the commandline switchx
,o
,f
,s
andi
or for SDK theSettings.EXPORT
- The profile properties
IMAGE_SCALE_FACTOR
will be ignored since they modify the global configuration. Use the command line switchesImageScaleFactor
instead or for SDK theSettings.IMAGE_SCALE_FACTOR
- Removed API components that were deprecated with i-net PDFC 4.0
- If command line parameter
exportOnlyOnDifferences
is active, the comparison report will be created only if no difference available - Some properties are depreaced now:
CREATE_DIFFIMAGES
,CREATE_XORIMAGES
,CREATE_ORIGIMAGES
,IMAGE_SCALE_FACTOR
,EXPORT_PDF_ALWAYS
,LOG_LEVEL
,LOG_FILE
,MAX_ERRORS_PER_FILE
- If exportOnlyOnDifferences was set to true, it will not export the comparison report (-e) in case of no differences
- WebAPI returns an error, if a PDF was specified that requires a password
- Error occurred if the compare.bat was used with more than 9 parameters
- Performance leak in batch comparisons occurred. Reason was a potential file leak due to equal fonts in different documents
Version 4.3
- New filter plugin to select the pages to be compared
- Detailed image comparison added. It can be used to show details of differences in images. The difference details will be displayed only if less than 50% of the image are different
- New command line parameter to select the format of the generated report
- Images rendered by Type3 fonts will no longer be compared unless only image comparison is active
- OTF handling improved
- Handling with pattern type1 improved
- Basic table filter improved in case of styled cell borders
- Table filter improved to recognize extended repeating table headers, including a new difference tolerance
- Filter plugin added to ignore specified areas in PDF files from comparison
- Simplified SDK structure to provide better insight of the product
- The C# implementation based on IKVM is deprecated. It was replaced with the ProcessBridge
- Missing export settings for .NET process bridge added
- Comparison report could not be created if i-net PDFC Server is used
- It was not possible to disable Difference Marker using API
- The execution of the compare.bat with more than 9 parameters throws an error
- It was not possible to disable the difference marker using PDFCVisibility.ALLOUTLINEMARKER_VISIBILITY
java.io.FileNotFoundException
occurred while creating the report as XLSX file- Font in the comparison report was wrong if command line parameters -p was used together with -e
- Image information where lost if the .NET API was used. Instead of the image a Black area was displayed
Version 4.1
- The class
com.inet.pdfc.results.ResultModel
now implements theClosable
interface. We highly recommend to call close the instance as soon as the result is processed. This will prevent the backing store to proceed swapping the document data and clear all resource immediately - The class
com.inet.pdfc.config.PdfSource
no longer exposes the methodgetContent()
. Since the PdfSource classes has to be Serializable, it cannot provide access to the actual content as the content may no longer be available after deserialization. It's generally discouraged to access the document model directly. But if required, please use the readDocument() method if the com.inet.pdfc.plugin.DocumentReader class instead. Please note that the document model itself is not public API and may be modified in future versions - The constructor
ExceptionData( Throwable )
in classcom.inet.pdfc.error.ExceptionData
was removed - Tolerance for splitted images added to prevent false image replacement differences
- White space detection improved in case of customized word spacing
- Setting a Server or Plus license with admin privileges will now activate these licenses for all user accounts on the system. This restores the version 3 behavior for such license types
- Properties of Presenters are now defined via a com.inet.pdfc.config.Settings instance instead of dedicated setters. This generalizes the configuration of all presenter types
- Removed
com.inet.pdfc.results.diffimage.FileDiffImageWriter
andcom.inet.pdfc.results.diffimage.IDiffImageWriter
since they were deprecated as of version 3 and no longer in use
- Command line switch "exportOnlyOnDifferences" added. If it is set, then the PDF comparison result file will be created only in case of differences
- The service scripts from the SDK have been renamed to represent their action, e.g. startRecovery.sh
- The 'differences' folder creation in batch mode on slow drives could result in missing result files if multiple comparison result files should be written at the same time
Version 4.0
i-net PDFC Desktop Application
- The 'Visibilities' tab now enables you to mark up filtered elements
- New application-internal help browser with an extended content
- Slider values for header/footer filter updated
- The export panel allows the save the comparison result as XLS, XLSX, ODS and RTF in addition to PDF
- Problem with filechooser on Linux
ClassCastException
occurred after repeated start/stop of the comparison- Different sized pages were centered incorrectly
- The desktop application now uses the native file chooser of the system. This file chooser provides more features and better performance compared to the custom implementation of previous versions
- The 'Visibilities' tab now provides switches to visualize the effects of each filter plugin
- Difference popup now shows intial more (10) elements
- New export formats for the report: XLS, ODS and RTF
- Difference popup was not updated after the visibility settings has been changed
- Header / Footer selection was not visible after a comparison. It was necessary to disable and enable the header/footer filter in the visibility settings
"IllegalArgumentException
: setSelectedIndex: 0 out of bounds" occurred during start of application if no paper format was available- Kerning issue occurred in comparison result and PDF export
- Text in PDF file was not displayed
- Tooltip for header/footer slider was not displayed
- It is now easy to change the color of difference markers for PDF documents in the Visibilities tab. Also the color of the blue difference markers between the PDF documents can be changed or they can be disabled
- It is now possible to disable the "Comments" in the PDF export of the comparison result
- It is now possible to enable/disable the header/footer filter in the Visibilities tab of the Desktop application
Basic table detector
Version 23.10
- The table filter has several improvements
- Differences in Rowspan and Colspan are detected
- Background colors of cells are recognized and can cause style differences
- Table layouts with alternating row styles where each even row has now border and background can be recognized as one table
- The filter for header and footer views tables as monolithic elements which cannot be cut by a header or footer
Version 21.10
- Improved filter model so that other filters (e.g. regular expression filter) can now operate on the contents of table cells as well
Compare Documents
Version 23.4
- New option for batch jobs to choose how to proceed in case of invalid documents.
Version 21.4
Fixed Bugs
- The option "Export even if there were no differences" was not used in the batch comparison job of the Task Planner
Comparison Application
Version 23.10
- Users without the permission to run and modify comparisons will no longer see who shared a comparison.
- Deviation tolerances in the profiles dialog are displayed with their percentage and can be translated into the actual profile values.
Version 23.4
- Keyboard shortcuts for common actions
- The keyboard shortcut for 'paste' is now supported and will upload the pasted files as documents for the comparison.
- The current content of the system clipboard can be used as document for the comparison as long as it's plain text or image via a button. Access to the system clipboard has to be permitted in the browser for this feature to be available.
- As an alternative to uploading, documents can be selected directly from the i-net Drive for the comparison.
Fixed Bugs
- Cumulative rounding errors led to small deviations in the scroll synchronization and text search mark-up.
- Cycling through text search results will now go through the results in scroll order in any case.
Version 22.10
- Comparison profiles can be published for certain users or groups.
- Requires the publishing user to have permissions for the users and groups administration.
- Published profiles can be unpublished or modified by the owner or any member of the administrators group.
- Full text search for the compared documents is now available.
- Comments (annotations with text) will be shown as popup. The popup will show the comment text and author as well as the review/edit steps.
- Comparison profiles will be validated and warnings will be shown in the edit dialog for any incorrect property key or value.
Version 21.10
Cannot read properties of undefined (reading 'element')
error
Comparison Desktop Application
Version 23.4
Fixed Bugs
- The activated visibility option "Only pages with differences" was not applied directly when a new comparison was made in the desktop application
Version 22.10
- Setting correct Area Filter properties
- Filechooser dialog is now modal
Comparison JSON Interface
Version 23.10
- JUnit5 support is available for the PdfcAssert class.
Comparisons using Web API
Version 24.4
- The i-net PDFC Web API now returns the status "COMPARING" instead of internal status "CLOUDCOMPARE" if the comparison was performed on a different cloud node than the one currently requested.
Version 23.4
- The result parameter
exportbydiff
was changed toexportifdiff
Version 21.4
Fixed Bugs
- Redirect response was wrong when calling webAPI-compare with a .NET HttpClient
- It was not possible to access profiles (shared or not) using WebAPI
Exclude areas from comparison
Version 23.4
- Area filter is now also applied to detail comparison in images.
Header and Footer detection
Version 23.10
- Detecting alternating headers and footers in a book print now requires at least 5 pages instead of 3.
Fixed Bugs
- Auto-detection will try to avoid cutting rectangular shapes that could be a text box or table border
Version 23.4
- The calculation of the size of the footer on the first page was inconsistent.
Version 22.10
- The calculation of the size of the footer on the first page was inconsistent.
Version 22.4
- The calculation of the size of the footer on the first page was inconsistent.
Version 21.10
- The calculation of the size of the footer on the first page was inconsistent.
Version 20.10
- The calculation of the size of the footer on the first page was inconsistent.
i-net PDFC Application
Version 24.4
- User can change "Max. number of differences to show".
Version 23.10
- The application language can be configured.
- On macOS the system menu of the Standalone i-net PDFC application contains PDFC specific menu items, e.g. for profile selection.
- Added keyboard shortcut
Cmd+,
to open settings.
Fixed Bugs
- Opening the application with multiple files to compare on Linux operating systems.
- Exits the program as soon as the main window is closed.
- Terminates the program after 5 minutes if the background process cannot be reached.
i-net PDFC Server
Version 24.4
Fixed Bugs
- The management of comparison profiles now supports a larger number of profiles per user or as public profiles.
- Cloud synchronization for profile changes updates the user interface for all changes to profiles, instead of only publishing as before.
Version 23.10
- Editable profiles can be renamed using the actions in the profile dialog.
- The synchronization of cloud nodes waits for the background serialization of the comparison result before allowing exports on other nodes. This prevents corrupted or empty results when switch nodes. It also prevents a restart of the comparison on another node up until the comparison was saved.
Version 22.10
- The per-user quota values are stored in a different format to support very large amounts of stored comparison per user.
- The cleanup of abandoned comparisons no longer keeps all of the named comparisons of a user alive. This caused memory issues in high load scenarios.
Version 22.4
- Extended publish feature to make the comparison visible for permitted users.
Version 21.10
- The i-net PDFC server stores uploaded files encrypted on the server
- Set a custom product title for external representation
- The RPC client no longer receives page images if this feature is disabled in the comparison profile
- Group "Comparison" was missing in the i-net PDFC Server configuration
- Hidden differences in graphical presentations occurred due to a merge of difference markers
- Problems with CosmosDB persistence occurred
- Following error occurred with enabled OCR comparison: A faulty tesseract configuration. Check the path to tesseract
- Critical error in PDF export occurred with multiple layer
Version 21.4
- Textselection added to the web GUI
- Simple annotations displayed in web GUI
- The DejaVu fonts will be used as default fonts if i-net PDFC is running on a headless machine without installed fonts
- Methods added to the .NET API:
getDifferences
returns the list of differencesgetDifferenceGroupsList
returns the list of diffgroups
- It is supported to print a report (an engine) to a lokal printer, see sample SimplePrint.cs in the SDK
- Hidden differences in graphical presentations occurred due to a merge of difference markers
- HTML Prompt dialog does not appear for guest account
- Arithmetic overflow occurred due to a very large hard disk quota in the server configuration
System.NullReferenceException
occurred when .Net Core was used
Image Files
Version 22.10
- Added support for comparing tif/tiff and JPEG2000 image files. To compare JPEG2000 images, the corresponding plugin must be enabled.
Maintenance for i-net PDFC
Version 24.10
Fixed Bugs
- Fixed a bug which enabled the Recovery-Tool to delete all comparisons on startup.
Version 22.4
- A search bar was added to comparisons view. It allows a more refined search with multiple parameters. This results in better search results.
Microsoft Word Document (.docx)
Version 22.10
Fixed Bugs
- All differences were all merged to the first page despite the page they were originally on.
Multiple Columns
Version 22.10
Fixed Bugs
- Fixed: Columns not detected due to a line that separated the footer from the content
Version 21.10
- Rotated text is not compared when using the multi column filter
OCR Tesseract
Version 23.10
Fixed Bugs
- An incorrect setting no longer blocks the configuration dialog
- Quotation marks may no longer be used in the configuration path.
Version 22.4
- Updated the tess4j lib to tesseract 5.1.0.
Version 21.10
- Unnecessary dependencies removed
- Update the tess4j version to 4.6.0
AI
Version 24.10
- Added Gemini, Claude, and Mistral support as AI Providers.
Version 23.10
- New Clear Reports formula function "gpt" which takes any string query as a parameter and returns the GPT response.
- Added obfuscation to storage of OpenAI API Key in configuration.
- HelpDesk spam filter capability (off by default) which can check incoming emails for whether GPT would categorize them as spam.
- Anonymization of any telephone numbers and email addresses to avoid sending personally identifiable data to OpenAI.
Calendar
Version 24.10
- For calendar triggers and series, added the placeholders
calendar.event.startDatePretty
andcalendar.event.endDatePretty
which use the server timezone to create a more readable form of the dates.
Version 24.4
Fixed Bugs
- Setting up a calendar Task Planner trigger on repeating events that began in the past did not correctly compute the next execution time.
- Calendar triggers with trigger times set to trigger after calendar events would not trigger for repeating events.
Version 23.4
- Triggers can be set to start after events as opposed to only before them.
- The calendar trigger automatically refreshes its events from the given calendar every 30 seconds.
- Next task execution times filter out past potential execution times.
Version 22.10
- There is a new calendar trigger that allows running Task Planner task with a time offset when an event occurs in the given ics or iCal file.
Collaboration
Version 22.10
Fixed Bugs
- Improved the Server Status Command in regards to its CPU load calculation when the server is running on Windows.
Version 22.4
- Added a new command
serverstatus
which displays server information such as version, CPU load, memory usage, and more.
Configuration
Version 21.4
Fixed Bugs
- Unnecessary restart message occurred in the web server dialog of the configuration manager if the HTTP port was changed to not default and the HTTPS port is default
CoWork Calls
Version 24.10
- The connections for voice and video calls have been switched from a peer network to centralized control by the CoWork server. This allows multiple participants in a call with lower bandwidth utilization of the clients.
- Attention: The ports and the public NAT address can be configured in the configuration so that calls can be made via the server. Please adjust the settings in the firewalls if necessary.
- The resolution and frame rate of the webcam and shared screens can be changed in the settings.
- Update Bouncy Castle encryption library to FIPS-certified edition. FIPS certification ensures cryptographic modules meet rigorous security standards, enhancing security and trust.
Version 24.4
- The area of an active call can be opened in a new window if this function is supported by the browser. This window can be freely positioned and resized.
- During a call, the own participant and those with a video (camera or screen sharing) have a context menu (to be called up with the right mouse button) to control actions. This applies, for example, to switching the camera or microphone on and off. For participants with a video stream, this can be pulled out as an overlay in supported browsers. This overlay can be freely positioned and resized.
Version 23.10
- In the user settings, it can be enabled that the own status displays a phone icon on the user's avatar when the user is involved in a call in any channel.
Version 23.4
- In the configuration you can set whether the audio and video connections are allowed to go through the public client connections or only through configured TURN servers.
Fixed Bugs
- The CoWork Calls WebAPI ignored the preview mode option that prevents accidental execution of destructive operations.
Version 22.10
- Improved the automatic reconnection of calls
- Added option to set TURN servers which are responsible for negotiating audio and video call connections
- The overlay of a call from another channel can now be moved to another corner of the window
- Audio output improved when switching channels: no more interruptions
- Sounds are played when another participant joins or leaves a call or raises the hand (configurable)
- Optionally, the entering or leaving of a participant in a call can be announced by voice ( configurable)
- Audio and video calls are automatically reconnected when the connection to the server is restored, or the page is reloaded by mistake
- In the channel list, the participants of a call are now listed below the channel
- The caller view and the call overlay have been further optimized
- The available reactions within a call can now be defined in the configuration. If all emojis are removed, this feature will also be disabled
- Layout improvements for calls in the Safari browser
- Speech recognition when switching with a call to another channel
Version 22.4
- Added support for voice and video calls
- Allow screen share of multiple screens without participating in a voice call
- Added support for muting and leaving calls using the WebAPI
CoWork Meeting Rooms
Version 24.10
- Meeting room administrators can remove individual members from meeting rooms. The action for this can be found in the options menu behind the user in the member list.
Version 23.4
- The details like name, description and icon of meeting rooms can be changed by authorized users.
- Users with the "Create Meeting Rooms" permission can add additional members to a room via the member list.
Version 22.10
- With CoWork meeting rooms, temporary channels can be set up and external users can be invited. Many use cases such as external support, product demonstrations and the creation of temporary workgroups are possible.
DeepL
Version 24.10
- The language of the DeepL Task Planner job can now be set via dynamic placeholder. The value should be one of the language keys, e.g. EN or DE.
Version 23.10
- Added obfuscation to storage of DeepL API Key in configuration.
Diagnostics
Version 23.10
- The new Web Server Errors panel displays a graph of request errors logged by the server. All web server responses with a status code of 400 or higher are logged and displayed aggregated per day.
- In the logging panel, the list of selectable threads has been reverse sorted. The log file can thus be filtered to the last up to 100 threads.
Fixed Bugs
- Condition for free disk space returned the wrong boolean value.
Version 23.4
- Condition for free disk space returned the wrong boolean value.
Version 22.10
- Added support for a memory dump when running with an OpenJ9 Java VM.
- Condition for free disk space returned the wrong boolean value.
Version 21.10
- Condition for free disk space returned the wrong boolean value.
Discord
Version 22.4
Fixed Bugs
- Fixed possible error message "accountID must not be null" in Discord configuration.
Version 21.10
- Discord plugin in category "Task Planner" will be replaced by general Discord plugin. You can find it in Plugin Store category "Communication". If the old plugin was activated, the new one will be installed automatically by the setup
Drive
Version 24.10
- Added feature to mount external services like Google Drive, Dropbox or FTP into the servers Drive
- Added feature to create links to folders. The links can have different permissions.
- Structural adjustment of the internal data structure for performance optimisation
- Added event log for drive operations
Fixed Bugs
- Activating/deactivating plugins with file extension for Drive now updates the data for the search.
Version 24.4
- Sub-elements of paths were not updated when the parent element was renamed to reflect the new path.
Embedded Websites
Version 23.4
- Added separate backup and restore option for Embedded Websites.
External CoWork Message Sending
Version 23.4
- File results of a Task Planner task are optionally sent as an attachment with the CoWork message.
Fixed Bugs
- Added a helpful link instead of an error message in the task planner dialog in case an external server hadn't been set yet.
Field Settings
Version 24.4
- Dropped option "Own Value" + "Multiple Values" for custom fields of type "Selectable Values", only one of both is allowed.
Version 22.10
- Added new Data Type "Date with Time" and "Time"
- Added option "Ignore timezone" for "Date" and "Date with Time" in order to work with local dates
- Label and description of predefined and user-defined fields can be translated into multiple languages via the Field Settings dialog
- Added task in maintenance which will backup all user field settings with translations and custom fields.
FTP Transfer
Version 24.10
- Filename encoding for connections with SFTP Servers can be changed using VM argument "sftp.encoding", e.g. "-Dsftp.encoding=BIG5". Note: it is not supported in case of SFTP Server implementing SFTP version between 3 (inclusive) and 5 (inclusive).
Version 22.10
Fixed Bugs
- When using a relative target directory with multiple file results, the target directory was not reset. This resulted in the same directory structure being created for each additional file result within the previous one.
Version 22.4
- When using a relative target directory with multiple file results, the target directory was not reset. This resulted in the same directory structure being created for each additional file result within the previous one.
Help
Version 24.4
- In the diagnostic application, in the System Dumps section, there is a new option to export the SBOM in JSON format.
Version 23.4
- Support for generating a Software-Bill-of-Materials JSON file using the server's
./well-known/sbom
URL with an administrative user account.
Fixed Bugs
- Release Notes were not displayed in the HelpCenter.
Version 22.10
- Links that require another plugin to be enabled open the Plugins Store where the required plugin can be activated or loaded.
Version 21.10
- PDF export was not possible from a help page accessed through an untrusted HTTP URL in the browser.
HTML Engine
Version 24.4
- Initial Release of the JWebEngine as a plugin.
HTTP
Version 24.10
- Added options to send an additional body content instead of just the JSON field.
Version 23.10
- Added placeholders to the HTTP trigger, that are filled by sending multiple optional "parameter" queries. that means, that you can extend the HTTP trigger URL with
?parameter=abc¶meter=def...
to fill the placeholders.
Version 23.4
- Added text area field for POST and PUT methods to allow directly sending JSON data with the request
Version 22.10
Fixed Bugs
- Fixed access to trigger when set to be available for everyone
Version 22.4
- Added option to add header entries to HTTP action
i-net CoWork
Version 24.10
- In the channel list, members have an options menu that can be used to start a direct message or enter a mention in the input field. This is also possible via the context menu of a message.
Fixed Bugs
- The admin user could not send a bot message if the user had no channel privileges. This was intended to be possible.
Version 24.4
- If i-net CoWork runs within an i-net HelpDesk installation, a new ticket with the content of the message can be created with a menu entry at a message.
- In the Google Chrome browser, the system's idle detection can be activated in the settings. The "Your device use" permission must then be granted in order to use the detection.
Version 23.10
- Users can react to messages with emojis. The last five emojis are quickly accessible via the context menu.
- The action "CoWork Online Status" of the Task Planner allows to change the status of the user by e.g. time triggers or CoWork commands.
- Text files attached to messages get a preview with the first 10 lines. This can be expanded further to show up to 50KB of the file.
- When pasting text into a new message, it will be added as an attachment if it is more than 4000 characters or 40 lines long.
- Using the context menu, individual attachments of a message can be removed.
- Horizontal lines and Markdown tables can be used in message texts.
- The WebAPI returns reactions on messages and allows to toggle reactions for a logged in user.
- The WebAPI returns an "Access Forbidden 403" status instead of "Access Denied 401" when a logged-in user does not have access to a team or channel.
- The WebAPI allows to search for messages using the same syntax as the CoWork application.
Version 23.4
- Scrolling of the messages improved
- The user's online status is displayed at the messages and at the suggestions for mentions. Displaying the status on the individual messages can be deactivated in the settings.
- In the menu of a message the user and the time of the message are shown.
- It is possible to reply to messages. The user of the quoted message is automatically mentioned and gets a notification about the reply.
- Messages, channels and users for direct messages can be found via the global search bar
- Management of members of teams and channels has been changed:
- Formerly public channels (with no members specified) now have the "All Users" group as a member by default.
- Teams and channels without members are no longer accessible to all users, now they can be accessed by no one
- Channels can now be explicitly set to inherit members from the team. Alternatively, a custom selection can be made.
- Groups no longer need to have CoWork permission explicitly set to be set for memberships. All groups are selectable.
- Channels support uploading of custom icons
- Videos will be played inline in the channel.
- The color markers used to highlight new messages in channels can be set as follows: mentions only, all messages or completely disabled.
- Using the "Copy Text" action in the context menu, the selected text or the entire text of a message can be copied.
- In the "Emoji" dialog of the configuration interface, custom emoji can be added via SVG.
- An extra page with details of logged-in users and created messages has been added for the diagnostic application. Other CoWork plugins can add additional information.
- Automatic playback of gif animations and videos can be customized in the settings.
- Links to web pages in messages additionally generate a preview with title, description and image if the web page contains appropriate Open Graph or Twitter metatags.
Version 22.10
- Added support for the creation of temporary meeting rooms.
- Added support for emoji
- Integrated idle detection with a configurable delay. Will switch from online to away when absent
- A marker is now displayed to indicate new messages
- CoWork reconnects to the server without reloading the whole page
- The Task Planner trigger "CoWork Command" is able to split the parameters into single values to be referenced via placeholder in jobs and actions
- Drafts are saved per channel and also synchronize across multiple devices
- Links in messages can be copied via a click in the context menu
- Smaller thumbnails are generated for images. Attachments are cached in the client for up to 30 days.
- Improved focus handling for touch devices
Version 22.4
- Added link to the bottom of the message list to jump to the latest message with one click
- Changed markdown editor to better support major browsers
- Added Task Planner trigger to add CoWork commands that will execute a Task Planner task
- Added Task Planner action to send a message in a specific channel
- Redesign of members list in channel
- Images can now be opened with a click as larger preview
- Added badge to the task bar entry when there are unread messages
ImageIO Extension
Version 22.4
Security Fixes
- Library update to fix CVE-2021-23792.
Mail Support
Version 24.10
- Update Bouncy Castle encryption library to FIPS-certified edition. FIPS certification ensures cryptographic modules meet rigorous security standards, enhancing security and trust.
Version 24.4
- PGP support added including the ability to use private keys with passphrases. Incoming encrypted emails can be decrypted using the private key, and outgoing emails to addresses whose public keys we have are encrypted. Public keys included in incoming emails are automatically imported.
Version 23.10
- Added an advanced configuration property to determine which server name is being used for the
EHLO
mail command. When using a private network server alongside a public mail server, it may be necessary to provide a publicly determinable server name in order to avoid higher spam score values or potential rejection of emails by the mail server.
Version 23.4
- Support for S/MIME signature and encryption of email messages
Maintenance
Version 24.10
Fixed Bugs
- Fixed a potential error that could occur when deleting a user in the background while the user's data was being changed at the same time.
- Fixed a potential error that could occur when attempting to reactivate or deactivate a user which had already been deleted.
Version 23.10
- Backups can be selected from the server, e.g. when they can not be uploaded in the web interface due to their size (>2GB).
Version 22.10
- When changing data of multiple users at once, custom user fields which accept multiple values can now be set to multiple values instead of only one as before.
- The User Accounts section of the Maintenance application allows to deactivate multiple users at the same time.
- Fixed a rare error that could occur when changing data of users on custom user fields whose keys were purely numbers.
Version 22.4
- The User Accounts section of Maintenance allows to set user data for multiple users at the same time. This can be helpful for when entire departments or groups of users have changed addresses or other information.
Version 21.10
- Problems with backup of large files from a database persistence (MongoDB, AzureCosmosDB) occurred
Microsoft Teams
Version 24.10
- MS Teams Webhooks can now be changed in the configuration without needing to modify Task Planner tasks which referred to them.
Version 23.4
Fixed Bugs
- Simple line breaks were incorrectly displayed in the browser version of MS Teams.
Version 22.10
- Improved the configuration page to link to the store if the token authentication plugin needs to be installed.
- The task planner template "Microsoft Teams" would incorrectly insert the server's URL if it did not end on a slash.
Notifications
Version 22.10
- The default language for notifications created in the Configuration application is English. When opening and saving existing notifications, an automatic update of the default language is made in this dialog.
- Notifications sent to the operating system require interaction from now on if the notification is critical. This feature is available only if it is supported by the browser and the operating system.
Version 22.4
- Added support for Web-Push notifications. A hint is displayed when the browser requests permission to show the notifications.
Version 21.10
Fixed Bugs
- Permanent notifications must be kept in the notification center, even though they are displayed by the operating system
OAuth / OpenID Authentication
Version 24.10
- Azure AD / Entra ID supports group names for authentication groups.
Version 24.4
- Added Sing in with Apple as authentication provider. Note: you have to be enrolled in the Apple Developer Program to set up the authentication connection.
Version 23.10
- For Google and Microsoft Azure login the settings from the plugin
oauth.connection
can be used.
Version 23.4
- Also imports the avatar for new users when they log in to Azure.
- Also adds a system login for Azure and ADFS users so that users can be merged with a possible LDAP import.
Fixed Bugs
- When logging in a new OAuth user, the metadata, such as email, last name, first name, and avatar were not applied. The user was displayed only with the ID, instead of a display name.
Version 22.10
- When logging in a new OAuth user, the metadata, such as email, last name, first name, and avatar were not applied. The user was displayed only with the ID, instead of a display name.
Version 22.4
- Added optional tenant for Microsoft Azure authentication.
OAuth Connections
Version 22.4
- Added support for OAuth 2.0 authentication for emails for Office 365 (modern authentication) and Gmail.
PDF Parser
Version 24.10
- Made the plugin more versatile to be available for the reporting, PDF comparison and drive applications
- Added PDF preview rendering for the Drive application
PDF Viewer
Version 24.4
- Initial Release of the PDF Viewer. The viewer can be used as a rendering format, much alike the HTML Viewer.
- The viewer is called using
init=pdfviewer
when requesting a report. It will only be useful in an online browser when rendering reports. - The viewer takes care of loading the requested report, as well as handling prompt request.
- It should be noted, that the viewer will display reports only when they have finished rendering. The state of loading the PDF is provided from the viewer.
- PDFs displayed in the viewer can be saved and printed, if natively supported by your modern browser.
- Using a prompt on refresh option you can modify the prompt input when reloading a report using the menu.
- Report files with group information will render an outline on the left side. You can select an outline entry to jump to the page and section - which is highlighted. Clicking the entry again removes the highlight from the document.
- A separate text search is not provided by the viewer, since the browser has a much more powerful search. However, you can select and copy highlighted text from the document.
Fixed Bugs
- Printing should work again from the PDF viewer, which previously was broken due to a CSP header issue.
Security Fixes
- Security Update for CVE-2024-4367
- If pdf.js is used to load a malicious PDF, and PDF.js is configured with isEvalSupported set to true (which is the default value), unrestricted attacker-controlled JavaScript will be executed in the context of the hosting domain.
Remote GUI
Version 24.10
Fixed Bugs
- In the HTML editor, some images copied from external sources were not recognized as attachments and generated a very large text.
Version 24.4
- If the product login is activated and users log in with the user name and password stored there, they can have a reset link sent to them in case they have forgotten their password. To do this, the user must have entered an e-mail address and e-mail dispatch must be configured on the server.
- Some HTML editor actions in dialogs could not be used in Firefox browser.
Version 23.10
- Fixed data buffer length for ajax and websocket requests
- Corrected timeout handling for websocket connections with broken VPN connections
Security Fixes
- Security Update for CVE-2023-45818
- TinyMCE is an open source rich text editor. A mutation cross-site scripting (mXSS) vulnerability was discovered in TinyMCE’s core undo and redo functionality. When a carefully-crafted HTML snippet passes the XSS sanitisation layer, it is manipulated as a string by internal trimming functions before being stored in the undo stack. If the HTML snippet is restored from the undo stack, the combination of the string manipulation and reparative parsing by either the browser's native DOMParser API (TinyMCE 6) or the SaxParser API (TinyMCE 5) mutates the HTML maliciously, allowing an XSS payload to be executed. This vulnerability has been patched in TinyMCE 5.10.8 and TinyMCE 6.7.1 by ensuring HTML is trimmed using node-level manipulation instead of string manipulation. Users are advised to upgrade. There are no known workarounds for this vulnerability.
- Security Update for CVE-2023-48219
- TinyMCE is an open source rich text editor. A mutation cross-site scripting (mXSS) vulnerability was discovered in TinyMCE’s core undo/redo functionality and other APIs and plugins. Text nodes within specific parents are not escaped upon serialization according to the HTML standard. If such text nodes contain a special character reserved as an internal marker, they can be combined with other HTML patterns to form malicious snippets. These snippets pass the initial sanitisation layer when the content is parsed into the editor body, but can trigger XSS when the special internal marker is removed from the content and re-parsed. his vulnerability has been patched in TinyMCE versions 6.7.3 and 5.10.9. Users are advised to upgrade. There are no known workarounds for this vulnerability.
Version 23.4
- Added magnifying glass icon in the search bar to increase the visibility of the search function.
- In the company info dialog of the configuration, it is possible to set to whom the installation hint for the application as a PWA is displayed. Guests and other special user accounts never get the hint displayed.
Version 22.10
- The search bar has been updated to use CodeMirror for better overall keyboard support
- Upgraded library momentjs to version 2.29.4 due to CVE-2022-24785 and CVE-2022-31129
- Upgraded library tinymce to version 5.10.2 to include latest bugfixes
Version 22.4
- Optimization of the connection recovery from the browser to the server
Version 21.10
- Moved file service check to temp folder instead of working directory
Reporting
Version 24.10
- Weblog data sources also allow the parsing of *.csv files as a replacement for the obsolete CSV driver.
- Users can directly open report files rendered using the
html.zip
export format stored in the Drive. - 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.
- A new value
fullmerge
has been added to theCellDistribution
parameter for the XLSX, ODS, and XLS export formats. This value allows all cells of an object to be merged into a single cell. - Support for Boxed Bar Chart
- In left-aligned text, any whitespaces at the end of the line are also output.
Additional report URL locations
is checked with complete folders and not just with a simple startsWith.- 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.
- Embedded images (HTML Basic and Markdown) are also output in the editable DOCX export format.
- Subreports that do not start at their top position and if a
Keep Together
flag applies, may not use all the available space on the next page, but are cut off too early. - ToWords formula function added for the Indonesian language.
- The behavior of “To SQL” in the database wizard has been improved so that quoted alias names are also recognized and references of columns with alias names are better matched.
Fixed Bugs
- 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).
- Prevents a rare NullPointerException in cache management which led to an
Internal Server Error (500)
. - SVG output format for report which show a prompt dialog.
- In HTML (advanced) text there were problems with
display:inline-block
which could lead to unexpected breaks when rendering. - Black/white images such as QR codes were missing when printing under macOS from JavaViewer or Designer.
- 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 profileBASIC WL
orEN 16931
was used.- XML data sources duplicated content if the XML file contained a
&
encoded as&
. - 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.
- NULL values of the Show Value formula will be ignored now and not be rendered as 'NULL' string.
- Fixed various issues related to standard and custom number formatting in export format XLSX.
- Fixed
java.lang.IllegalArgumentException: Comparison method violates its general contract!
that occurred when searching in the viewer - A stack overflow error was produced in the HTML Viewer when setting an incompatible default zoom and opening a subreport.
- Regression: when using the Oracle Thin driver, no database columns were found anymore in stored procedures.
Version 22.10
- The rendering output format Microsoft Word (*.docx) is now supported
- Improved image quality in PDF output format if it is not saved in JPEG or PNG format in the report template.
- The rendering output format JSON is now supported
- Rendering text as HTML-Advanced output does not embed images anymore, but downloads and references them. The HMTL-Viewer supports these images even for URLs referenced in the inlined css, e.g. for background images.
- Comments on MySQL table columns are no longer used as column alias.
- Improved performance of date/time parsing functions date/time and datetime in formula
- Continuous Stacked Bar Chart is now supported
- ShowValue can now display a value from a formula on simple chart types.
- Images in HTML-advanced fields are stored as separate files instead of inlined data when exporting to HTML
- Transparent objects that are not visible are now ignored and no longer displayed visibly during PDF/A export.
- Regression: when using the Oracle Thin driver, no database columns were found anymore in stored procedures.
- MariaDB has been added to the supported data sources. It is necessary to add the driver MariaDB Connector/J.
- Section with enabled "Print at Bottom of Page" was not printed at the end of the page if HTML output format was used and the page before this section was empty.
- Sorting of fields did not work in HTML viewer
- Under certain circumstances, narrow blank table rows occurred in XLSX and ODS export when the report contained horizontal lines near other fields and they were not correctly rasterized.
- Fixed
java.lang.IllegalArgumentException: Comparison method violates its general contract!
that occurred when searching in the viewer - A stack overflow error was produced in the HTML Viewer when setting an incompatible default zoom and opening a subreport.
- 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.
Wrong value for tag ConformanceLevel
error occurred when the FacturX profileBASIC WL
orEN 16931
was used.- 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.
Version 22.4
- Font replacement improved for 'HTML advanced' formatted text. The replacement works on character-level now, just like in other text types
TotalPageCount
is evaluatable in a trigger function- Improvement of continuous charts
- added support for markers
- consider line style "None" to only show markers
- added support for combining of continuous charts with XY charts
- Fixed a
NullPointerException
printed to the console when logging is disabled
Version 21.10
- Word break was improved for a more natural text flow
- The alignment value of a field will now be applied in case of text interpretation 'HTML-advanced' as well
- New output format added: Email. It is a simple HTML format. A single file format that can be used as email body. It can be triggered with the URL parameter: init=email
- Formula function AddAttachment(String,Binary) added. It can be used to add embbedded files to PDF output format
- Support for WebP images and other image formats added. The plugin "ImageIO Extension" is required. It can be installed using the plugin store
- PDF export: Character replacing for embbeded fonts containing character which are in code blocks which are not in the code block list of the font
- Reuse of images when exporting an embedded PDF to PDF, reduces the overall file size
- Images in HTML content will no longer be down scaled for printing. This will result in a better resolution for images in exports (e.g. PDF) but may cause a larger file size
- Formula expression result added as placeholder in result actions. It can be used to return a single value from the report to the task planner which can then be used using the [report.formula] placeholder
- NoClassDefFoundError: Could not initialize class com.inet.cache.internal.MemoryObserver - occurred with OpenWebStart
- Set a custom product title for external representation
- Add WebAPI
/api/reporting/report/render
endpoint to render reports using Token Authentication - Continuous Numeric Category Axis can now also be set to logarithmic
- Use the correct database row for inlined fields in crosstab labels such as the total labels
- Support for exporting CSV files larger 2 GB added (format csv and data)
- Add support for stored procedures for PostgreSQL
- Comments on MySQL table columns are no longer used as column alias.
- Support for the decimal separator of a user-defined number format in XLSX format
- Transparent objects that are not visible are now ignored and no longer displayed visibly during PDF/A export.
- Regression: when using the Oracle Thin driver, no database columns were found anymore in stored procedures.
- Fixed the loss of datasources after a
BackingStoreException
inPreferences.sync()
- Fixed the gray background that occurred when printing from HTML viewer
- Fixed a
NullPointerException
printed to the console when logging is disabled - Fixed
java.lang.IllegalArgumentException: Comparison method violates its general contract!
that occurred when searching in the viewer - 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.
- 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.
Version 21.4
- PDF export: The rendering time is used as creation time of the PDF file. In earlier versions it was the creation time of the rpt template
- The XLSX / ODS export creates fewer very small columns. This can cause problems if the report elements are not very well aligned and also very tightly designed
- Embedded fonts preserved the original font family name now. This can result in a different printing output (print job size) via Java report viewer client if the same font is installed on the client system
- Jpeg2000 encoded images supported
- Font replacement improved for PDF reports if enabled
- Perfomance of
DatabaseMetaData.getTables()
improved - HTML export:
- New implementation of HTML-Advanced in HTML-Export added. The result will now be fixed by i-net Clear Reports, leaving less room for render differences in the client browser
- XLSX / ODS export:
- Cell-Distribution of output formats XLSX and ODS completely rewritten
- For compounds reports with URL parameter "reports" the table sheets in ODS/XLSX use the title of the underlying rpt file. In older versions the title of the first rpt file was used
- Web API: Upload and verification of a single or multiple file resources into the repository enabled
- Apache Cassandra database supported as datasource. The CQL (Cassandra Query Language) can be used to fetch data
- MongoDB database supported as datasource
- Perfomance of DatabaseMetaData.getTables() improved
- Weblog datasource added
- It is possible to upload and verify a single or multiple file resources into the repository using Web API
- A report (engine) can be printed to a local printer using .NET API
- Private key authentication to Task Planner FTP tasks added
- Some PDF files embedded in the report are incorrect displayed in the PDF export. Depending of the structure of the embedded PDF file some images can be replaces with other images of the same PDF document
- ClassCastException in Maintenance with MongoDB persistence occurred
- Rendering issues occurred in the "Options | i-net Clear Reports". The "i-net Clear Reports" icon was missing and the dialog "Manage configurations" was not displayed correctly
- Prompt request dialog did not work in the report repository when using a guest account
Security Fixes
- Enables the master password to be deleted. The master login button is now hidden via a new flag.
- PDF files exported using encryption could be opened with Safari without a password if only the user password was set.
Version 24.4
- The Crystal Reports 8.5 flag "Convert DateTime to Date" is no longer supported.
- The Zxing barcode JavaBean supports the code GS1-Data-Matrix.
- MariaDB Connector/J driver added.
- Removed Support for
ReportServletJP
- The non-functioning export of JAR files, which also contained the Report Viewer, has been removed from the server.
- Added dynamic update of available report renderer formats that can be selected as default rendering formats in the configuration.
- New Java annotation '@DoNotOptimize' for user defined functions. This annotations prevents functions with constant parameters from beeing optimized and thus from beeing always called once. '@DoNotOptimize' should be used whenever a function manipulates data instead of just returning a value.
- Every report in the drive was executable for all users, even without the permission
Execute All Reports
.
Version 23.10
- 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.
- 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.
Version 23.4
- Added Markdown text interpretation in the CommonMark and i-net CoWork flavors.
- PostgreSQL version updated because of CVE-2020-13692
Version 20.10
- 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
- Print preview was empty if the "HTML Viewer Module Toolbar" plugin was enabled
- Values of defaultzoom parameter changed to PAGE_FIT, PAGE_WIDTH and PAGE_HEIGHT
- The HTML report viewer group tree supports several new actions: the tree can be closed using a toggle button, it can be resized by dragging the divider. Entries in the group tree can be expanded and collapsed (default) using a triangle button in front of every entry. The width and visibility of the group tree is being saved in the browser for later sessions
- Remote Printing plugin added as an print option to print the current report on the server
- Reports that required a prompt does not open properly in the Internet Explorer 11 after the prompt request dialog was closed
- The HTML Report Viewer will now export reports with more than 100 pages to PDF instead of printing them using the browser function
- If a report page can not be found in the HTML Viewer after refreshing the report (out of range error), the last page of the report will be opened. The viewer will be blocked until the report finishes rendering
- CSV export from the HTML Viewer with custom delimiters set to 'Other' or 'Fixed column width' did not work
- Prompt parameter value was decoded. This was problematic for PropertyChecker implementations
- "Uncaught URIError: URI malformed" or "URIError: malformed URI sequence" occurred if group tree node contains special character like '%' and drill down was used on this node
- Image size increases because original image data was not used
- Export format "HTML.ZIP" was not available if not all export formats allowed for this report
- Additionaly to the percent value the following values are now possible: "Fit Screen", "Page Height" or "Page Width"
- Prompt parameters were double-encoded.
- Export format "HTML.ZIP" was not available if not all export formats allowed for this report
- Additionaly to the percent value the following values are now possible: "Fit Screen", "Page Height" or "Page Width"
- Prompt parameters were double-encoded
- HTML report viewer does not use embed fonts to get font metrics
- "Uncaught URIError: URI malformed" or "URIError: malformed URI sequence" occurred if group tree node contains special character like '%' and drill down was used on this node
- Fix for Microsoft IE/Edge browser: Disable endless mode while rendering the report; Show Mouse-Not-Allowed for disabled menu entries.
- The jump position for search results and the group tree has been calculated wrongly when the report viewer page was scaled/zoomed in.
- The HTML report viewer can be customized via plugins. See the HTML viewer programming guide for details.
- Lines beginning on page 2 and going through multiple sections where missing in HTML viewer if the report contains an "N of M" element.
Version 15.1
- ZxingBarCodes JavaBean now supports "Format" property to create for example Barcode EAN-128 (GS1-128).
- DateDiff formula function now supports TIME value.
- Editable RTF export: Background color for text elements supported. Lines and boxes are not supported in this format.
- For compatibility level <= 8, the default of summary fields is now zero instead of null. This was the original default in these versions.
- Saves the zoom level so that it can be set again after a reload.
- In the HTML prompt dialog, manually entering a 2-digit year (e.g. 14) interpreted the year as 0014.
- Subreport position was incorrect if the page contains a watermark and therefore "Underlay following section" was enabled for the page header.
- HTML prompt dialog was not displayed in Microsoft Edge browser on Windows 10.
- Lines crossing multiple sections where missing on page 2 and the following pages if the report contains an "Page N of M" element.
- CSV export if requested - was DATA though CSV has been set.
- Multiple page formats in the HTML report viewer and other export formats supported when using multiple reports.
- XLSX export added to export dialog.
- Introduce permanent link to the export menu of the HTML VIewer. It allows copying the current export configuration. The button can be displayed via report URL parameter.
- The HTML report viewer supports Form Authentication within the viewer itself instead of before the viewer is being displayed.
- IPv6 supported.
- Timezone support added to HTML report viewer. This is only supported by the Chrome browser currently.
- Subreport position in section with enabled "Underlay Following Section" was incorrect.
- Depending on the used browser, one of the following errors has occurred: "TypeError: k.elementStyle is not a function" or "Object doesn't support property or method 'elementStyle'".
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
orReportCache
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 messageUnknown 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 caseWHERE 1=0
was added after theORDER 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.
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
- Error "cannot access class sun.print.SunAlternateMedia" occurred in the Remote Designer used with Java 9
- Support for the Windows setting "Large Fonts" in the i-net Designer added if it is used with Java 9
- Now the user formula can be named the same as Property Formulas
- Remote i-net Designer requires the adhoc plugin
- The Remote Designer now supports the JNLP protocol for a direct start of the JNLP file. The HTTP URL stays available as fallback link
- Exception com.inet.cache.internal.CacheLoadException occurred on Unix if there are 2 instances running
- Incorrect error markers occurred in problem finder. This error only occurred for formulas that were using a 'user defined function' when loading a report from the repository
- Fixed the error "cannot access class sun.print.SunAlternateMedia" in the Remote Designer with Java 9
- NullPointerException occurred if a condition in if then operator was not true
- In case of a long list of system fonts the i-net Designer needed a long time to start
- NullPointerException with custom Look & Feel occurred
- Hairline box without background was not printed in the Java output (report preview)
- Problem Finder does not warn if all Page Header sections together are longer than a page but "Underlay Following Section" is activated for one of the Page Header sections
- NoSuchMethodError: com.inet.viewer.ViewerUtils.c() occurred if the remote Designer was started from i-net Clear Reports running in a servlet engine like Tomcat. In this case it was not possible to open a report or to create a new report
Version 16.4
- Formula Editor: NullPointerException occurred if no values were set for parameter fields used in the formula
- NoSuchMethodError: com.inet.viewer.ViewerUtils.c() occurred if the remote Designer was started from i-net Clear Reports running in a servlet engine like Tomcat. In this case it was not possible to open a report or to create a new report
- Report Error [217] Unknown image format occurred while adding encoded HTML document.
- It was not possible to add a MySQL stored procedure to the report in the i-net Designer.
- NullPointerException occurred while opening old rpt file with enable "Customize Groupname" and "Use Formula Value" but no specified formula.
- Because of bug in multicast DNS (mDNS) not all available report repository URLs were displayed in the drop down list in repository options if client or server has multiple network adapters.
- Memory leak with property formulas occurred.
- Copy & Paste of a formula element between two reports now also paste the formula if it does not exists in the target report.
Version 16.0
- Support for placeholders in the SQL statement of the dynamic default values of parameter fields added.
- RTF export: Background color for text elements in editable rtf supported.
- PDF export: It is now possible to replace characters of not embedded fonts, used in report, with embedded fonts.
- The static logging binder for Slf4j was extracted in a separate JAR file inetslf4j.jar.
- The deprecated command "seac" for accented character is implemented in embedded CID fonts.
- The report cache will be cleared after the (report) permissions have been changed.
- Java Beans show the result of before reading property forumlas.
- It is supported to set a row buffer greater than 999.
- Parameter field with Dynamic (SQL) default values can use Cascading Parent also.
- Stored Procedure is not executed before the parameter request dialog appear. This improves the performance of adding large stored procedures to the report.
- Problem Finder rule that checks for an empty detail section modified. Multi-section-elements are now considered.
- Structure of the i-net Clear Reports properties adapted to the structure of the remote configuration manager.
- Parameter fields where requested in a loop in the Database Wizard, if the count of parameters in an SQL command was increased to 2 or more.
- Row Buffer does not allow values greater than 999.
- Refresh of stored procedures in the Database Wizard has not worked if the stored procedures does not accept Null parameters.
- Problem Finder: Added rule to warn on multi-section elements which cannot be rendered because it starts in an "underlay following" section.
- Alpha-numeric sorting is now available for interactive sorting and groups.
- New rule added to the problem finder - giving a warning for identical overlapping elements (which can happen due to Copy & Paste).
- Properties "Disable filtering" and "Disable sorting" removed from report property dialog. They will be displayed only if the properties are already set in the current report.
- Parameter Properties: Double-click to add a default value for a range prompt - this opens the add range dialog.
- Summary Field Properties: An enabled Evaluate "On Change Of" for a group field was modified to "For Each Record" if Reset "On Change Of" was enabled for any other field with the exception of groups after the report was reopened.
- Although login type "Database Login" was set, the Database Wizard has not used this set connection.
- If Nimbus Look & Feel was used and the i-net Designer was running with Java 8, then selected tree nodes disappeared on selection, and a popup was not displayed with the text color.
- A disabled "Running Total" was not saved if "Evaluate - For Each Record" was enabled and "Reset - On change of" a field was enabled.
- It was possible to delete crosstab sub elements without deleting the crosstab.
- Database wizard:
- It did not use the connection from a set LoginDatabase.
- When prompts were used in SQL commands, they were not requested.
- SQL Editor: OK button was not enabled because of invalid SQL statement.
- GUI-lock occurred in the Report Wizard of the Remote Designer.
- Summary dialog: Removing the running total flag from a summary field was not saved if there was a reset field.
- Step-by-Step Tutorials were not displayed in Free Designer if it was used with Java 8.
- The key of the translated text defined with formula function "TranslateFixed" was not listed in the Language Editor.
Version 14.1
- Alpha-numeric sorting is now available for interactive sorting as well.
- Login type "Database Authentication" added - use a database's authentication as an authentication method.
- New warnings in case of null-check by =null and in case of confusion of = and := in Crystal-Syntax added.
- Corporate Design guide added to the documentation.
- Grouped Summary fields are now an error in the record selection formula since their value is undefined while filtering. Use them in the group selection instead.
- Performance and stability improvements for reports with massive formula dependencies.
- When PostgreSQL database is used and the quotesToLowerCase (Quote Database Identifier) property is set in datasource configuration, database identifiers are always quoted.
- 'Default Author' button added to category Summary in the Document Properties dialog.
- Sort option to sort string fields by their alpha numeric value added to the Sort Records dialog.
- Chart Properties: Property "Bar Spacing" added to the category "Plot Specific" of a bar chart.
- Group Properties: Alpha-Numeric sorting of STRING fields can now be used for groups as well.
- API method EmbeddedUtils.getSelectedEngine() added. It returns the current selected engine of the report. It may differ from getCurrentEngine, if a subreport is selected.
- License exception with Report Data datasource occurred.
- "Report file not found" exception occurred in Database Wizard when Report Data datasource was used.
- Remote Designer: Deadlock with local saved reports could occur.
- Authentication exception occurred, if the current user does not have the right to access a report from repository. A login box will now be displayed.
- Empty binary prompts caused the report browser to hang.
- The formatting functions CURRENTFIELDVALUE and DEFAULTATTRIBUTE were not displayed in the tree on the right side of the Formula Editor. They will be displayed if the current formula is a property formula.
- Visual Database Wizard never used the set connection from LoginDatabase.
- If the i-net Designer was running on Mac OSX and the Formula Editor was opened with the "New" button in the fields browser then it was sometimes not possible to edit formulas in the Formula Editor.
- SQLException: "Method not supported from this layout driver" occurred if LayoutDatasource was used to create ad hoc reporting template in i-net Designer.
- If Nimbus look&feel was used and the i-net Designer was running with Java 8 then selected tree nodes disappeared on selection.
- The key of the translated text defined with formula function "TranslateFixed" was not listed in the Language Editor.
- Added support for fonts which were part of a font family with special styles like Condensed or Light.
- Problem finder rules added: 'A blank detail section could produce blank pages' and 'Invalid Prompt Default Value Formula'.
- Formula debugger added to the Formula Editor in i-net Designer. You can set breakpoints and step through a formula step by step to pinpoint errors or logic in complex formulas.
- Crosstab properties: Inserting and reorder of rows, columns and summarized values now possible via Drag&Drop.
- If you opened a report in the i-net Designer that has 'Snap to Grid' enabled as default setting, then the fields in the report were rearranged.
- It was not possible to set the value of the "Can Grow" property to 0 after it was set to another value.
- Prompt default value formulas has not considered the range values.
- It was not possible to create a datasource configuration in the i-net Designer Free Edition if it was running on Mac OS X.
- It was not possible to prohibit ODS as export format in the restrictions of the report properties.
- Prompt default value formulas did not consider range values.
- Formula Editor: Deprecated user defined formulas (@deprecated) are marked as deprecated.
- All shortcuts for insert actions in i-net Designer are now ALT+SHIFT+ instead of CTRL+ALT+ to prevent Alt-Gr collisions.
- Java Bean property formulas were evaluated in the design view.
- If you open a report in the i-net Designer that has 'Snap to Grid' enabled as default setting, then the fields in the report have been rearranged.
- It was not possible to create a new datasource in the i-net Designer data sources manager on Mac OSX.
- It was not possible to set the value of the "Can Grow" property to 0 after it was set to another value.
- Group Dialog: In the "Order by Summary" dialog it could occur that the drop down list "Summary Field" was empty after another summary was selected in this list.
- Popup to choose background and text color was not displayed if i-net Designer was used with Java 8.
- A disabled "Running Total" was not saved if "Evaluate - For Each Record" was enabled and "Reset - On change of" a field was enabled.
- ConcurrentModificationException occurred when trying to select multiple fields in i-net Designer that was running with Java 8.
- Java 7 required.
- Interactive Sorting added, see insert menu.
- Embedding HTML, PDF and SVG files in the report supported, see insert menu.
- Search field added to field browser.
- It is now possible to undo the insertion of a field in the crosstab description section.
- SummaryFields which are created via Formulas are no longer checked by the ProblemFinder.
- The "The page header and/or page footer is larger than the page." warning was changed to an error.
- Formula editor:
- Additional to formula function names it is now possible to search and filter for field names.
- FormulaExpander classes with no visible functions or constants will no longer be displayed.
- Deprecated functions in the formula expander class are displayed as deprecated in the formula editor.
- Translation: It was not possible to translate the manual field names of summary fields in the Chart Properties category "Data".
- ArrayIndexOutOfBoundsException occurred if a group was used as subreport link.
- If you do an undo or redo step in the designer then all JavaBeans that are not visible lost it's settings and use the default values for it's properties.
- Parameter Field Properties "Prompting Text" was not saved.
- Formula editor:
- Report Error "The variable "..." is not the variable defined by the loop header Line:... Column:..." occurred in a user defined basic function.
- Return value/variable for basic report functions with upper case names was wrong.
- In addition to user defined functions(Java), user defined constants are supported now as well in the formula editor.
- Using the translator, it is now possible to translate the default value description of added parameter fields.
- Default properties in i-net Designer will now be applied to the fields in a new crosstab.
- Formula Editor: Feature "Search Text in Formulas" added. It can be used using the popup menu entry or shortcut CTRL+T.
- Shortcut "CTRL+E" added to a formula field for "Change Formula".
- It is supported to change the number of recently opened files list in Designer Options dialog.
- Subreport Link dialog: IllegalArgumentException occurred, after the property formula dialog was canceled.
- Formula Editor: F3 on shared variables in a main report or sub report formula has not found a reference in corresponding main or subreport report.
- Parameter Field Properties: value of property "Cascading Parent" was not saved correctly.
- If you do an undo or redo step in the designer then all JavaBeans that are not visible on the monitor lost it's settings. The Java Bean properties fall back to the default values.
- Translation: It was not possible to translate the manual field names of summary fields in the Chart Properties category "Data".
- ArrayIndexOutOfBoundsException occurred in JavaBean properties dialog if Java VM version 6 was used.
- The property "Description Field" in the "Dynamic(Field)" of the "Default Values" of the Parameter Field Properties dialog does not contain the fields of the same table as the property "Value Field".
- NullPointerException occurred during modification of field properties in an "ad hoc dataview".
- The image width in editor page was wrong. It has been corrected for best-fit scaling.
- Java Bean property formulas were evaluated in the design view.
- "Order by Summary" dialog: The "Summary Field" list box was empty after changing its value.
- "Sort Alphabetically" menu entry for database fields in Formula Editor has not worked correctly.
- It was not possible to set the value of the "Can Grow" property to 0 after it was set to another value.
- A disabled "Running Total" was not saved if "Evaluate - For Each Record" was enabled and "Reset - On change of" a field was enabled.
- SQL Editor:
- It is now possible to use formula with evaluation time "BeforeReadingRecords" in the SQL editor of the Database Wizard.
- Now it is possible to use Strings prompts without quoting on any place of the SQL.
- Crosstab properties has been improved.
- If the page limit is exceeded then a warning page is added to the end of the report.
- The page layout dialog no longer adapts the paper-orientation to the height/width of the paper for userdefined format.
- Designer file chooser now only connects to repository server if the user clicks on the corresponding node.
- SQL Editor:
- String parameter fields was not quoted in SQL query.
- Property "Quote string parameters" was not enabled by default in remote designer.
- Several bugs in Java Bean properties occurred.
- The wrong (default) entry in a combo box of the Java Bean properties dialog was selected.
- The JavaBean editor of the designer has used the same editor for the same class and has ignored different editors for different properties of the same type.
- Saving a report containing a Java Bean has lost all settings of this Java Bean if the class (jar file) of this Java Bean was not in the classpath.
- The following exception has sometimes occurred while opening a Crystal Reports rpt file: "[Report Reader] Could not convert report <temp-dir>\designer<...>.rpt - problem with ReportReader. Restarting ReportReader. Reason: ERROR can not find a report file."
- Designer now supports drag and drop of files into the editor in unix operating systems.
- Chart Properties:
- Markers for charts with axes now supports formulas. The formula can dynamically determine the position (start and end) of the marker.
- SQL Editor: Now it is possible to use Strings prompts without quoting on any place of the SQL statement, e.g. as table name.
- Datasource configuration will be reloaded without opening the report again, if the datasource did not exist at designer start.
- File Chooser:
- Deadlock in Designer file chooser could occur, if a network drive could not be connected.
- Drag and drop of file into the filename text field not select the recognized folder and enters the filename.
- SQL Editor: Property "Quote string parameters" was not enabled by default in remote designer.
- Align elements to bottom was misleadingly an alignment to the right.
- Only the first column was added to the report, if HSQLDB was used and the SQL statement contains 2 two columns with the same name or alias from different tables.
- Sometimes a NullPointerException occurs when opening a report in i-net Designer.
- Only the first column was added to the report, if MySQL was used and the used stored procedure contains two columns with the same name from different tables.
- Java Bean Properties:
- Wrong (default) entry in combobox of the Java Bean properties dialog was selected.
- The JavaBean editor of the designer has used the same editor for the same class and has ignored different editors for different properties of the same type.
- A deadlock has occurred during start of i-net Designer on Mac OSX, if Java VM version 7 was used.
- The value of property "Cascading Parent" in the parameter field properties dialog was not saved correctly.
- If you do an undo or redo step in the designer then all JavaBeans that are not visible on the monitor lost it's settings. The Java Bean properties fall back to the default values.
- Java Bean property formulas were evaluated in the design view.
- Attribut "Permissions" was missing in the manifest file of JNLPDesigner. This is required since Java 7 update 45.
- Properties "Default Syntax for new Formulas" and "Default Null Behavior for new Formulas" added to the category "Extra" of the Designer Options. With these properties it is possible to set the default null behavior and the default syntax of the Formula Editor.
- Prompt descriptions now are no longer automatically interpreted as HTML, so that characters such as pointed brackets are now displayed correctly. Now, if you want to use HTML formatting for your prompt description, prefix your description with "<html>".
- Property "Suppress empty reports" added to the properties of a subreport.
- Various improvements and bug fixes made for the designer's prompt editor dialog.
- The Designer now supports repository URL's with redirects.
- The fields browser tree of the subreport was displayed instead of the fields browser of the main report when opening the dialog "Subreport Links" from the context menu of the subreport prompt fields.
- In the designer, re-running a report in the preview tab caused the error bar to display "Loading error" for a split second each time.
- The tooltip for warnings from the problem finder now appears below the warning.
- A special field of type number don't respect the "decimals" properties defined in the default values for number field elements anymore.
- The tutorial "How to create a datasource" has not worked on Macs OSX.
- In a German locale, the designer's prompt dialog interpreted string limit lengths incorrectly.
- Sometime the selected file could not be opened in the designer filechooser due to a deactivated open button.
- The context menu for links in the Database Wizard was not visible, if i-net Designer runs on Mac OS X.
- Opening a subreport doesn't behave like a change to the report anymore. An undo step will be created but save is not enabled if no other changes took place.
- In the designer, if a database connection was encountering a timeout and the preview process was canceled by pressing escape, the process loader could cause the designer to hang for 20-30 seconds before displaying an error.
- In the designer, if a report contained an incorrect database password, the password dialog was not displayed to correct the password when trying to preview the report.
- If a new report is saved and then changes are undone and the report is re-saved, the designer would incorrectly warn the user that the report had an old format.
- Page Layout dialog has been reworked.
- Preview is now available showing all margins, gaps and columns with sample data.
- A lot of bugs has been fixed.
- The dialog has a new and improved look&feel.
- Improved error handling.
- New labels from Avery and Herma added.
- Formula Editor dialog has been reworked.
- Now it possible to create/edit multiple formula within the Formula Editor without closing and opening it again.
- The dialog has a new and improved look&feel.
- New formula function 'SectionPosition' added. It returns the relative position of the current section on the page.
- It is possible to create User Defined Functions for the report within Formula Editor.
- Problem Finder added to show and fix warnings in the report design. If enabled then it will be displayed on the left side under the field browser.
- New formula function signature for 'ToWords' added. It allows to set the translation locale.
- Gradients in charts supported.
- When starting the Free Designer Edition of i-net Clear Reports, a new configuration is created for the current user if one does not exist yet.
- Parameter Field Properties:
- It is now possible to enter formulas for default values in the i-net Designer or via API (see class FormulaDefaultValue). This means for example that you can enter a formula "currentdate" as a default value for a date prompt. This will cause the current date to always be a default value for this prompt.
- Feature "Format Painter" added.
- Error dialogs in i-net Designer now showing error messages from the report engine including error numbers.
- "Report Data Cache" added. It stores the report data to reduce the count of database requests in i-net Designer. It can be activated/deactivated in the configuration manager category "Performance".
- When previewing the same report in the designer more than once, the report was rendered twice for each additional preview.
- NullPointerException occurred when opening a report in the i-net Designer on Unix systems where no /media folder is present.
- Welcome Page: It was not possible to open a report from the list of recent reports containing the character "#" in it's path.
- SQL Editor: New line after the keyword "Select" was detected as error.
- NullPointerException occurred if the i-net Designer was used as remote Designer (JNLP) and i-net Crystal-Clear was running on JBoss.
- Memory leak in the Chart Properties dialog occurred.
- A possible deadlock situation on opening reports was removed.
- Viewing the preview of a report in the designer could lock up the designer for a while as long as the database server did not respond.
- Wrong error message has been displayed if a "report as folder" was saved in a directory for that the user does not have the necessary permissions.
- Better error message when a "Crystal Reports" report is opened in the Online Designer.
- Entering numbers as parameter default values in the parameter field properties dialog had locale issues for locales which do not use "." as the decimal separator.
- Problem Finder:
- has not kept the state of the warnings/errors when switching between main and subreport.
- will no longer show incorrect warnings for on demand subreports.
- shows a warning about an error in a property formula also, if the related element has been removed in the meantime.
- IllegalArgumentException occurred when dragging a chart to the size of zero in i-net Designer.
- Because of an error a rpt file was overwritten if the i-net Designer with called with "–new parameter" pointing to an existing report.
- Java Bean preview in design view was wrong if a property formula was used for the scaling property of the Java Bean.
- In rare cases an IllegalArgumentException has occurred when dragging an element in the design view to a position where it forced to snap into the next section.
- Save button was not deactivated after the report was saved, if the edit modus of a text field was active.
- The custom summary name in the chart properties dialog was overwritten by next usage of the chart properties dialog.
- An exception was thrown while clicking on an error java bean (corrupted bean) in the design view of the i-net Designer.
- Minor internationalization and localization bugs has occurred in the report viewer.
- When editing prompts, if a cascading parent was chosen for a prompt which had a different table source, the OK button of the dialog could turn grey and not be re-activated.
- Only changing the case of a parameter field's name caused the error "parameter field name already exists".
- In the category "Visual Database Wizard" of the Report Wizard it is now possible to add a new command with drag&drop.
- Database Wizard: "Edit Connection" button added.
- The "Prompt Behavior" setting (configurable in the Configuration Manager) "TAKE_VALUE_FROM_DEFAULT_VALUES" did not have an effect on the designer. It now does: if this setting is in the current configuration, the designer will check for default values in prompts and not show a prompt dialog the first time a report is rendered if each prompt has a default value.
- Renaming formulas and fields to unorthodox names such as "@" or " " could cause incorrect error messages or invalid reports.
- It was not possible to change the default font style Bold of field elements in a crosstab to another style, e.g. Standard. After reopening the rpt file, the style was again set to Bold.
- In the dialog "Parameter Field Properties" it was possible to open the calendar even when the calendar button was disabled.
- Duplicated settings for minus and currency symbol position were removed.
- The progress bar of i-net Designer was not localized to other languages than English.
- Opening the sub-report linking properties using the context menu now switches to the right property dialog tab.
- Bug which didn't undo changes on the crosstab data tab on pressing the cancel button on the property dialog.
- The driver and database class names in the "Datasource Manager" category of the Options dialog were not displayed if there was no matching stylesheet for the current configuration.
- Date, time, and datetime property categories have not been displayed for row and column headers in crosstabs.
- When previewing the same report in the designer more than once, the report was rendered twice for each additional preview.
- NullPointerException occurred if the embedded i-net Designer with an open report was closed.
- Possible thread problems occurred while initializing the field browser.
- Closing and reopening the designer within the same Java VM could lead to a NullPointerException.
- The "image key" property formula was not correctly saved and loaded in reports, which meant it had to be re-entered each time a report was loaded.
- An endless loop of GUI events occurred when opening the chart properties dialog of a chart which use property formulas.
- The custom summary name in the chart was overwriten by next using of the chart properties dialog.
- Thai characters were displayed incorrectly.
- The formula dialog does not open.
- In the parameter field properties dialog it was not possible to change the type of a parameter field from time to string.
- Only the first column was added to the report, if HSQLDB was used and the SQL statement contains 2 two columns with the same name or alias from different tables.
- "Sort Options" dialog does not appear after click on button "Sort Options" in "Sorting" dialog of "Chart Properties". Instead a NullPointerException occurred.
- Attribut "Permissions" was missing in the manifest file of JNLPDesigner. This is required since Java 7 update 45.
- Formula Editor: It is now possible to define your own formula functions. These functions can be written in Crystal or Basic syntax and can be used in any formula like build in functions.
- Number Property "One Currency Symbol per Page" supported.
- Database Wizard: A replacement dialog will be displayed in the Database Wizard. It supports you by replacing and moving of tables and stored procedures, editing of commands and by adapting of the reports to the changed database structure after a refresh of the database connection.
- Java Beans
- Customizer component supported.
- 2D Barcode JavaBean added.
- When loading a report which uses a Java Bean that is not available in the current designer, a warning is now shown.
- If the designed height of a section is greater than the page height, then the section background will be red and a warning will be shown in the section.
- The formula editor in the i-net Designer now checks constant parts of the formula instantly. This will show for instance division by zero errors already at design time.
- Database Wizard: It is now possible to modify the values of the stored procedure parameters using popup menu item "Change Parameters...".
- The file open dialog now allows to enter absolute or relative paths. Until now the user had to select the folder and type the filename.
- The file name in the file open dialog of the i-net Designer will now be validated during typing.
- SQL expression Field display an error if more than one column is returned.
- The SQL editor for queries has been slightly improved, minor quirks have been removed.
- A NullPointerException has occurred, when the number category in the Property Editor was opened for multiple selected field elements with different settings in currency type.
- Commands referencing a prompt with a default value could create an invalid SQL statement while refreshing the columns of the command.
- When editing a report located remotely on a repository, the font box in the chart dialog did not display the fonts available on the server where the report was located but rather those available on the client.
- Database Wizard: "Refresh Connection" has not refreshed the database objects.
- New Report Wizard. It is now possible to create reports with charts and/or cross tabs using report wizard.
- New implementation of the Database Wizard (in previous versions: Visual Database Wizard).
- Menu item "Database Connection" removed. Use the Database Wizard instead.
- Menu structure of the i-net Designer GUI has been simplified.
- Field Browser:
- The field browser displays a different icon for a formula if it contains a warning.
- It is now possible to sort the database fields in the field browser alphabetically.
- Formula Editor:
- Auto completion for formula functions and names of other formulas added.
- Warning message added, in case a formula is used in a WhileReading context(e.g. as group) but uses WhilePrinting functions(e.g. PageNumber). Ignoring this warning may lead to unexpected results since the function will return null.
- Function color(r,g,b,a) (with 4 parameters) was added to the function tree.
- Performance improvements during start of i-net Designer.
- Welcome page:
- Refreshes its content as soon as new content was downloaded from the web server.
- Contains a new feedback button.
- Repository:
- With the repository it is now possible to use the i-net Designer without installation on a client.
- The i-net Designer accepts a connection to a repository only, if the major version of i-net Crystal-Clear is equals or greater than the major version of the i-net Designer.
- Reports from a repository now can be designed with the font list as it is on the server, rather than on the client system.
- It is now possible to configure the document property 'Suppress report if no rows' and the property "Title" in the sub-report properties.
- Double-clicking on a section name in the i-net Designer now opens the section property dialog and pre-selecting the section you clicked on.
- Parameter field properties:
- Various usability improvements in the parameter field properties dialog: you can quickly create a new prompt with Ctrl+N, it will automatically focus on the name of the prompt. This enables quick creation of as many parameter fields as you need.
- The default value type of a new parameter field is now String rather than Number. This change was made because our statistics show that String prompts occur almost 50% more often than Number prompts.
- In the box properties it is now possible to set the background color of a box dynamically using a formula.
- The –open parameter now accepts reports that has been saved as "Reports as Folder".
- The property dialogs will now also contains the categories date, time, datetime, and number for range type field elements, like a date range parameter field.
- It is now possible to sort the fields in the database wizard alphabetically.
- New Options dialog. It now includes the i-net Crystal-Clear configuration, data source configuration and repository configuration. Also, it is now possible to search properties.
- It is possible to add multiple repository servers in the new options dialog.
- The new Report Wizard now supports a history with the settings of the last 5 created reports in the current session.
- If a property formula could not be parsed, the property dialog was not displayed.
- A selected report element was removed from the report, if the delete key was pressed to delete a field in the field browser, e.g. a parameter field.
- Opening a report with an unknown data source, then changing the data source did not offer to apply the change to all sub-reports.
- It is now possible to create Ad Hoc Data Views using i-net Designer. These Ad Hoc Data Views can be used in the Ad Hoc Reporting web application (see Remote Interface).
- Relative paths for "Dynamic Image Location" of picture properties has not worked correctly for sub-reports.
- Color Chooser has not saved the custom color, when it was created for a section.
- Save button in the tool bar was not always activated, though changes were made to the report.
- Translator:
- At execution time, the translations were not used for parameter fields and strings in formulas.
- The design view frame title will now be generated using the translated report if available.
- The language editor has not displayed the whole text.
- The property "Possible undo steps" was removed from the Designer Options dialog, category "Editing".
- The property "Manual Formatting" in the "Property Editor", category "Text", was always disabled.
- Design view:
- Bottom resizing on elements spanning multiple sections snaps to correct grid, even with a section that have a custom height.
- A double click on a sub-report opens the sub-report in a new tab instead of the properties dialog.
- Label width has been displayed incorrect, if layout "Multi-column" or "Labels" was used.
- Performance issues occurred, if database connection data was invalid.
- Button for property "Manual Formatting" was always disabled.
- Because of a wrong encoding, hyperlinks could lost some characters like a colon in the report preview, if i-net Designer was running on Windows.
- The scroll position in the design view has changed, if undo was used.
- NullPointerExeption occurred, if border properties dialog was opened for multiple text elements with different border types.
- Report as Folder:
- If a report containing images was saved as folder, then it was not possible to reopen it, after the folder was added to the subversion control system.
- If a report was saved as folder, the complete folder structure was overridden and not just the folder's content. Therefore the source control's .svn subfolders were removed completely.
- Reports saved as "Report as Folder" were not displayed in the welcome page.
- Within i-net Designer, reports which took a while to render were able to deadlock the viewer if their progress was canceled and restarted multiple times in a row.
- Cut and paste with images was not possible. The cutted image was not inserted correctly.
- A rare NullPointerException occurred during startup of i-net Designer, if the user running the i-net Designer had no privileges to write to the temp directory.
- Switching between multiple report editors, the font combo box would display fonts from the older editors rather than from the current editor, or go blank entirely.
- Report Wizard:
- It was not possible to use stored procedures in the new Report Wizard of version 10.
Fixed Bugs
- NullPointerException occurred in case of nested user function calls in formulas
- XLS export: "Suppress if Duplicated" does not suppress duplicate fields in some cases
- Unhandled Exception "java.lang.InternalError" with message "couldn't create component peer" occurred with Java 8u152
- Fix the error "Report Error [1401] Illegal argument for DATE sproc ..." with SP parameter of type DATE
- RTF export:
- Font names in font table should be written using an East-Asian character set encoding instead of unicode
- Content on some text boxes not displayed completely if the text box contains a lot of text
- Crosstab property "Suppress Row Labes" in "Group Options" does not work for more than one field in crosstab rows, if it is enabled for more than one field in crosstab rows
- Fix problems when NofM and PageCount are used alone in a subreport and not in the main report and hard disk cache is enabled. This can lead to missing pages of the main report and the subreport will miss the output of NofM
- Only the end of a "Can Grow" field was displayed at the 2nd appearance of the field if the field has been continued on a second page
- Patching the SQL command to query the metadata (column names) was wrong if the command contains function "listagg(...) within group ...". In this case "WHERE 1=0" was added to the listagg function
- Italic text with right-aligned or justified was truncated on the right border of a text element.
- XLSX export: If the property "New sheet per top-level group" was enabled then it could occur that an image was not displayed on a new sheet if it was not already displayed on the first sheet.
- CSV and DATA export: UTF-8 BOM added.
- Unknown operation error occurred if the report contains "Page N of M" or TotalPageCount not on the first page but on other pages and hard disk cache is used.
- Java script injection was possible in the error handler.
- "IllegalArgumentException: Invalid character found in the request target." occurred. To solve it username for StyleSheet URLs normalized.
- PDF export: NullPointerException occurred during export in PDF/A format.
- ORA-28040: No matching authentication protocol - occurred with Oracle 12c
- It was not possible to open an .rpt file with a double click in the i-net Designer. The i-net Designer installer now register the .rpt extension correctly.
- It was not possible to add ZxingBarCode JavaBean to a report because of missing files in "lib/beans" directory of i-net Designer installation.
- Formula Editor: NullPointerException occurred if no values were set for parameter fields used in the formula.
- It was not allowed to resize the render window in repository browser if Internet Explorer was used.
Version 16.2
- Add class DocumentOutputStream to create rendered documents with fewer memory usage or write asynchrone.
- Stored Procedure is not executed before the parameter request dialog appear. This improves the performance of adding large stored procedures to the report.
- Add also pieces of WHERE from the Record Selection Formula if in addition to the joined tables there is an SQL Command.
- NegativeArraySizeException occurred while parsing an BMP image. BMP images with top down line order now supported.
- PDF export:
- The choosen embedded font for supplementary code points was incorrect. Symbolic fonts like SansSerif were not replaced correctly.
- Replacement of logical Fonts has not worked correctly if PDFA export was used.
- Texts with supplementary characters can be now be exported in PDF format.
- The following exception occurred if a certificate with IBM JavaVM was used: java.security.NoSuchAlgorithmException: SunX509 KeyManagerFactory not available.
- XLSX export:
- Skip zero characters in XLSX output because this produce corrupt XLSX files.
- The border of text elements was drawn with double line thickness.
- The error "Data not found : page=1.html" has occurred sometimes.
- A not blank section could be detected as blank section if:
- the section properties "Suppress Blank Section" and "Keep Together" are enabled
- the section contains only a subreport which Top position is not at the top of the section
- the free space of the section above the subreport does not fit on the the previous page
- PDF export: Error "OTF type is not set!" has occurred during PDF export, if non-embeddable fonts were used.
- Regressions:
- Alias names has not worked on MySQL database.
- The boolean format of older reports has not been read. The default value was used.
- The wrong group in a drill down report was marked.
- Problems of the ASP.NET proxy and .NET Framework 4 occurred. Errors with some Drill Down and Subreport on Demand reports has occurred.
- The execution order of formulas with custom number format and fixed currency symbol was wrong.
- Postscript export: In rare cases it can happen that an exported postscript file (postscript level 3) can be displayed but an error occurred during printing.
- String Prompt was not quoted in SQL Expression.
- In rare cases, a background color of subreport elements was not or only once displayed, if only one background color was used for the report elements and if a background color has been set for at least one report section.
- IndexOutOfBoundsException occurred during processing the record selection formula.
- With enabled area keep together in some cases the Java viewer has shown the page before after a click on a group tree node.
- A thread bug between cache and scheduler has occurred. It has produced the sporadic error [The page "x" is out of range (y).]
- Regression in version 11.1: A call of method setData(ResultSet) has created a database connection if there was a valid DataSourceConfiguration.
- In rare cases a minus sign has been displayed in front of number fields if the old ReportReader was used to read rpt files designed with Crystal Reports.
- ReportReader: The property formula for property "Decimals" in number properties was not read correctly.
- Scheduler: All scheduler CustomActions were disabled.
- Excel export: NullPointerException occurred.
- Page Footer was printed in not printable area if the report footer with enabled "Underlay Following Section" did not fit on the page.
- Descending sort order of dates and the sorting position of null values was wrong.
- Line over multiple sections was missing on a page in a subreport, if it ends in the group footer and there was no group footer on that page.
- PDF Export: A picture in the exported PDF file was corrupt, if it's location was set with picture property "Dynamic Image Location".
- Data Export: Some data in group footer sections were incorrect.
- XLS Export: Because of static text in subreports, it could occur that Excel opens some exported .xls files in the protected view.
- JNDI database connections has not worked, if a PropertiesChecker was used.
- Embedded fonts are used for calculating the metrix of the TXT export.
- Optimizing the index for the DBRepository and preventing multiple connections for the use of the index database.
- In a very rare case a problem with the preferences has occurred, if i-net Clear Reports was used in Websphere application server.
- The method getProcedureColumns has thrown an SQLException if the JDBC driver has a wrong behavior. Now, i-net Clear Reports contains a workaround for this problem.
- RTF export: Row Heigth was wrong. Known fonts will be assigned to the corresponding character set.
- Characters from a particular Barcode font (Code128) could not be displayed in PDF export and Java viewer.
- Invalid image format exception occurred if an specific JPG image was added to the report.
- IllegalMonitorStateException occurred.
- RTF export: Additonal white spaces has been added to a long text, if the font was changed.
- HTML export:
- Property formula for the hyperlink property was not evaluated.
- In some browsers scrollbars were displayed on fields with enabled text interpretation "HTML(advanced)".
- PDF export: Problem with specified certificate for PDF signature was occurred if IBM Java VM was used.
- HTML export: NullPointerException occurred.
- It could occur that the group footer was printed at the top of page if "print at bottom of page" and "keep together" was enabled for the group footer area.
- Minimum width calculation for fonts like Chinese and Japanese was wrong.
- NullPointerException during PDF export occurred.
- NullPointerException occurred during deserialization of an Engine that has been rendered already.
- PDF export: Because of some special characters an exported PDF file could be displayed but not printed in Acrobat Reader.
- Invalid license key exception occurred sometimes if BouncyCastle JCE provider was used.
- PDF export:
- A blank subreport with enabled "Suppress if Blank" property could hide the following data.
- An additional empty page was created because the property "Suppress if Blank" was enabled for a blank subreport.
- A memory leak with the JDBC driver from Oracle and Engine.setSQL has occurred.
- The toWords function converted the number 1000000 into French language with the "Un" prefix.
- The correct French number word is: Un Million.
- Memory leak and performance decrement occurred after some time if styled fonts like arialbd.ttf are used.
- Hyperlinks does not work on the second page if they are part of a field with enabled text interpretation "HTML(advanced)" that is longer than one report page.
Security Fixes
- Critical Security Update for Help Plugin (CVE-2020-11431)
- Fixed XXE vulnerability for authenticated users with privileges to ad-hoc reporting or remote designer (CVE-2020-12684)
- Fixed multiple XSS vulnerabilities (login was not required).
- Fixed a path traversal vulnerability which allowed access to files within the installation folder and its sub-folders
Version 16.3
- Certificate from Let’s Encrypt certificate authority can be requested in the "Web Server" dialog.
API modifications
- Added Classes:
- AuthenticationProvider
- RemoteWebUserInfo
- WebUserInfo
- Added Methods:
- BarPlot.getBarMarginPercent()
- BarPlot.setBarMarginPercent( double )
- CrossTabBody.moveSummaryField(int,int)
- The method signature of DesignerDataModel.openPropertyFormulaDialog changed. Now a property name and a flag to indicate a tristate is necessary.
Changed Behavior
- It is now possible to display the SQL statement of a command in the Database Wizard, even f the database conection is invalid.
- Formula Editor: The terms "{field} = null" and "{field} <> null" can now be used as null-checks as well.
- The summary dialog has been reworked.
- The designer now acceps a file path without –open as start parameter.
- The designer now creates its own special configuration called "Designer_Default" if the designer is started for the first time or the configuration the designer was based on has been deleted. This i-net Clear Reports configuration is pre-configured with various settings that make more sense for working on report design rather than for running an i-net Clear Reports server.
- Java 6 required.
- Performance flaw has been improved, when deleting a crosstab with a lot of rows or/and columns.
- Chart Properties: It is now supported to set different chart color formulas for combined charts.
- Designer will now use the column alias (if set) to display the database fields.
- The bar width property in the plot tab of chart properties dialog works now with all configurations of dataset and with stacked bar chart too.
- Page Layout dialog: The available paper formats now appear to be grouped.
- Various error messages have been improved and details added.
- In various cases in the i-net Designer, the i-net Designer would "freeze up" until the database returned information. This information is now fetched as a background operation, keeping the visuals responsive.
- The status bar shows position and size of the selected report element in the section of the design view.
- Problem Finder:
- will no longer replace the complete tree but update it instead in order to better keep the expansion/selection-state.
- is now able to fix found problems of subreports directly from the main-report.
- now shows a new warning when the bean-class for a used java bean is not available.
API Changes
- Removed Methods
- AbstractDesignerDataModel.editElementsDialog(PropertyElementsHandle)
- AbstractDesignerDataModel.editElementsDialog( PropertyElementsHandle, PropertyEditor)
- AbstractDesignerDataModel.openPropertiesDialog(PropertyElementsHandle)
- DesignerDataModel.openPropertiesDialog(PropertyElementsHandle)
- Removed Methods
- com.inet.designer.AbstractDesignerDataModel
- getCustomReportTypes()
- com.inet.designer.DesignerDataModel
- getCustomReportTypes()
- isOpenDriverLibrariesAllowed()
- setOpenDriverLibrariesAllowed(boolean)
- com.inet.designer.AbstractDesignerDataModel
- Removed Deprecated Methods
- com.inet.designer.DesignerDataModel
- chooseReportFile(Component)
- com.inet.designer.BasicDesignerDataModel
- chooseReportFile(Component)
- com.inet.designer.DesignerDataModel
SDK
- HTML Viewer Print via PDF Plugin: Error occurred: Class Not Found: com.inet.htmlviewer.printpdf.HTMLViewerPrintViaPDFPlugin
- Samples for PropertiesChecker and EngineFactory plugins added
- API method CertificateInfo.getInstance, parameter keyStorePathOrUrl supports path or URL. Keystore file for signing PDF files can be set as URL
- The C# implementation based on IKVM is deprecated. It was replaced with the ProcessBridge
- Folder samplereports added. It contains the sample rpt files.
Security Fixes
- 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
Version 20.4
- User defined functions can now be used in the record selection to be executed on the database. This requires all parameters of the function call to be constants or prompt fields
- Improved cell distribution for crosstabs in ODS and XLSX format
- Login of Members of Windows group Guest is possible
Fixed Bugs
- Zero value displayed with sign (-0) if the result was from a negation in a formula
- Error "Report Error [1401] Illegal argument for DATE sproc ..." occurred with SP parameter of type DATE
- Arabic text in text export truncated
- Security Bug: Improved security to prevent 'efail' attacks. Image URLs need to be valid in text interpretation "Advanced HTML"
- Fix problems when NofM and PageCount are used alone in a subreport and not in the main report and hard disk cache is enabled. This can lead to missing pages of the main report and the subreport will miss the output of NofM
- Overlapping fields in Ad-Hoc reports with sums in group footers occurred
- Truncated Arabic text occurred in text export
- Orignal SQLException was hidden by TransferException
Task Planner
- Use the client time zone (if available) to display the next execution times
- Placeholder from some triggers was added
- A task can be executed parallel multiple times now
- XML export added to the task planner
- Prompt values added as placeholder that can be used for example for report name or in email action.
- It is now supported to set "Delete previous results after X days" for a file action. With this property it is possible for example to delete old backups
- Error message improved if the Engine Cache Timeout occurs. In earlier versions an ArrayIndexOutOfBoundsException occurred
- Permissions for the task planner can be set via groups now. The task owner must login once after the update to activate this
- All default values of a prompt parameter will be set if the prompt field supports multiple values on new report jobs
- Task Planner rights can be set via group rights in "Users and Groups" app
- It is possible to export/import a task using Web API
- Sorting and grouping of tasks by owner was wrong
- If a prompt field of a report supports "Multiple Values" then all default values of the prompt will be added to the array of values
- Export Properties was missing in "Jobs" dialog "Report" for Excel and Open Document Spreadsheet
- CSV export was missing
- Problems in the task planner with the reporting cache occurred if a previous task execution has produced an error
- It could occur that the TaskPlanner clean up the 'normal' user comparisons
- Default values of Prompt fields were not read from the rpt file
- NumberFormatException: For input string: "<long number>" occurred
- Filename of CSV export with enabled "Data only" property and postscript export was wrong.
Fixed Bugs
- Formatting was broken if alpha numeric sorting was used for a group
- Use getColumnLabel() instead getColumnName() for DB2 JDBC driver version 4 and later. This has an effect for a SQL commands which use column alias ("AS" keywords on columns)
- Hairline box without background was not printed in the Java output (report preview)
- "Check Connection" in datasource properties was very slow with Oracle database version 12c release 2
Security Fixes
- Fixed XXE vulnerability for authenticated users with privileges to ad-hoc reporting or remote designer (CVE-2020-12684)
- Fixed multiple XSS vulnerabilities (login was not required).
- Fixed a path traversal vulnerability which allowed access to files within the installation folder and its sub-folders
- The formula functions BytesFromFile and TextFromFile now limits access to files to prevent a path traversal for normal users. The file must be from a valid report location, and if it comes it from the file system then it must be from the same directory or subdirectory as the report itself
Version 19.2
- The "External visible URL" being used for the EHLO command when connecting to an SMTP server
- Any subdomain (like *.example.com) on "Allowed Cross Origins" supported
- PDF export: Dejvu-Sans is used as default font for font embedding if no other font is available in the font path
- Fix the recognition of value data types for JSON data sources if the source files contain white spaces
- Null values in JSON data source supported
- New data Sources will be saved in the new application scope now
- The property "driverLibrary" has been removed from the list of properties for Data Sources. Additional drivers for databases have to be provided using the "lib" directory of the installation
- Thai support for the formula function ToWords
- Add Engine.SetData to the .NET process bridge
- Persistence Repository implementation added
- Benchmark for CPU and IO rating added in Maintenance application
- Engine.SetData added to the .NET process bridge
Data Source Manager
The Data Source Manager has been reworked from the ground up and comes with an all-new Remote GUI interface. It now supports assigning datasource permissions to specific user groups
- Completely new Data Source Manager Interface
- New Data Sources will always be created in the Application Scope
- Existing Data Sources in the former User/System/Temp/Session - Scopes will be readonly in the Remote GUI
- Assigning user group permissions to datasources can be performed by users with the User Manager permission.
- Data Sources can be exported individually using the cards menu and multiple Data Sources can be exported using Click and CTRL+Click / CMD+Click to select and then using the top menu "Export" Button
- The Import (top menu → Add → Import) of Data Sources will always create the new Data Sources in the editable Application Scope
- The former Scopes are available via API only. The Remote Interface only displays the indirectly using the "visibility" entry in the Data Source card
- Default value of the property "Supports SQL92" in a new Oracle datasource is true now
- For a new Oracle datasource the default value of the property "Supports SQL92" was false. Since Oracle version 9 it supports the SQL ANSI 92 syntax. Therefore the default value is true now
- The datasource manager allows to enter a custom database/catalog name while still suggesting existing names
- Cannot read property 'driver.group.basic' of undefined occurred if a datasource was saved without modifications
Fixed Bugs
- Possible deadlock on startup occurred if a custom configuration was set via "clearreports.config" or "clearreports.configfile"
- Permission check with Authentication Groups for logged in users was wrong
- Multiple values in the property "Other VM Arguments" in configuration dialog "Web Server" were not supported
- Rare rounding error occurred when the scale of a number was reduced by more than 9 digits in a formula function
- Access to the repository with Login using WebDav has not worked on Windows
- 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
- Security issue "Cross-Site Scripting" occurred
- Unknown operation:
com.inet.report.renderer.doc.controller.bk@0
occurred withTotalPageCount
(NofM) in subreports - Property
RELOAD_ON_NEW_REQUEST
does not work if there was no output format specified in the report URL - "java.io.NotSerializableException: com.inet.font.truetype.i" occurred if a font path was set and "Page NofM" or PageCount was used in very large reports. Because of that the server could hang
- Regression occurred: Special field "current user" and the formula WebUserName returns the display name. Now it returns again the id of the user and not the display name
- Embedded fonts used in PDF documents embedded in a sub report where missing in the created report
- Layout of text in right to left fonts (Arabic, Hebrew) was wrong, if the text parts have different styles (bold, italic, etc.). It occurs in the output formats: PDF, PostScript, image and Java report viewer
- Sorting in charts with 2 groups was incorrect if the first category value does not contains all series values of the chart. In this case the sorting of the series was incorrect
- PDF export: Embedded fonts with glyphs in the range of 0xF000-0xF0FF were not dispalyed in PDF file
- CSV export: Empty CSV export with encoding UTF8 opened with MS Excel. MS Excel shows the content "" in the first cell instead of a complete empty table
- ORA-01000: maximum open cursors exceeded - occurred if Oracle JDBC driver was used
- NullPointerException in debug mode if a plugin has no version information
- Patching the SQL command to query the metadata (column names) was wrong if the command contains function
listagg(...) within group ...
. In this caseWHERE 1=0
was added to the listagg function - XLSX / ODS export: Percentage number was incorrectly displayed (multipled by 100)
- 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 caseWHERE 1=0
was added after theORDER By
clause - Break algorithm improved for Text Interpretation "HTML(advanced)" to prevent breaks in text lines
- 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
- IllegalStateException: REGISTER error occurred because a classloader loop occurred if the i-net Clear Reports libaries has been added to /lib directory
- Layout of text in right to left fonts (Arabic, Hebrew) was wrong in the design view, if the text parts have different styles (bold, italic, etc.)
NullPointerException
occurred when opening anrpt
file with corrupt subreport, created by an older i-net Designer version- XLSX export: Line offset was wrong on third sheet if "New sheet per top level" was enabled
- The automatic font scaling did not work as expected in Internet Explorer
- Buttons to sort and filter task list not displayed if Task Planner list is very long
- Report server was started with command line parameter "-importdatasource" or "-forceimportdatasource"
- Configuration data lost if MongoDB was used for persistence with multiple report server instances
- Synchronization of cached user data, groups, task planner, maintenance data between multiple nodes was incorrect if using database persistence (MongoDb, Redis)
- Fix the recognition of value data types for JSON data sources if the source files contain white spaces
- In Chrome browser it was not possible to save the PDF result of a report if it was already displayed in PDF viewer of the Chrome browser. The save prompt indicates ‘Save as type: All Files (.)’ instead of PDF
- Text export: Charset was set incorrectly
- Property RELOAD_ON_NEW_REQUEST does not work if there was no output format specified in the report URL
- NoSuchMethodError: 'void java.lang.SecurityManager.checkSystemClipboardAccess()' occurred if Java report viewer was use with Java 11
- Hairline box without background was not printed in the Java output (report preview)
Version 19.0
- Notification for low disk space added
- Locale of the client is used for formatting in the prompt dialog, e.g. for date formatting
- The webserver can be configured to send addtional header fields with HTTP responses to, e.g. enforce HSTS or provide custom server information to the web client
- Users are no longer required to have Java installed separately anymore: the Designer now supports a protocol handler to open a locally installed i-net Designer instead of the JNLP variant
- It is now supported to give users or user groups the permission (serverprint) to remotely print on specific printers connected to the server. Now each group can be set to only print on its own server / network printer
- Multiple LDAP server on authentication supported as fallback
- Account id of the user added to the "stored data" view
- A master account will be created after a valid login using the master password even if the setting "Create new User" is deactivated
- New feature "stay logged in". After login, each user will remain logged in until they log out. After 28 days, they will be automatically logged out. It is also possible to delete user sessions in the "User and Groups" module, if you have the permission to access this module
- Login Sessions displayed in the User details
- It is now supported to select a preconfigured datasource for a database series in the Task Planner. The user defined JDBC settings are still possible
- Percent formatting in the XLSX export format was incorrect
- Warning for required .NET Framework 3.5 removed
- Configuration data lost if MongoDB was used for persistence with multiple report server instances
- Infinite loop occurred when using report viewer in an iFrame
Version 18.1
- Text export: Encoding of lines and boxes in text format improved
- Repository events added to Event Log
- XML Export added to the task planner
- Endless loop with a multiple page (PDF) document in a dynamic image location occurred
- Percent format in XLSX format shows 0%
- FactoryConfigurationError: "Provider com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl not found" occurred
- Postscript export: Images with 8 bit gray color are displayed incorrectly or postscript printer does not print it
- IllegalStateException occurred with message "Unknown operation: com.inet.report.renderer.doc.controller.bk@0"
- Security issue "Cross-Site Scripting" occurred
- Rare rounding error occurred when the scale of a number was reduced by more than 9 digits in a formula function
- ORA-01000: maximum open cursors exceeded - occurred if Oracle JDBC driver was used
- Stacktrace of ReportError was displayed to the user
- Reports that required a prompt does not open properly in the Internet Explorer 11 after the prompt request dialog was closed
- Default zoom was too small if the report was exported in only one HTML page
- Authentication on Repository failed if Remote Designer was started in Repository Browser
- Hairline box without background was not printed in the Java output (report preview)
- "NamingException: LDAP response read timed out" occurred if Windows Active Directory was used for authentication with a large number of groups
- The following error has occurred in Internet Explorer while restoring a backup: "Object doesn't support property or method 'includes'"
- Sorting and grouping of tasks by owner was wrong
Version 18.0
- The JDBC-ODBC-Bridge now supports VARCHAR values larger 255 characters
- Support for SSL certificate in PEM format added
- The report URL parameter "reports" now supports XLSX and ODS. A new sheet will be created for each report
- Userinfo (user:password) supported in the report URL parameter. It will be send as Basic authentication header
- Support for XLSX and ODS format for multiple report file reports added
- "Bean Data Source" removed because of security reasons
- Option "Font Mapping" to replace fonts that are not embeddable for PDF files is enabled by default. The change will have direct impact on Font Path settings
Security Fixes
- Critical Security Update for Help Plugin (CVE-2020-11431)
- Fixed XXE vulnerability for authenticated users with privileges to ad-hoc reporting or remote designer (CVE-2020-12684)
- Fixed multiple XSS vulnerabilities (login was not required).
- Fixed a path traversal vulnerability which allowed access to files within the installation folder and its sub-folders
Version 19.1
- A restart in the server interface triggers a restart of all nodes if database persistence (MongoDb, Redis) is used
- Event log contains a "node" column if it runs with database persistence (MongoDb, Redis)
- Let's Encrypt certificate requests now work with multiple server and database persistence
- Default "Font Path" for PDF export and Java viewer added. The default font path contains DejaVu fonts for Monospaced, Sans Serif and Serif fonts. Font embedding of DejaVu fonts is enabled by default
- Prompt dialog added to Task Planner
Report Repository
- Reimplementation of the repository search using our own search engine
- Java report viewer removed from the list of output formats because Java applets are not supported by most current browser versions
- Allow special UTF-8 characters in report names when using Remote Designer to open the report from repository browser.
- ODS (Open Document Spreadsheet) export format was missing in repository browser.
- Exception occurred when database repository was renamed.
- Repository credentials are now optional. If they are needed for the connection, they will be requested at runtime (including an option to store the credentials permanently)
Configuration Manager
- Function to activate a configuration temporarily removed
- Property "Keystore File" for signing PDF files supports URL
- Message "Configuration not available. Please reinstall the application" was displayed sometimes while the Configuration Manager web GUI was loading the configuration
- Error "$rootScope.model.activeCategory is undefined" occurred after server restart
- The max heap memory (-Xmx) for the Java VM running the report server can be set in the configuration manager dialog "Webserver". The default value is 1/4 of the RAM (for 32-bit it is 256 MB).
- Keyboard usage for tables and lists in the configuration manager has been improved.
- Increasing the security, stronger one-way encyption for the Master Password added.
To increase and simplify the configuration of i-net Clear Reports, the configuration manager has been redesigned and reimplemented. The assignment of properties to groups was improved. Also a "simple" and "advanced" view was introduced.
- Simple / Advanced view added. Properties were divided in different views to simplify the configuration.
- For a better understanding properties were partially move into other groups.
- All available users and groups are displayed in the drop down box of category permissions.
- The categories System Permissions and Report Permissions were combined into the category: Permissions. In the category Permissions it is now possible to specify which user and/or groups can execute all reports. The permissions for repository reports are specified in the Repository Browser.
- New components "Email settings" and "Error Notifications" added.
- It is now possible to set different log levels for individual components.
- If Windows authentication is used, then the list of users & groups in the categories Report Permissions and System Permissions will contain the domain user and groups.
- Interface com.inet.authentication.UsersAndGroupsProvider added to API. It is useful for adding user and group names from a database or something like that to the drop down list in the configuration manager categories Report Permissions and System Permissions.
- Two "HTTP URL" properties added to the section "Remote Interface" in configuration manager category "Web server" to add a logo image and imprint link to the footer of the remote interface.
- The i-net Clear Reports Configuration has a new property 'Logging of the internal server' in the category 'System - Logging', which enable/disable the logging of the Jetty server.
- The buttons in the configuration manager category: "Report Permissions" were cut off in Firefox version 28.
- HTML report viewer is used as default viewer. The default rendering format can be set in category "Behaviour".
- Now it is possible to set a new master password in the configuration manager category "Login/IP Filter".
- New properties for the data cache added to the cache category.
- New property "Font Mapping" for Postscript level 3 added.
- New command line parameter "-client.ip" for standalone configuration on headless server added.
- Login types "LDAP Server" and "PAM Authentication" added.
- The formula editor now has a text search which can be accessed by Ctrl+F.
- Configuration Manager module has been reworked.
- Performance improvements while starting the Configuration Manager.
- Property "Scheduler Cache Filter" has been renamed to "Restrict report execution to the Scheduler".
- Command line parameter "-clearreports.preferredconfig" added.
- The new remote interface moduls for scheduler and configuration won't work with Internet Explorer 6, 7 or 8.
- A single negative IP filter caused all IP addresses to be blocked. Now, if only negative IP filters are entered, all IP addresses EXCEPT the ones entered as negative filters will be allowed.
- Property "Servlet Filter" added.
- The scope USER_SESSION was added for datasources.
- It was not possible to add more than 17 users and/or groups to the System Permissions.
- The i-net Clear Reports configuration was unable to store very lengthy values in the Preferences. This had the effect that it was not possible to administer system permission rights to more than 15-20 users. This has been fixed, values can now have arbitrary length and as many users as desired can be created and administered in the i-net Clear Reports configuration manager.
- Properties catalog and schema added to the data source configuration, so that it is possible change the values from design time.
- Formula authentication can now be used with login type "External Webserver".
- When scanning a report's parameter fields, the scheduler could display values as "DefaultValue@ffffff" if the field was a multi-value prompt.
- It was not possible to use an SMTP server without authentication.
- There are two new command line arguments you can use: -exportconfig <config> <file> exports the specified configuration to the specified file and -listconfigurations displays a list of the installed i-net Crystal-Clear configurations on the server.
- Configuring Permissions: The remote configuration manager in the Remote Interface now also offers a list with already logged in users if the login type is set to Windows authentication.
- Changing the setting "Use Native Fonts" in the i-net Crystal-Clear configuration did not have an effect until the report server was restarted.
- Configured roles of the system permissions haven't been restored correctly.
Version 10.0
- URL parameter "timezone" added, to specify the timezone that will be used if "Use Client Timezone" on the server is true.
- There is now an XML-RPC-based interface to i-net Crystal-Clear servers. Features to this interfaces will be added in the coming versions, currently however, it is possible to request information about prompts in reports. See the interface InetXmlRpc for further information or contact our support if there is functionality you'd like to see offered by an XML-RPC interface.
- New web-based report prompt dialog will be displayed when requesting a report with prompts in an export format with the URL parameter "init=<format>", or when displaying a report with prompts in the web-based Ad Hoc service, or when exporting a report from the web-based Report Repository.
- The formula functions DateDiff and DateAdd now supporting milliseconds.
- The directory "crystalclear" has been replaced with directory "client" and the libraries in the directories have been reorganized (See more details about the libraries of i-net Crystal-Clear).
- The Remote-Interface and the start page now displays the favicon.ico that is located in the client folder of the installation.
- Single string prompts which do not have any length limit now accept null in addition to an empty string. In the prompt dialog, they have a "no value" option which can be toggled on and off for the string prompt. If you do not want to allow null values for string prompts, you can simply specify 0 as the minimum length of the string - note that in the designer, this is now the default setting when creating new string prompts.
- HTML export: Positioning of elements (e.g. sub-reports, images etc.) improved.
- New URL parameter "timezone".
- Windows authentication (NTLM) supported (see Login Type property).
- API:
- With the new API methods in the class BoxProperties, it is now possible to set the background color of a box dynamically using a formula.
- There is a new get/set method in Engine called "setMetaProperties". This allows the user to store arbitrary properts in a report which are stored and loaded when the report is saved and loaded. These properties are not interpreted or used in any way when rendering a report, however they can be useful for design-time settings and such. Note that property keys with the prefix "designer" are reserved for the i-net Designer.
- There is a new XML-RPC interface that the server provides. To see a list of the XML-RPC methods, visit the page "/xmlrpc/" on your i-net Crystal-Clear server. For version 10.0 there are six methods which can be called:
- report.getPromptFields( string )
- report.getSummaryInfo( string )
- repository.listResources( string )
- repository.listFolders( string )
- server.getVersion()
- server.getJavaVersion().
- Log file improvements:
- Each line of the log file contains a request id starting with "#00001".
- The log level "Paranoid" has been removed. Use "Debug" instead to get the log file for the i-net Crystal-Clear support.
- It is now possible to format the values of range elements, line a date range prompt.
- Record Selection Formula / Filter:
- The record selection will now be optimized to run SQL-convertible parts on the database and non convertible parts locally - if possible. This may decrease the time spent on data fetching, depending on the record selection formula.
- Enhanced toSQL check when using prompt fields. For instance 'CDate ({?prompt})' won't be marked as not executable on database any longer, since it is a constant expression.
- The function groupNumber is now implemented for chart. You can use this in the summary functions and in the color formula.
- Multiple log files possible. Logging now is able to use an archiving mechanism which zips and archives log files once they reach a certain size and which then deletes old archived files if a certain amount of archive files is reached. By default, an uncompressed log file can reach 100MB before it is archived and at most 10 archive files are kept. These two values can be changed within the i-net Crystal-Clear Configuration Manager in the category "Logging".
- The cluster feature of i-net Crystal-Clear Plus has been removed. Operating system or application server cluster can be used, instead.
- Reports created with Crystal Reports version 6 are no longer supported.
- With the property 'show identifier' chart shows now the group name values in the item labels on the plot. Not an x axis value like in the past.
- Error message improved, that will be thrown from the ASP.NET proxy if i-net Crystal-Clear server is not running
- Formula:
- Case insensitive String comparison is now set to SECONDARY(more strict) strength instead of PRIMARY. This will honor different accented forms of the same base letter as well. Using case insensitive comparison, "è" and "E" for instance will not be equal anymore.
- Numeric summary functions, which are used in formulas with an array as parameter, will now never return null. Instead 0 will be returned. This works only with summary functions, with a fixed return type of number, as there are: count, sum, correlation, covariance, distinctcount, average, weightedaverage, populationvariance and variance.
- The output of the formula function DataTimeZone can now be directly used as an input for DateTimeWithTimeZoneOffset.
- It is now possible to log-in with another user, if the guest account does not have the necessary rights to execute the report.
- Static elements like text elements and images does not effect the section property "Suppress if Blank". A section will be suppress, if there is no dynamic content in the section. For details see the documentation or the migration guide.
- API:
- The class com.inet.report.RemoteInterface was removed from the API. The recommended solution for remote access are the PHP proxy and the ASP.NET proxy (see the samples).
- The older methods AbstractValueElement.setRoundingDigits and AbstractValueElement.setRoundingType have been deprecated and are replaced by AbstractValueElement.setRounding. This method takes the number of digits to which to round. In order to round to a digit after the decimal point, use a negative number.
- The method Engine.setReportFile accepts reports that has been saved as "Reports as Folder".
- The standalone server will stop it's own process if the configured port is already in use.
- Excel export: The column width is limited to 255 characters. This value is defined by MS Excel.
- Property "Use Client Timezone" added to the category "General Options"
- If an OutOfMemoryError occurs it is now possible to set value for the properties "Stop After Page", "Database Records Limit" and "Crosstab Cells Limit" in the Performance section.
- The property "IP Filter" supports IPv6 addresses.
- Property "Login Type" added to choose the preferred authorization method, e.g. Windows authentication (NTLM), external or internal webserver authentication.
- Property "Allow unknown Data Sources" added. It allows the connection to databases that are not administrated on server side, but saved in the report file.
- Properties "Max Size of the Log File" and "Max Number of Archive Log Files" added for the creation of multiple log files.
- It was not possible to import a properties file containing the key "allow.param.dll" as a configuration.
Changed Behavior
- System permissions are reduced to the basic features to allow understandable configuration.
- It is now possible to add network shares as repository locations in the remote configuration manager.
- Backslashes in user names are converted into slahes in categories "User Directories", "Report Permissions" and "System Permissions".
Fixed Bugs
- Configurations which contained certain settings which led to extremely long values (such as a high number of permission settings) could not be successfully exported and then re-imported into a different system.
Java Report Viewer
- NullPointerException occurred if there was no default printer
- ClassCastException with custom L&F occurred
- The report viewer set a printer resolution only if Java 9 is used and no printer resolution was set. The bug was fixed in Java 10: https://bugs.openjdk.java.net/browse/JDK-8186987
- In rare cases, reports could cause error messages in the report viewer if there were empty pieces of text.
Report Server
- LDAP authentication: It was not possible to login with a user contained in an LDAP group with a group name (full Distiguished Name) longer than 100 characters
Version 17.1
- The JAR file inetslf4j.jar was renamed into inetloggeradapter.jar. It also contains an adapter for Commons Logging
- PDF export: JPEG images in EXIF format now supported
- Memory improvements for images with image key
- Date parsing order optimized to conform the modified date patterns in Java 9
- Login Type "Internal Webserver" is also available if i-net Clear Reports is not running in an application server but if an login filter is used
- Performance optimization for user expander formulas
Servlet
- Servlet Spec was changed to version 3.1 and the class of the login servlet was changed to com.inet.authentication.LoginServlet
Fixed Bugs
- Multiple issues with the Java 9 release candidate occurred
- PDF export: Some bugs in PDF/A-1b export has been fixed
- XLS / XLSX export:
- Number property formulas were used although the Decimal number format was used instead of the user defined number format and the property formulas should be disabled. This could result for example in a wrong sign
- Client timezone was ignored for date time values in the XLSX format
- "Suppress if Duplicated" does not suppress duplicate fields in some cases
- Percent format in XLSX format shows 0%
- No cipher suite error with HTTPS connections occurred
- Line height style was only used in first line of wrapped text, if Text Interpretation "HTML(advanced)" was used
- Fix a bug with recursive table joins over multiple data sources (DS-A → DS-B → DS-A). The resulting error message was: "Report Error [1403] Error occurred while fetching data or while using data cache."
- Unhandled Exception "java.lang.InternalError" with message "couldn't create component peer" occurred with Java 8u152
- Clip/alignment of italic right align text with a large italic angle was wrong
- Word breaking of Thai language in advanced HTML content was wrong. The correct behaviour requires the report locale set to be 'Thai'
- Error "Report Error [1401] Illegal argument for DATE sproc ..." with SP parameter of type DATE occurred
- Error "Could not create font with ID X" occurred if an OTF font was used and the property "Compress Viewer Fonts" in the Configuration Manager dialog "Font" was enabled
- RTF export:
- Font names in font table should be written using an East-Asian character set encoding instead of unicode
- Content on some text boxes not displayed completely if the text box contains a lot of text
- PDF export: Barcode font was too big
- ArrayIndexOutOfBoundsException occurred if facename und familyname arrays have a different lenght
- "The design of the crosstab is too large" occurred with a crosstab in a subreport
- Currency symbol was displayed although the field was suppressed
- If "Underlay Following Section" was enabled for a section in a subreport then it could occur that the subreport was moved to the report report page
- If the URL used in BytesFromFile function returns an 404 error then "unknown image format" was displayed in executed report. In this case image will be shown as blank
- Exception: "org.bouncycastle.asn1.pkcs.PrivateKeyInfo cannot be cast to org.bouncycastle.openssl.PEMKeyPair" occurred
- Crosstab property "Suppress Row Labes" in "Group Options" does not work for more than one field in crosstab rows, if it is enabled for more than one field in crosstab rows
- Fix problems when NofM and PageCount are used alone in a subreport and not in the main report and hard disk cache is enabled. This can lead to missing pages of the main report and the subreport will miss the output of NofM
- Only the end of a "Can Grow" field was displayed at the 2nd appearance of the field if the field has been continued on a second page
- If an embedded font have different font metrics as the system font with the same name and text interpretation "HTML(Advanced)" was used then the text layout could be broken
- SVGDecoder does not work with Java 9 (or higher): ClassNotFoundException: org.w3c.dom.css.DOMImplementationCSS
- PDF document was not displayed correctly in report
- Decimal number format in XLSX and ODS output format was 0 instead of the correct number
- Fonts of an PDF document embedded in sub report were missing
- Security issue "Cross-Site Scripting" occurred
- ORA-01000: maximum open cursors exceeded - occurred if Oracle JDBC driver was used
Repository
- MIME type mismatch via SSL connection with strict MIME type checking for Echo2 Modules like Repository Browser
- Permissions in repository browser changed: Files and folders are now visible if the user have the execution right for this folder. Permissions are inherited to sub folders and can be overwritten in a sub folder.
- Remote Repository Browser now updates the folders and files on browser refresh.
- The repository now allows the usage of user directories.
- The execute permission in the remote repository browser now also contains the report location rights for the repo-locations.
- Repositories now only connect to databases if necessary. This results in a faster startup of the i-net Crystal-Clear server.
- It is no possible to start the i-net Designer in the repository browser using JNLP. There is no client installation necessary.
- The HTML output of the WebDAV connection has additional columns to allow the rendering of the reports from this site.
Web Interface
- java.lang.NullPointerException occurred while opening file chooser
Security Fixes
- Critical Security Update for Help Plugin (CVE-2020-11431)
- Fixed XXE vulnerability for authenticated users with privileges to ad-hoc reporting or remote designer (CVE-2020-12684)
- Fixed multiple XSS vulnerabilities (login was not required).
- Fixed a path traversal vulnerability which allowed access to files within the installation folder and its sub-folders
Version 17.0
Fixed Bugs
- ORA-28040: No matching authentication protocol - occurred with Oracle 12c
- The current execution of the formula "x" was aborted due to a null value
- Directory Plugins and lib not found if UNC path was used with Java 8
Scheduler
- NeedPromptException occurred even though no prompt was needed.
Version 16.1
- The cache for rendered reports was completely rewritten to prevent a large amount of sporadic errors and to improve the performance.
- Includes performance improvements for large XLSX files.
- Formula functions Ceiling, Floor, MRound and RoundUp added.
- crossdomain.xml and robots.txt can be set in the configuration manager.
- Includes memory improvements for reports containing "Page N of M" that take effect when a cache type other than memory cache is used.
- Support for Surrogates/Supplementary characters (32 bit characters) added.
- BOM (Byte Order Mark) added to text export if the encoding is UTF-8 so that text editors will correct display UTF-8 characters.
- Link "Configure Scheduler now" has been removed from the scheduler GUI.
- Text and attachments in emails sent by scheduler were in wrong order.
Version 15.0
The Java VM version 8 is embedded with i-net Designer and Report Server on Windows and Mac. It will be installed and used if no Java VM version 8 was found on the machine. During setup of the report server using the Custom installation type it is possible to install the i-net Clear Reports .NET API. This allows to embed i-net Clear Reports into an .NET application.
- Report URL parameter "reports" added - the value should be multiple reports you want to render as one output, e.g. PDF-file. Separate each report by semi-colon.
- XLSX export for newer Microsoft Excel versions added.
- Webserver plugin added.
CHAR
andNCHAR
values are also truncated for dynamic prompt values.- Limited the number of threads used by the Jetty webserver on a high cpu count machine to prevent
IllegalStateException: Insufficient max threads in ThreadPool
. - The report URL will be resolved after
checkProperties
. This makes it easier to work with your own address space. - Jetty version updated to version 9.2.10.
- It is now supported to embed OTF fonts in PDF export and Java report viewer.
- The record selection formula is now divided into a part that is executable on the database and a part that is not executable on the database. The part that is executable on the database will be added to the Where clause of the SQL statement. The other part will be executed in the memory. In previous versions the complete record selection formula was executed in memory if a part of it was not executable on the database.
- If both clearreports.config and clearreports.configfile are set in the web.xml file of the i-net Clear Reports servlet then clearreports.configfile is used as fallback only if the configuration in clearreports.config was not found.
- The PHP Proxy has been removed. The Apache setup now requires the additional modules "rewrite", "proxy_http" and "headers" and uses the internal mechanism to forward requests via Apache to i-net Clear Reports.
- Support of encrypted SMTP connections (STARTTLS)
- Plugins are necessary if custom schedule actions are used.
- Registering Custom Actions or Dynamic-Properties to the Scheduler no longer works by adding a jar-file to the lib path - a plugin must be used for this. For more details please refer to the sample "scheduler" in the directory "client/documentation/samples" of the i-net Clear Reports installation.
- Settings of certain Scheduler actions could display an error message after server restart.
- The FTP-Action of i-net Scheduler is now able to upload rendered reports to an FTPS-Server (SSL).
- The method ScheduleAction.isAttachReport() now returns true by default. The behavior matches up with the documentation.
- The scheduler does not open in Internet Explorer 11.
- The old web GUI of the scheduler has been replaced with a new scheduler modul for remote interface.
- The URL parameter "init=scheduler" is not supported anymore. You can use the following URL to open the scheduler remote module: http://<servername>:<port>[/<servlet-context>]/remote/scheduler.
- "Cache Action" and property "Cache Filter Enabled" has been removed. Use file action to save the report as file and then request this file.
- The Html export in the Scheduler now supports the attachment of the date and/or time to the filename.
- The scheduler now use the logging of i-net Clear Reports.
- When adding a report action, "scanning prompts" from reports now no longer displays a list of default values for prompts which only accept one value. Instead, the first default value is entered as a default which can be changed manually.
- It was not possible to use embedded fonts with the print action of the scheduler.
Fixed Bugs
- Image export: IllegalStateException occurred if printing was disabled for the exported report.
- Date ranges were not always correctly localized.
- Unicode characters like Polish characters were not encoded in ZxingBarCodes JavaBean. It encoded only iso_1 characters.
- ClassNotFoundException occurred if the configuration contains a custom PropertyChecker.
- XLSX and ODS export: NullPointerException occurred if the classpath contains the Woodstox Stax XML API.
- Error "javax.xml.parsers.FactoryConfigurationError: Provider redirected.DocumentBuilderFactory not found" occurred if WildFly was used.
- The "round" formula function has not always used ROUND_HALF_UP like documented.
- In very rare cases the multiplication of large numbers or numbers with a large scale returns a wrong result.
- Regressions:
- The cursor of Oracle functions was not registered.
- Duplicate Oracle procedures in the root and in a package of a schema were not found.
- Data export: Suppressed fields were not refreshed.
- ArrayStoreException occurred if a FormulaExpanderClass with a Binary parameters for functions was used.
- In very rare cases the line chart has overwritten the border of the chart.
- The following Ora4SQLException occurred if a stored procedure with Date type input parameter was added to a report: [OraDriver?] #14 Unknown or unsupported SQL type. <0>.
- SocketException: Invalid argument occurred if only ipv4 is available (-Djava.net.preferIPv4Stack=true).
- Special Field and formula function "ReportFile" has returned absolute report file URL. In case of http URL it returns the relative URL again.
- IllegalStateException: PRE_INIT occurred if a JSP page is the first request after a restart of the report server.
- Login box was displayed multiple times for the first user in application server if the login of the application server was used and the user has login in another program part first.
- NullPointerException occurred if JsonData used as datasource.
- CheckProperties methods in Sample.jsp are not called correctly.
- JSON datasource: Quotes ignored. Therefore strings where interpreted as number.
- Because of some bugs in the JSON-RPC implementation, it was not possible to use the library JSON-RPC 2.0.
- OrderBy part of the SQL statement contains the result of a formula if the report was grouped by a formula.
- "Can grow" text elements with field parts could end up incorrectly duplicating their data in a row if the data had caused a page break on the previous row of data.
- Sometimes NullPointerException could occur after the 10 minutes timeout of the web API has occurred.
- Add also pieces of WHERE from the Record Selection Formula if in addition to the joined tables there is an SQL Command.
- NullPointerException occurred if only JSP or Cache API was used and the report name was not set with complete path.
- NegativeArraySizeException occurred while parsing an BMP image. BMP images with top down line order now supported.
- Prevent a double login box for the first user in the application server if you use the login of the application server and the user has already logged in in another program part.
- The following exception occurred if a certificate with IBM JavaVM was used: java.security.NoSuchAlgorithmException: SunX509 KeyManagerFactory not available.
- XLSX export: Skip zero characters in XLSX output because this produce corrupt XLSX files.
- NullPointerException occurred in case of nested user function calls in formulas.
- Postscript export: Memory leak occurred with embedded font Arial Narrow.
- XLS export: "Suppress if Duplicated" does not suppress duplicate fields in some cases.
- Regression: Exception "Total Page Count not supported in this context" occurred while TotalPageCount was only used in a formula that was added to the report design.
- Unhandled Exception "java.lang.InternalError" with message "couldn't create component peer" occurred with Java 8u152.
Changed Behavior
- To prevent an
OutOfMemoryError
, the maximum number of errors inEngineState
was limited to 10. - Formula ADD operation is now more strict: Strings can only be added to strings. Hidden internal type conversions are no longer possible.
- Formula fields with evaluation time
BeforeReading
that are included in the record selection filter can be executed on the database even if they contain local variables. - For Oracle database, the column name will be used as column alias instead of comment.
- Support for database functions of MySQL v5 and greater added.
- When
quotesToLowerCase
(Quote Database Identifier) property is set in datasource configuration, database identifiers are always quoted. - It is now supported to use cascading parameters from different database tables.
- The method
Datasource.getConnection()
has a call counter now. You need to callclose()
as many times as you callgetConnection()
. Otherwise you will have a connection leak. We recommend using the try-with-resources feature introduced in Java 7:
try( Connection conn = ds.getConnection() ) {
// some stuff
}
API Changes
- Classes, methods and constants that had been set to deprecated in version 12 and older have been removed.
- Added Classes or Interfaces:
com.inet.report.EngineBundle
com.inet.report.database.fetch.DataCollector
com.inet.report.database.fetch.FetchTables
com.inet.report.formula.UserDefinedFunction
- Added Methods:
SwingViewerContext.SwingViewerContext(Component)
Deprecations
- Report URL parameter
sproc
: You can use any of the prompt parameters in the report URL to set the parameter field value for a stored procedure instead. - Report URL parameter
queryfile
: If you have report files with query files then you need to migrate them so that they use a datasource.
WAR File
- File initial_configuration.properties added. It can be modified and used to create the configuration of i-net Clear Reports servlet.
Setup
- Report server setup will create a report repository for sample reports if no configuration exists from another installation. The samplereports directory will be created in the ProgramData directory.
- NoClassDefFoundError: com.sun.management.OperatingSystemMXBean occurred on AIX with IBM Java VM.
Version 13.0
- The i-net Designer and the i-net Clear Reports server now requires Java 7 as minimum version of the Java virtual machine. The i-net Clear Reports viewer requires Java 5.
- New default report viewer: HTML.
- Embedding of HTML, PDF and SVG documents in the report supported.
- The interface com.inet.report.BorderProperties was removed from the class com.inet.report.Element. Only sub-elements with BorderProperties implementing this interface.
- ToWords function for Hungarian language added.
- In the chart properties it is now possible to set 'Show each Nth Label' (Category Axis) and 'Step Width'/'Count of Divisions' (Data Axis) with property formula.
- PDF export:
- It is now supported to add formula fields, like text field, checkbox, button or list to an exported PDF file.
- BMC and EMC operators are used.
- PDF tags supported. They are useful for screenreaders.
- Creation Web optimized PDF files supported.
- HTML export:
- Hierachcial grouping is now also displayed in the HTML report viewer.
- Non-ASCII characters supported in exported file names.
- Database API was redesigned to allow JDBC and non JDBC datasources together.
- Remote GUI classes extracted from file ClearReports.jar in new file RemoteGUI.jar.
- Oracle OC4J application server not supported anymore. It supports only Java 5.
- Standalone Configuration & Recovery Manager will be installed with i-net Clear Reports.
- During installation, ::1 and 127.0.0.1 are now both shown in the IP filter list by default, so that users will not lock localhost out of the server if their system uses IPv6 for example.
- Even for a package installation, the ReportReader files are copied into the installation directory.
- Name of the default servlet context is "reporting" instead of "crystalclear".
- Websphere version 7 (or higher) is required because Java 6 (or higher) is required.
- Datasource mapping dialog for Weblogic and Websphere application server removed.
- MySQL Connector/J has been updated to version 5.1.13.
- JDBC driver for PostgreSQL added.
- The remote interface is enabled for a remote installation (package installation) by default.rect
- Message key "ApachePanel.containsCC.msg" was displayed instead of the correct error message.
- The start and stop scripts for the standalone application were not installed on Unix environments like Solaris and AS400.
Version 10.1
- RTF export: JPEG images are supported.
- Formula fields are now allowed to return array and range values. If an array result is used in the report, only the first element will be shown.
- The formula function ToText now supports to convert ranges of any type to a readable form. For date, time, dateTime and number ranges a pattern can be specified as well.
- It is now supported to use Joins between BeanDataSources. The data fetching includes now the data of all sub objects of bean which are not of Java primitive type, see the property "Data fetching depth in sub beans" of bean datasource.
- i-net Crystal-Clear now supports "fixed" currency symbols. The currency symbol is then aligned to the side of the element while the value can be aligned on its own. i-net Crystal-Clear now supports the option "one currency symbol per page". This will cause the currency symbol to only be printed once per page rather than for each record.
- PDF export: JPEG images and some types of PNG images that are not modified through scale or crop operations are written in PDF file without conversion to the default PDF image format. This reduces the size of the created PDF file.
- DatabaseBean now reads only the used columns.
- RTF export: To reduce the memory usage and file size, static images are now written in PNG or JPEG format instead of using enhanced Windows metafile format.
- The formula statements SELECT and cascading IF(Basic Syntax) can now be optimized which makes them executable on the database in some cases.
- The before reading formula will be executed now always before the record selection formula.
- HTML error messages are UTF8 encoded for localized error messages.
- HTML export: Images for that an hyperlink was configured will be displayed without blue border.
- The formula function datetime no longer supports the date pattern MM-dd-yyyy, since it is ambiguous to dd-MM-yyyy.
- FormulaField.getValueType() no longer throws runtime exceptions. The method will return the cached value type or calculate the current one, if required. To re-calculate the value type of a formula field, call validate() on this field.
- Glassfish application server is supported.
- The setup has been reworked.
- Non GUI headless setup available to install report server on an headless server.
- Apache Procrun used to install i-net Crystal-Clear as 32 or 64 bit Windows service.
- Daemon installation on Linux/Unix now supported.
- On Linux systems, the file extension ".rpt", ".jra" and ".dataview" are now registered and associated as a mimetype "application/crystalclear.report" or "application/crystalclear.archive". As default programs, they are opened by the designer or the viewer respectively.
- The text-based setup has been improved for readability and clarity.
- Support for GlassFish application server added.
- English was not the default language on systems with a locale other than German or English.
- During the setup it was not possible to enter IPv6 addresses in the property IP Filter.
- Non GUI headless setup on console: The default port for JBoss was wrong. The correct port is 8080.
Version 9.2
- It is now possible to create PDF files according to the PDF/A-1b standard using a property in the PDF export dialog of the Java viewer or by the using new URL parameter "pdfa".
- Remote Interface: User "System Administrator" added. A login into the Remote-Interface without an administrated Login-URL will grant all rights to this user, called "System Administrator".
- URL parameter "colswidth" added. It specifies the column widths (fixed width) for CSV export.
- Excel export:
- 1-byte characters can now be used as thousand separator. If 2-byte characters used, only the low byte will be shown.
- The values of date and time will be converted to the client time zone, if the option 'useClientTimezone' has been set.
- New report url parameter "filename" to specify the target filename of the exported report.
- The method Engine.getRecordCount() now returns the record count for subreports, also.
- The formula statement 'option loop' and the basic variable type 'double' are fully supported now.
- Chart:
- The behavior of continuous date line and area chart was changed. The line goes to the zero in the gaps between two values. This involves the series with following summary operations: sum, count, distinct count.
- The grouping weekly in a continuous date chart uses sunday as first day of week, like the data grouping in the report.
- Repository locations can now be enabled and disabled or administrated in the configiration manager.
- System Permissions: Guest account added.
- Data Source Configuration import: there were XML encoding issues when importing files with XML entities.
- It is possible to use private certificates for the login URL.
Fixed Bugs
- "Suppress Blank Section" has not worked correctly, if "Keep Together" was enabled for the same section. Problem occurred only if the dynamic content was on the bottom of the section.
- Searching inside advanced HTML elements has not worked in i-net Designer preview and report viewer.
- NullPointerException occurred if only JSP or Cache API was used and the report name was not set with complete path.
- Deleting a subreport link whose subreport prompt was being used in the report led to the subreport prompt not being requested in the prompt dialog even though it was necessary.
- A problem with the column alias used in a command occurred if the MySQL Connector 5.x was used.
- An endless loop occurred if a report with SQL expressions and joins was opened using i-net Designer.
- An OutOfMemoryError could occur if Remote Interface or Repository Browser were used heavily.
- Various special characters such as /, \, {, etc. in formula names led to problems when renaming formulas.
- Bidirectional content with LTR and RTL mixed in one word is now displayed correctly in a DText element.
- An HR element in a field with Text Interpretation HTML(advanced) was not displayed.
- Opening and closing the property dialog of a crosstab with no rows caused a resize in the total row header.
- The changing of the table alias modifies now the chart color and other property formulas too.
- If the first call of a user defined function contains null-parameters i-net Crystal-Clear was not able to found the right method to invoke.
- HTML Text Interpretation: Image was not displayed if it was loaded via a redirect from HTTPS to HTTP.
- Using "Suppress Blank Section" with "Keep Object Together" caused sections to be suppressed even though there would have been content for the section on the next page.
- If the report was designed on the DB2 database then it was not possible to sort date groups on the database.
- In the rare case multiple summary fields with the same names but varying parameters were used in multiple formulas which were used in a crosstab, the crosstab could have issues rendering the summary.
- Endless loop occurred because of java.util.WeakHashMap, which a non-thread safe object.
- A section was suppressed, if it contains a Java Bean only and "Suppress Blank Section" was enabled.
- Problem with MySQL Connector 5.x occurred, if column aliases was used in commands containing multiple columns with the same name.
- A rare problem occurred when loading older reports from Crystal Reports 9 and before which contained multiple summaries used in formula fields. The error was "Report file not found."
- Security fix to prevent cross-site scripting (XSS).
- Fixed backwards compatibility for the usage of "true" and "false" strings as a boolean in a record selection formula on PostgreSQL database.
- Only "true" and "false" accepted as Boolean strings in a record selection formula on PostgreSQL database. Now it is case insensitiv.
- The size of crosstabs with rows and without rows was different at runtime. Therefore it could occur that 2 crosstabs have a different size at runtime, although the designed size was the same.
- Fixed a security bug which allowed a user to be partly authenticated in the system when another user opened the remote designer.
- PDF export: The length of the underline in rich HTML hyperlinks was incorrect.
- In rare cases, a background color of subreport elements was not or only once displayed, if only one background color was used for the report elements and if a background color has been set for at least one report section.
- ClassCastException has occurred during CCcore file creation.
- The exception "Unexpected type of element class java.math.BigInteger" has occurred during export to XLS.
- GlassFish servers could experience a NullPointerException when shutting down, this is now handled correctly.
- Report Reader:
- Renamed stored procedure prompts in Crystal Reports templates were not correctly converted by the .NET-based Report Reader.
- The Report Reader tool could show an error if it did not have the rights to log to a file. Even when it doesn't have rights to log, it no longer will show an error.
- A possible deadlock in hard disk and database cache has occurred. In this case, the log output has contained the endless repeated message "wait for unlock in delete".
- Security Bug occurred: With the Header HTTP X-Forward it was possible to bypass the IP filter. Now it is also necessary to specify the address of a proxy.
- Windows authentication has worked with Jetty application server version 7.2 but not with version 7.0.
- Exception "Invalid render state. Page already finished." has occurred for reports that show only a report header and have the "New Page After" property enabled for one of the suppressed sections.
- Exception occurred during reading of column labels (aliases) of a command.
- DatabaseBean has returned incorrect values if the subbeans were null.
- PDF export:
- Sub-reports containing images, were sometimes not included in the created PDF file.
- If the property 'Replace Missing Characters' was enabled, then sub-reports were sometimes not included in the created PDF file.
- IllegalArgumentException sometimes occurred during the creation of a signed PDF file.
- Unicode characters, containing some special byte values(0x28,0x29,0x5c), could not be displayed correctly in the bookmarks of the PDF file.
- Borders and shadows of elements painted into the next section.
- Position of a hyperlink in the PDF file was incorrect, if the hyperlink was created using a field with text interpretation "HTML (advanced)".
- The hierarchy of bookmarks was lost in the exported PDF file.
- Pictures encoded as BMP with BitFields and 16bpp (ARGB) has been displayed incorrectly in the exported PDF file.
- Fields with text interpretation "HTML(advanced)" were not displayed if the property "Suppress if Duplicated" was enabled.
- Sometimes cache was hanging for 15 minutes after refresh button in Java report viewer was clicked, if embedded fonts were used.
- N-datatypes of JDBC 4 (e.g. NClob) not supported, if Java 6 was used.
- Translations in the report was not used for parameter fields (prompts) and formulas.
- Sometimes error message has not occurred in case a basic formula did not assign the 'formula' variable.
- Image export: The export of on-demand sub-reports has produced corrupt image files.
- Borders and shadows of elements painted sometimes into the next section.
- In rare cases an extra empty line in text fields including field parts and empty lines occurred.
- For elements using basic HTML interpretation, justified bullet lists were not justified in the first line
- RTF export: Not transparent images were not displayed in OpenOffice writer.
- The "on demand" sub-report label formulas were not correctly read by the Report Reader tool.
- A vertical line or box from the page header to group footer section was not drawn on a page, if it was the group footer of the last record, the group footer was on the top of the next page and there was no group footer on the current page.
- The methods RDC.loadEngine(File file) and RDC.loadEngine(File file, xxx) could not read report templates that was saved as directory.
- A line or box from the page header section to a group footer section was not painted, if it was the group footer of the last record and the group footer was displayed on a top of a new page (after page header).
- Column for identical groups was added multiple times to the OrderBy statement.
- When opening a report with two data sources, of which one was already registered as a data source configuration and the other was not, settings from the second data source could overwrite settings from the first.
- HTML prompt request dialog: Property "Default values only" was not used.
- The height of a section was increased to the default cross-tab height, if the section contains a very small cross-tab (smaller than the cross-tab default height) and if the height of the section was smaller than the default cross-tab height.
- The character # was not quoted, if report was executed on a MySQL database.
- Excel Export:
- If the first group is invisible and the group header in the second group is suppressed and the group footer in the second group contains some data, the new sheets pro first group have not been created.
- Text strings was formatted with STANDARD-Format instead of TEXT-Format. Therefore numbers and dates, that are written as text, was shown in Open Office with an apostrophe as first character.
- No column was added to the XLS file for thin report elements (<3mm).
- The height of a section was increased to the default crosstab height, if the section contains a very small crosstab (smaller than the crosstab default height) and if the height of the section was smaller than the default crosstab height.
- Because of a bug in the Java VM on the Mac OS, a security exception occurred if a not privileged user tries to use user preferences and i-net Crystal-Clear internally tries to use the System preferences.
- ArrayIndexOutOfBoundsException in the translator occurred if the same placeholder, e.g. {0}, was used multiple times within the same string.
- Fields in the subreport were not displayed, if the property "Suppress if Duplicated" was activated and the text interpretation "Html (advanced)" was used.
- The text property "Manual Formatting" was not working correctly in many cases, if it was used for crosstab fields.
- HTML export:
- Fields with text interpretation "HTML(advanced)" were not displayed if the property "Suppress if Duplicated" was enabled.
- The property "Manual Formatting", category "Text", was not work in in many cases for fields in a crosstab.
- If there were SQL expression fields in the report and the report's data sources were converted to a single SQL command, the expression fields were removed from the report. Now they are instead turned into database fields based on the column in the SQL statement named the same as the SQL expression field was named.
- If a report file from an older version of i-net Crystal-Clear was based on a query file and the query file could not be found, the report file was unable to be read.
- Characters in Crystal Reports templates such as 0x01 which are illegal for XML 1.0 files caused reports to not be able to be converted correctly. These characters are now converted to white spaces instead.
- Summary functions in formulas, which have a number-array as parameter have null returned instead of 0 for empty or not initialized arrays.
- Any URL parameters manually after the UID parameter which the HTML prompt dialog created were truncated.
Changed Behavior
- Formulas and summaries now use fixed point numbers instead of floating point numbers. This reduce rounding problems.
- It is no longer allowed to use methods of the Object class as user defined functions in a formula.
- User defined functions in the formula expander class can have its own documentation in additionially HTML files. See the samples in the documentation for details.
- It is now suppoerted to use Engine, HttpSession and HttpServletRequest as invisible parameters for user defined functions in the formula expander class.
- Unused formula fields will no longer be checked, even if other formula fields are used in the record selection.
- Reports, saved in repository will now clear their cache entry to ensure a fresh result when updating the rendered page.
- The error messages for expired license key containing name and scope of the used configuration.
- Support for query files deprecated.
- It is now possible to pass in single values for multi-value prompts as URL parameters. They are then handled as single-value arrays.
.NET Edition
- The .NET libraries are part of the SDK that you can download from our website.
- The .NET edition is not available anymore. During setup of the report server using the "Custom" installation type, it is possible to install the i-net Clear Reports .NET API with which it is possible to embed i-net Clear Reports into a .NET application.
Fixed Bugs
- A summary field with enabled Running Total and with Evaluate "On Change Of" a group and Reset "On Change Of" any non-group field was not working correctly.
- The required hard disk space on a restart was reduced through reusing of files.
- The method engine.getDefaultSqlOfAllStatements(boolean leavePrompts) ignored the leavePrompts parameter.
- In some export format, the height of a section was not increased even when it contained an image with enabled "Can Grow" property.
- PDF form fields did not work correctly in subreports.
- HTML export:
- Representation of developer edition labels was incorrect.
- Text was not displayed after multi-column layout in subreport.
- XLS export: ArrayIndexOutOfBoundsException occurred if an image in a section did not fit to a sheet. The section now starts on a new sheet.
- ODS export: Depending on the used cell distribution and the report design, rows with height of 0 were added.
- Cascading parameters were required to have the same value type as their parents which is not actually necessary.
- There were multiple issues with setting the parent references of cascading parameters.
- The report was not executed (The data source "xxx" is not defined.) if database connection was set programmatically using setConnection but the datasource on the report was designed does not exists on the server running the report engine.
- NullPointerException occurred with XLSX and ODS export if the Woodstox Stax XML API was in the classpath.
- The exception "SocketException: bad argument for IP_MULTICAST_IF2" occurred on Mac OSX if ethernet adapter "en0" was not available.
Installer
- On Suse SLES and OpenSuse the following errors occurred during installation of the rpm package:
- daemonize is needed by
clear-reports-server-16.0.225-1.noarch
- initscripts is needed by
clear-reports-server-16.0.225-1.noarch
- daemonize is needed by
Fixed Bugs
- ODS export: Multiple white spaces has been ignored.
- If the report server was started with "-Djava.net.preferIPv4Stack=true" then "java.net.SocketException?: Protocol family unavailable" occurred.
- XLSX export: Performance improvements for large reports.
Plugins
- Changed Remote Printing API plugin to support a global printing job list. Reworked UI for a better user experience.
Java report viewer
- The design margins when printing via PrinterJobProgress API has been changed if the designed margins are smaller than the printable margins of the printer. Earlier this was done only in the print dialog.
- Regression: If a report was rendered longer than 10 minutes then the error message "wrong mimetype text/html" has occurred.
- Regression since version 15.0: The group tree contained a node more than once if there was not enough space for the group on the previous report page.
- Characters in the chart legends or heading were missing if the chart was included in a subreport and an embedded font was used.
- Subreport on Demand and Interactive Sorting does not work correctly with Java report viewer.
- Java report viewer does not show a report if it is running with Java version 7.
- NullPointerException occurred when adding a report view using API to the report viewer.
- XLSX export added to export dialog.
- It is now possible to switch between the prompts in the prompt request dialog using
Ctrl+Alt+P
(for Previous) andCtrl+Alt+N
(for Next). - Support Open Type Fonts.
- Embedded multipage formats, like PDF, correctly displayed.
- Font data for fonts with different styles are embedded only if the data differs.
- If the Java report viewer was running at least with Java 7u65, then the printer properties dialog was not displayed after a click on the properties button in the print dialog.
- Printer Properties dialog was not displayed since Java VM version 7u65. The printer property dialog will be displayed now immediately with Java version 7u65 or newer.
- Characters were missing in charts legend.
- It is now possible to switch between the prompts in the parameter request dialog using Ctrl+Alt+P and Ctrl+Alt+N.
- If the Java report viewer was running at least with Java 7u65, then the printer properties dialog was not displayed after a click on the properties button in the print dialog.
- You can configure a "Support email address" in the configuration manager category "Email Settings" to have the Java report viewer display a "request support" link when errors occur.
- Searching with regular expressions in the report viewer now searches not word-by-word but over the whole text.
- If the export dialog was closed with the enter key it asked twice whether an existing file should be overwritten.
Ad Hoc Reporting
- IllegalArgumentException occurred if ad hoc reporting was used on a database repository.
- Ad hoc dataview: "Formula Field not found" error occurred if the formula field was used only in the record selection formula of the ad hoc dataview.
- "Cannot read property 'addEventListener'" occurred in ad hoc reporting.
- Permission for 'Remote Designer' now includes (former) permissions for 'Remote Datasources' as well.
- In ad hoc reporting the user is now allowed to use all ad hoc templates and ad hoc dataviews unless a repository is used as storage and report permissions are set in the report repository.
- Excluding filter criteria in Ad Hoc reporting are now concatenated by AND instead of OR.
- If a dataview name contains space(s) and it was saved in a database repository, then it was not available in Ad Hoc reporting.
- Loading issue on remote Ad Hoc filter page occurred. If the same Ad Hoc report was loaded with different filter values, only the first filter value was used.
- Ad Hoc reporting applet could not use ad hoc dataview if an database repository was used.
- The following exception has occurred, if cascading prompts were used in Ad Hoc reporting: NoClassDefFoundError: com/google/gwt/user/server/rpc/RemoteServiceServlet.
- The online help was not displayed in the ad hoc web client if i-net Clear Reports was running as servlet in an application server like Websphere or Tomcat.
- Because of permission and url encoding issues for ad hoc dataviews in a report repository it was not possible to use ad hoc dataviews from a report repository.
- Ad hoc dataviews saved in repository were not displayed in ad hoc reporting because of permission and URL encoding issues for dataviews in a repository.
- Attribut "Permissions" was missing in the manifest file of adhoc reporting applet. This is required since Java 7 update 45.
- Ad hoc reporting now allows to download the current report as an i-net Clear Reports report file (.rpt).
- Ad hoc reporting now allows to export and import save points and share them across different accounts.
- The performance of the Visual Database Wizard for reports with very large counts of tables (approx. > 30) has been improved.
- The rendering of reports in Ad-Hoc(Swing and Web) can now be stopped at any time.
- Attribut "Permissions" was missing in the manifest file of adhoc reporting applet. This is required since Java 7 update 45.
- For the AdHoc Swing client a MessageAdapter can now be implemented and set in the AHConfig. This adapter will be called for any message dialog of the AdHoc client thus allowing to implement custom message handling.
- Sort fields could be wrong if complete reports has been used as Ad Hoc layout.
- The crosstab properties "suppress subtotals" and "suppress group labels" and the number format of crosstab cells were not considered if complete reports containing a crosstab has been used as Ad Hoc layout.
- Groups settings has been changed if complete reports has been used as Ad Hoc layout.
- Unknown protocol error occurred in the ad hoc applet, if the server used a repository for the ad hoc layouts.
- A click on the ESC button has closed the complete dialog instead of the pop-up menu.
Version 10.2
- Native boolean type of PostgreSQL database supported.
- When no default configuration can be found, the temporary fallback configuration now has the remote interface activated to keep access to the server alive.
- All images having the same image key are now considered as the same image in Viewer and in PDF-Export. Therefore only the first image will be rendered.
- The mirroring of the report layout for RTL languages like Arabic respect also subreports and charts now.
- The embedded ad hoc web GUI now supports opening the help panel programmatically in addition to being opened by the user.
- The ability of the remote Designer to open and run reports from a repository no longer depends on the activation of the ad hoc service.
- The renaming of sums in reports used as templates in the ad hoc reporting was incorrect.
- Running totals were not calculated correctly in reports used as template in the ad hoc reporting.
- The Oracle thin driver and column of type timestamp with (local) time zone was not supported.
- Attribut "Permissions" was missing in the manifest file of adhoc reporting applet. This is required since Java 7 update 45.
- Ad Hoc reporting now ignores directories with a dot at the beginning of their name (invisible directories on unix/linux).
- The Ad Hoc web GUI now prohibits to overwrite reports with an equal name by default. Overwriting can be enabled by a checkbox.
- It is now possible to set the default rendering format of Ad Hoc reports in the Configuration Manager.
- It was not possible to load a saved Ad Hoc report correctly. It was necessary to select the Ad Hoc data view again.
- Since version 10.0 it is possible to use Ad Hoc Reporting to generate reports on the fly.
- In ad hoc, when switching the underlying template, the prompt values were stored and applied to the new template, even if it had other prompts, which could lead to issues. Now the prompt info is reset when switching templates.
- It was not possible to load a saved Ad Hoc report correctly. It was necessary to select the Ad Hoc data view again.
Fixed Bugs
- PDF export:
- A blank subreport with enabled "Suppress if Blank" property could hide the following data.
- A blank subreport with enabled "Suppress if Blank" property could create an empty page.
- Excel export: Cell distribution property was not used in subreports.
- HTML export: If the property "Multiple HTML files" is disabled then only the first page of a multi-page report was displayed in the browser.
- Charts:
- Bug with StackedBarCharts occured. It caused the total sum to appear only if the last or before-last series has a value in that column.
- ReportServletJSP restored.
- The i-net Clear Reports plugins were not loaded correctly if deployed in Tomcat 8.0.11.
- Unicode problems occurred if the codepage of the Java VM was different to the codepage of the platform.
- Restoring of Unicode data from the harddisk cache and database cache was wrong.
- HTML prompt dialog:
- It did not open up for exporting a report in cases when a report contained a date range prompt with range default values.
- Time prompts were not correctly handled.
- Time prompts were not correctly checked for their limits if they had limits for allowed values.
- If more than one sub-report had a prompt with the same prompt name, the HTML prompt dialog only set the value of the prompt from the first sub-report, causing the prompt dialog to re-appear when hitting Submit.
- URL parameters setting prompt values were not always used correctly for setting up chosen values.
- Date range values which included a limit for allowed values were not always correctly checked for the limit.
- If a date prompt was set to "default values only", it still displayed a calendar button for choosing a date.
- If a value was missing, then cascading sub-prompts were not correctly selected in the prompt tree in the HTML prompt dialog.
- Database field and dynamic prompt field values with type CHAR or NCHAR were not truncated.
- PDF form fields did not work correctly in subreports.
- HTML export:
- Representation of developer edition labels was incorrect.
- Page content was moved to the right side of the page, after an subreport.
- NullPointerException in MemoryStream.writeUTF8(SourceFile:196) occurred.
- Exception: "Protocol is not file: jndi:...rpt" occurred in a formula.
- CurrentDate formula function has returned the current time as hidden value. If it was used for the calculation, then it could lead to false results.
- Regression: If a report renders longer than 10 minutes an error message "Wrong Mime Type text/html" has occurred, if the Java report viewer was used.
- The "round" formula function has not always used ROUND_HALF_UP like documented.
- In very rare cases the multiplication of large numbers or numbers with a large scale returns a wrong result.
- Data export:
- Suppressed fields were not refreshed.
- Special Field and formula function "ReportFile" has returned absolute report file URL. In case of http URL it returns the relative URL again.
- Formula function "truncate" has returned incorrect value because of internal rounding error.
- NegativeArraySizeException occurred while parsing an BMP image. BMP images with top down line order now supported.
- The following exception occurred if a certificate with IBM JavaVM was used: java.security.NoSuchAlgorithmException: SunX509 KeyManagerFactory not available.
- XLS export:
- Some different strings could not be distinguished, therefore instead of two different strings the same string was added two times to the XLS file.
- Unhandled Exception "java.lang.InternalError" with message "couldn't create component peer" occurred with Java 8u152.
- Sometimes NullPointerException could occur after the 10 minutes timeout of the web API has occurred.
Statistics
- If the 'download' of a cached report causes a new cache-entry (because a different user already requested the same report or similar) then the download shows as 'Run report again' to make clear that the report will be rendered again.
- Benchmark widget added. It can be used to test the server utilization and speed between client and server or server and database.
- Category "System Dumps" added. It allows you to download a memory dump or thread dump of the report server.
HTML report viewer
- A color picker for the background color of image export formats (only certain browsers) added.
- The image export now supports RGB hex values as background colors (you have to properly encode the parameter).
- Button to enable/disable promptonrefresh while displaying the report with prompt parameters added to the toolbar. It can be removed by using the report URL parameter "haspromptonrefresh=false".
- Help tooltips added to the export dialog properties.
- The report URL property "defaultzoom" is supported.
- Depending on the used browser, one of the following errors has occurred: "TypeError: k.elementStyle is not a function" or "Object doesn't support property or method 'elementStyle'".
- Print button added to the toolbar.
- Export dialog added. It is now possible to configure the export properties.
- Supports URL parameter "title", if no report title was set.
- Contains an export dialog to set the export properties.
- Zoom levels redefined.
- You can configure a "Support email address" in the configuration manager category "Email Settings" to have the HTML-Viewer display a "request support" link when errors occur. You can also add a "subject" or "body" attribute to the entry in the error.json to pre-fill the mail. The error and all available data will be inserted into the email as well.
- Clicking a group in the group tree of the HTML-viewer did not jump to the section if the page had not yet been loaded.
Remote Interface
- The upload file dialog in the Repository Browser was optimized.
- Statistics data are now stored in a Zip file to reduce disk space.
- Remote statistics now have an option to set the maximum amount of data sets to load in order to keep the application responsive and smooth, especially useful for mobile clients.
- Page 'Connection Pool' showing current database connections added to the statistics module.
- The available groups and user will be displayed in the user/role drop down list in configuration manager categories system and report permissions if authentication type LDAP is used.
- Statistic module added.
- It is now possible to add a logo and/or imprint link to the footer of the Remote Interface (see configuration manager category "Web Server".
- Login was not possible if i-net Clear Reports was running as servlet and "Master Password" was used as login type.
- Modul selection page (start page of the remote interface) redesigned.
- The Remote Interface did not work with Internet Explorer 9.
- When scanning new drivers in the web-based data source manager, the new drivers were displayed in the list, but could not be selected until leaving and re-entering the menu.
Version 11.0
- Encyption of PDF files with user and/or owner password supported.
- To improve the visual appearance of the bar, area or pie charts, it is now possible to define a vertical or horizontal color gradient.
- Improved error handling for the case that the Report Reader tool which handles the reading of Crystal Reports templates is missing.
- PDF export:
- DSA signatures just like RSA signatures are now supported.
- EUDC characters will be replaced with logical font (for example SansSerif) as for embedded fonts.
- Native boolean type of PostgreSQL database supported.
- Each logged in user (login URL required) will be suggested for permission administration in the remote configuration module.
- The Remote-Interface and start page now displays the favicon.ico that is located the in client folder of the installation.
- It is now possible to test custom data sources in the web-based remote interface.
- Remote Designer (JNLP)
- If the remote designer is running on a windows system, it can now request the drivers and beans from the report server.
- The remote designer now displays a progress dialog while downloading the required jar files to start the application.
- The error "Problem accessing null/LoginServlet." occurred with some modules if no login url was specified.
- In the web-based remote data source manager, when creating a MySQL data source, a default catalog was set called "test" which caused issues if this catalog did not exist.
Changed Behavior
- Java 6 required.
- The changing of the table alias modifies now the chart color and other property formulas too.
- Some property methods like setXXXFormula(FormulaField f), which did not check the type of the formula will now throw an IllegalStateException if the FormulaField has not the type of a PropertyFormula.
- The following deprecated report URL parameter are no longer supported: "dll", "host", "catalog", "database", "schema", "user", "url". Use the report URL parameter "datasource" instead.
- The Java viewer now supports EUDC replacement for logical fonts as well.
- The formula statement 'if <condition> then <result>' in the record selection formula is now optimized to 'false' in case the condition is not met.
- During export to Excel the sheet names are checked for not permitted characters, like '['.
- The custom formatting of a group field elements is now possible.
- A rare problem occurred when loading older reports from Crystal Reports 9 and before which contained multiple summaries used in formula fields. The error was "Report file not found."
- For backward compatibility the usage of the string "true" and "false" as a boolean in a record selection formula is possble for PostgreSQL database.
API Changes
- Added Classes
- com.inet.problemfinder.ProblemFinder (and subclasses)
- Added Constants
- ReportProperties.PAPER_TABLOID
- Added Methods
- com.inet.report.chart.plot.AbstractPlot
- getGradientSetting()
- setGradientSetting(GradientSetting)
- com.inet.report.chart.plot.AbstractPlot
- Removed Constants
- ReportProperties.PATER_TABLOID
- Removed Deprecated Classes, Methods and Constants
- com.inet.report.RDC
- getConfigurationProperties()
- setConfigurationProperties(Properties)
- getCrystalClearPropertyPath()
- com.inet.report.RDC
.Net Edition
- IKVM updated to version 7.4.
Version 14.0
- JNDI Datasources are now allowed in ad-hoc reporting.
- Export format "Editable RTF" added. Note that it does not contain text boxes for text positioning.
- It is now possible to send an email notification in case of an error.
- ToWords implementation for Serbian language added.
- The standalone server now supports HTTPS connections. In the configuration manager category "Web Server" you can select HTTPS and set the port, certificate and key. For test purposes of HTTPS connections, a self-signed certificate can be generated before purchasing one from a provider.
In the .NET edition method names now have been changed back to Java's lower-case convention rather than the C#-style capitalized names.
- Images in advanced HTML were missing.
Version 13.1
- Method isRunning() added to Listener class. It returns whether the listener is currently running.
- Support for reports with LDAP data added to the database API.
- XML and JSON datasource added.
- Jetty 9.0.3 and Servlet API 3.0 now used.
- CCservlet-api-2.5.jar replaced.
- CCservlet-api.jar and jsp-api-2.0.jar removed.
- Record Selection Formula: The formula operation <string-value> IN <string-value> is now executable in databases.
- HTML report viewer: Left and right margin besides the report sheet has been reduced from 10% to 1%.
- Export dialog added.
- XmlRPC supported with the .NET version.
- Default implementation of the .Net report viewer added to sample directory.
- IKVM 7.3 is used.
- Tutorials in i-net Designer now available in i-net Clear Reports .Net.
- Image export from Java report viewer was corrupt.
- Help for remote designer was missing.
- Missing Images in Advanced HTML occurred.
Version 12.1
- The report server now also uses the data cache to reduce the database requests.
- It is now possible to customize of the start page.
- Authentication method LDAP Server added.
- Authentication method PAM added for Linux and Mac OS X.
- It is now possible to configure the error message of the HTML viewer with the file error.json in the startpage folder.
- New API method Engine.setData makes it possible to set the data for a single table, if the report contains more than one.
- Property "newline" now supported for CSV and DATA export.
- The HTML prompt request dialog does not open in Internet Explorer 11.
- Now there is only one setup of the .Net Version of the i-net Clear Reports server. This setup combines the 32/64 bit version. It also supports Windows 8 (.Net 4.0).
- Zxing JavaBean added.
- Windows 8 with Microsoft .Net Framework 4.0 supported. No popup to install Microsoft .Net Framework 3.5 will show up anymore.
- Postgres database driver to the setup.
- The setup of the i-net Clear Reports .Net edition can be invoked in English or German.
- New API method Engine.SetData(String, Datatable) added.
- ASP.Net proxy sample added.
- Remote i-net Designer of the .NET edition hangs when opening a report containing a Java Bean.
Version 12.0
- The HTML export has been completely re-implemented to improve the output of the exported HTML file. It is based now on HTML 4 und CSS 3.0.
- New Export Formats:
- HTM.ZIP - HTML export in compressed zip archive
- ODS
- JavaBean "ZXingBarCodes" added. With this bean it is possible to add QRCode to a report.
- It's now allowed to call a Formula Expander Class function from inside a user defined function(formula).
- Improved error message when entering an invalid prompt value.
- CSV Export: Multiple characters can be used as one delimiter, e.g.: |;:
- HTML export:
- The HTML viewer will not open the same subreport or drill-down-report again but simply activate an already existing tab.
- HTML Viewer can open links with http(s), file, ftp, smb and afp in a separate window and according to the current system.
- Main and subreport share the same database connection, if the datasource is identical.
- .Net report viewer sample added to the samples folder: "<install-dir>\client\documentation\samples\viewer_.net".
- On 64-bit machines, i-net Clear Reports .NET was incorrectly installed in the "Program Files (x86)" folder.
Version 11.2
- Report URL parameter "disposition" added.
- The single sign-on (SSO) for external web server together with the proxy script has been improved. If the login script runs on the same web server as the proxy and you are already logged in in this web server then it is not necessary for you to login again in the reporting server.
- Report URL parameter "disposition" added.
- It's now allowed to call a Formula Expander Class function from inside a user defined function(formula).
- Server Error "Content-Length or Chunked Encoding ..." occurred with .NET Framework 4.
- On 64-bit machines, i-net Clear Reports .NET was incorrectly installed in the "Program Files (x86)" folder.
Version 11.1
- API for a trigger added. The trigger can be used for example in email action of the scheduler.
- Formula functions "ToTextFixed" and "TranslateFixed" added.
- API improvement: adding a sub report to a sub report no longer leads to a corrupt engine but rather immediately throws an IllegalStateException.
- i-net Clear Reports .NET: One of the shortcuts in the Windows start menu was incorrectly generated and was invalid.
- If the .NET-based Clear Reports service is started when the port is already blocked by another instance, a better error message is now displayed.
Changed Behavior
- CDate function now has improved support of localized date-short patterns.
- A formula comparison of <something>=<null> will now always yield null which is consistent with the SQL conversion of this expression.
- Images in HTML fields will now always be embedded into the document when using the HTML export. This solution is similar to images embedded in PDF files.
- If a timeout of the web interface has occurred, a redirect will be send to the client instead of an error message.
- Font embedding optimization: font data of the same font will be embedded only once.
- Transparent colors are replaced through opaque colors for PDFA-export.
- Microsoft report files (.rdl) are no longer supported.
- XmlRPC no longer depends on enabled report permissions.
- Listener API changed to support the configuration of several connections including SSL for HTTPS.
- Extended Listener API: Override getActiveServices() to define a set of services the corresponding servlets should be registered and started for.
- Formula functions toNumber, isNumeric and numericText now accept complete numbers only. Strings with a number prefix are no longer considered a number.
- The aggregator functions maximum, minimumn, distinct count, median, percentile and most frequent did not use the settings for grouping and sorting. This has only an effect if you modified the default settings.
- PDF export:
- Texts that did not use embedded fonts are now closer to the report preview in the i-net Designer because the same line metrics are used.
- Pixels with very low alpha levels will be transformed to background (or white) colors for PDFA export.
- Datasource in Configuration Properties: The configuration manager no longer allows importing old data source definitions from i-net Crystal-Clear version 6 and older. If you use configuration files with these old data source definition files then you can first convert it with an i-net Clear Reports server, version 7 to 13, and then export it as an XML file which can be imported in version 14.
- The
com.inet.report.RequestHandler
interface was removed. It is replaced by the plugin architecture.
- Formula function "isNumeric" now returns false for Java type notation (tailing d or f).
- PDF export: Font name contains now one white space character between family name and style name.
- RTF export: Known fonts will be assigned to the corresponding character sets.
- It is no longer allowed to use methods of the Object class as user defined functions in a formula.
- A formula comparison of = will now yield null in any case, which is consistent with the SQL conversion of this expression.
- Summary functions in formulas now accept single values as well. Count and distinctCount now work for range-arrays as well.
- The report URL parameter "navigation" has been removed, because it is not supported with the new HTML export format.
- The report URL parameter "sql" has been removed.
- DatePart("ww",x) is now compatible with the calendar of different locales. Before it was compatible with Crystal Reports.
- Subreport on demand links will only be created on a client server request.
- It is now possible to log in with a different user name if you are already logged in.
- The remote servlet now allows a redeploy and restart of the servlet without starting the whole server.
- The comparison of the subreport link values is now case-sensitive.
- Now the report data cache will be cleared each time you click on the refresh button.
- The using of column labels with MySQL connector 5.x and query commands works now by Engine.setData(ResultSet) and Engine.setSql(String).
- The mirroring of the report layout for RTL languages like Arabic respect also subreports and charts now.
- It's now allowed to create variables with the name of existing functions in a Crystal-syntax formula.
- Content rendered with text interpretation = 'HTML (advanced)' can now break within a word, in case the word is wider than the the field element width. This does not apply to text inside a HTML table or an auto-sized floated HTML element.
- The i-net Clear Reports startpage now only shows the red warning for deactivated features.
- It is now possible to execute the formula "{StringField}[startIndex to endIndex]" on a database.
API modifications
- The following constructors of class Listener have been removed:
- Listener(int port, boolean throwException)
- Listener(boolean standalone, int port, boolean throwException)
- The other constructors of class Listener now throw an IOException in case of an I/O error.
- The package of the following interfaces and classes was changed from "com.inet.report.config" to "com.inet.config":
- Configuration
- ConfigurationChangeListener
- ConfigurationChangeEvent
- ConfigurationManager
- The following interfaces and classes were added:
- com.inet.authentication.UsersAndGroupsProvider
- com.inet.authentication
- ProblemFinderRule
- AbstractRuleElement
- AbstractRuleField
- AbstractRulePropertyFormula
- AbstractRuleSection
- com.inet.plugin
- ServerPlugin
- ServerPluginManager
- com.inet.report
-
ListenerSettings
-
Fixed Bugs
- A crosstab in a subreport could be incomplete if the property "Keep Together" was enabled for this subreport and the subreport did not fit on the page.
- RTF export: Report header section was not displayed on first page if "total page count" was not used on first page.
- PDF export:
- Hindi text was displayed incorrectly in PDF files when setting SansSerif as the font. For displaying Hindi, a font must be chosen that includes the Hindi characters (such as Arial Unicode MS).
- PDF/A export was not correct for signed PDF files.
- Gray-scaled JPEG images were not been displayed.
- Web-optimized export to PDF could result in an invalid PDF file.
- "Invalid render state. Page already finished." exception occurred, if the properties new page after and suppress were enabled for last report header section.
- Excel export: A crosstab cell was a single line although the original crosstab column label contained multiple lines.
- HTML prompt request dialog: Default value description was not shown in the list of chosen values.
- ORDER BY on multiple groups for the same date field was incorrect.
- In the some cases the line/column index in formula error messages started at 0 instead of 1 as in the formula editor.
- A custom servlet filter that created a wrapped HttpServletRequestWrapper was not used everywere.
- A rare text layouting bug for HTML fields could occur and has been fixed.
- Redirect from HTTP to HTTPS did not work correctly.
- IllegalArgumentException occurred: The name of a sum field cannot be empty.
- A sporadic OutOfMemoryError on export with large reports and a slow harddisk or database cache.
- XMLRPC client has not worked in version 13.0 with external log type.
- HTML export: hairline was wrong displayed.
- Box or line element that spans multiple sections and that starts in page header and ends in a suppressed section were not displayed.
- If "Underlay Following Section" was enabled for the report header of a subreport and the report header was higher than the subreport then the subreport was cutoff.
- NoClassDefFoundError: com.inet.report.config.ConfigurationManagerImpl occurred if Engine was used in ANT task.
- Excel export: Not meaningful log message: "number of decimal places for integer format: x instead of 0" removed.
- The property "ResetPageCount" was executed for each page, altough if the section span over multiple pages. In this case "ResetPageCount" need to be executed on the last page of the section, only.
- A crosstab in a subreport could be incomplete if the property "Keep Together" was enabled for this subreport and the subreport did not fit on the page.
- RTF export: Report header section was not displayed on first page, if "total page count" was not used on first page.
- PDF export: Hindi text was displayed incorrectly in PDF files when setting SansSerif as the font. A font must now be chosen that includes the Hindi characters (such as Arial Unicode MS).
- PDF/A export was not correct, if the report contains images with transparency.
- PDF/A export was not correct, if the report contains images with transparency.
- "Invalid render state. Page already finished." exception occurred, if the properties "new page after" and suppress were enabled for last report header section.
- Some comparisons (> and <) of numbers with a large precision (> 9 digits) in formulas were wrong if the default compatiblity mode was used. This regression does not occur with compatibility mode 12.x or previous.
- Drop down list in the HTML parameter field request dialog displays only number part of default values.
- HTML prompt request dialog: Default value description was not shown in the list of choosen values.
- ORDER BY on multiple groups for the same date field was incorrect.
- Another NullPointerException occurred during the error handling of an NullPointerException.
- In the some cases the line/column index in formula error messages started at 0 instead of 1 as in the formula editor.
- A custom servlet filter that created a wrapped HttpServletRequestWrapper was not used everywere.
- NullPointerException occurred if XML or JSON datasource or CSV data upload was used with Java 8.
- The HTML prompt request dialog does not open in Internet Explorer 11.
- PDF export: Gray-Scaled JPEG Images were not been displayed.
- PDF export:
- A blank subreport with enabled "Suppress if Blank" property could hide the following data.
- An additional empty page was created because the property "Suppress if Blank" was enabled for a blank subreport.
- A memory leak with the JDBC driver from Oracle and Engine.setSQL has occurred.
- Excel export: Cell distribution property in subreports was not used.
- ReportServletJSP restored for Sample.jsp.
- Exception in thread "MemoryCacheTimeoutThread" java.lang.NullPointerException.
- Parameter "HTTP servlet request" in method PropertiesChecker.checkProperties was null.
- HTML export:
- NullPointerException in subreport with lines spanning multiple sections occurred.
- Subreport position in section with enabled "Underlay Following Section" was incorrect.
- Unhandled Exception "java.lang.InternalError" with message "couldn't create component peer" occurred with Java 8u152.
- Bug with Report Data Cache occurred. "Distinct" was ignored if the data was loaded from the cache.
- Unused formula fields were checked, if other formula fields or parameter fields are used in the record selection formula. Thus, a report may not be executed because of an invalid unused formula.
- NullPointerException occurred during deserialization of an Engine that has been rendered already.
- In label elements, multiple line breaks leading over a page break would lead to some lines in the label being suppressed.
- HTML export:
- Exported HTML file was incorrect if underlay following section was enabled in multicolumn section.
- Subreport was incorrect in multicolumn section.
- Report listener did not start with optional remote interface libraries.
- Some report fields contains scrollbars if HTML file was displayed in Chrome browser.
- PDF export:
- PDF signature problem occurred if used keystore file contains mutliple entries.
- Positioning of Thai vowels in exported PDF files was incorrect.
- Border of a subreport was drawn in the page header section, when it was split in two pages.
- If there were cascading prompts and one of the "parent" prompts accepted lists of values, an empty list would cause an error on the server.
- NullPointerException occurred during font embedding because of case sensitive font names.
- Minimum width calculation for CJK texts was incorrect.
- NullPointerException during deserialization of an already rendered report engine occurred.
- Scanning the classpath for database drivers in the datasource manager after a fresh installation could lead to an internal error.
- Data export: If the report does not contain a record, then the exported .csv file will also contain no records, not even a blank record.
- Inconsistency between embedded fonts and system fonts has occurred in text interpretation HTML(Advanced) when exporting to a format with embedded fonts.
- In the HTML-based prompt dialog, entering a value and directly pressing enter instead of clicking on OK could cause the value to not be passed to the server.
- ReportReader & Crystal Reports 2011:
- Special Fields were noch red correctly. They were red as page count field.
- Joins between tables where missing.
- Multiple problems with the latest version of ReportReaderStart and ReportReaderNET were fixed which could cause issues especially when reading report templates from older Crystal Reports versions.
- NullPointerException occurred, if some Mac OS X fonts with non-standard character mapping were used.
- Characters from a specific barcode font (Code128) could not be displayed correctly.
- Error "The value type of field unknownname: 'null' in group 0 is unknown" has occurred if a crosstab was used.
- SQLException: unsupported method call has occurred.
- RTF export: Additonal white spaces has been added to a long text, if the font was changed.
- Grouping on date field was not executed on database because the created SQL was wrong.
- Bug with Report Data Cache occurred. "Distinct" was ignored if the data was loaded from the cache.
- PHPProxy: gzip errors occurred.
- Unused formula fields were checked, if other formula fields or parameter fields are used in the record selection formula. Thus, a report may not be executed because of an invalid unused formula.
- NullPointerException occurred during deserialization of an Engine that has been rendered already.
- Column not found error occurred on DB2 database.
- Excel export: Not meaningful log message: "number of decimal places for integer format: x instead of 0" removed.
- A crosstab in a subreport could be incomplete if the property "Keep Together" was enabled for this subreport and the subreport did not fit on the page.
- Text export: Crosstab columns are not correctly positioned if the box drawing characters in the used font (for example MingLiu) have the double length. In this case the ASCII characters are used instead of box drawing characters.
- PDF export: Font color was used as background color of the next section.
- Excel export: NullPointerException occurred.
- Another NullPointerException occurred during the error handling of an NullPointerException.
- In the some cases the line/column index in formula error messages started at 0 instead of 1 as in the formula editor.
- Excel export: A crosstab cell was a single line although the original crosstab column label contained multiple lines.
- PDF export:
- A blank subreport with enabled "Suppress if Blank" property could hide the following data.
- An additional empty page was created because the property "Suppress if Blank" was enabled for a blank subreport.
- Excel export:
- ArrayIndexOutOfBoundsException: 1 occurred.
- ArrayIndexOutOfBoundsException: 129 >= 2 occurred.
- If the URL contained the promptonrefresh parameter, an HTML prompt dialog would not correctly submit its parameters.
- Field formatting issues using "suppress if zero" in combinated with a "fixed currency symbol" has occurred.
- IllegalArgumentException with number formulas for Java Beans occurred, if the target Java Type of the Java Beans was double. This could occur for example with the Gauge Bean.
- In rare cases, a background color of subreport elements was not or only once displayed, if only one background color was used for the report elements and if a background color has been set for at least one report section.
- IndexOutOfBoundsException occurred during processing the record selection formula.
- Formula function "PreviousIsNull" has returned null instead of true if it was used for the first data set.
- A call of method setData(ResultSet) has created a database connection if there was a valid DataSourceConfiguration.
- Only the first column was added to the report, if MySQL was used and the used stored procedure contains two columns with the same name from different tables.
- Page Footer was printed in not printable area if the report footer with enabled "Underlay Following Section" did not fit on the page.
- ReportReaderNet:
- Various number properties such as "allow field clipping" and others are now read correctly including their property formulas.
- When non-subreport elements were in the same section as a subreport, Crystal Reports templates were often loaded with warnings such as "Possible errors in subreport...".
- The group property "Keep Group Together" was not read correctly from Crystal Reports templates. It was always set to false.
- Summary fields in Crystal Reports templates which were set to running total fields and had both a "evaluate on change of" setting as well as a "reset on change of" setting lost the "evaluate on change of" setting.
- Error when using ReportReaderNet with Crystal Reports XI R2 occurred.
- Error while using ReportReaderNet with Crystal Reports 2011 occurred.
- Excel export:
- NullPointerException occurred.
- If a slash was used as delimiter in a custom date format then this date was displayed with the locale default delimiter.
- It could occur a problem during the creation of database connection to a Apache Derby database.
- Exception occurred, if a report was added as subreport that contains lines and/or boxes spanning mutliple sections and starts in the page header or ends in the page footer.
- Line spanning multiple sections was missing on a page, if it ends in the group footer and there was no group footer on that page.
- Dead locks on MacOS occurred during start of the i-net Designer or report server.
- PDF export:
- Title and subject from document properties were not written into created PDF file.
- An picture in the exported PDF file was corrupt, if it's location was set with picture property "Dynamic Image Location".
- Unicode mapping for multibyte characters was incorrect.
- RecordSelection optimization for subreports - this will now work completely equals to the main report. Fixed removal of Prompt placeholders in case getSQL was called on the engine before it was executed.
- Data export: Some data in group footer sections were incorrect.
- Excel export: Because of some static text in subreports, it could occur that Excel opens an exported .xls files in the protected view.
- A database connection leak on calling SQLValueProvider.getDefaultValues() without calling Engine.execute().
- Text export: Embedded Fonts were ignored for calculating the metrix of the TXT export.
- The Java viewer does not display characters, if the used font can not be embedded but was added to the font path.
- The error message "The failure cause for the report could not be returned." was displayed. Now, the correct error message will be displayed.
- HTML export:
- Clicking the reload button in an HTML output of a report with prompts caused the originally entered prompt values to be lost in some cases.
- Elements in the crosstab description section were displayed outside of the table, if Internet Explorer was used.
- ReportReader has read all special fields as print date, if Crystal Reports 2011 rpt file was used.
- In rare cases, when saving older reports with SQL Expression Fields, the fields were incorrectly saved, making them invalid.
- In rare cases, older reports had issues with SQL Expression Fields which led to them being loaded in the latest version of i-net Clear Reports as having the name "null". This caused the report to no longer work.
- Prompt names including "</script>" in the name could cause issues in the HTML-based Prompt Dialog. The names are now correctly escaped.
- An IllegalArgumentException occurred if a continuous chart was drawn with multiple null values.
- A login request (HTTP code 401) need a long time with JBoss because the wrong content length was send to the client.
- Report Reader:
- In some cases when reading a Crystal Reports template, lines were read as being below the boxes, however this is not possible in Crystal Reports. Now, the boxes are always placed below any line elements in the section, according to how Crystal Reports works.
- When reading Crystal Reports templates, summary fields with a "reset on group" setting were incorrectly read as resetting on the field the group was based on rather than on the group itself.
- The group option "evaluate on change of field" was incorrectly read from Crystal Reports templates by the Report Reader.
- When reading a report using the Report Reader on systems with Crystal Reports 2008 SP3 or higher, an API change introduced in the SP3 update caused the error "Object reference not set to an instance of an object" for certain summary fields.
- The 'case sensitivity' parameter was ignored, if the formula function InStr was executed on database.
- A section was as blank (empty) detected, if it contains only a JavaBean on top of this section (Top = 0).
- Fixed a security bug which allowed a user to be partly authenticated in the system when another user opened the remote designer.
- Formulas could not store any and all characters, even ones normally invalid in XML documents.
- Special fields with numbers (such as Page Number and others) lost any custom number format settings when the report was saved and re-loaded.
- The XML RPC method "listResources" returned an error if any of the resource names used multi-byte characters.
- Special field "Page N of M" was not displayed correctly in PDF export, if the font SansSerif was used.
- Field references in the field browser tree were incorrectly counted when they were referenced by parameter default value formulas and then undoing multiple steps of report design.
- PDF export:
- The length of underline in rich HTML hyperlinks was incorrect.
- Some patterns were not shown after the first page.
- HTML export: The first paragraph was not shown, if it was empty.
- Text interpretation "HTML(Advanced)" now relies on the actual fonts used by any renderer(e.g. PDF or XLS) which provides a more accurate render output for fonts not known to the Java font system.
- Shutting down then restarting an i-net Clear Reports server caused the logging to be deactivated the second time around.
- The data of the report was emtpy if the report was executed three times by using of report data cache.
- Non JDBC Database classes has not worked, if the data source configuration of the report does not exists on the server. In this case it has tried to connect to a JDBC connection.
- Crosstab: Manual Formating formula was not counted by the reference counter, which may have cause under some condition, that this formula was not evaluated correctly.
- HTML Export:
- Hyperlinks on Java beans and charts has not worked.
- Rounding error occurred by calculating the font size.
- All images having the same image key are now considered as the same image in Java viewer and in PDF-Export. Therefore only the first image will be rendered.
- Images were not loaded correctly if they were loaded via HTTP redirects from HTTPS to HTTP.
- The "image key" property formula was not correctly saved and loaded in reports, which meant it had to be re-entered each time a report was loaded.
- Crosstabs in Crystal Reports templates with no rows and/or columns were incorrectly read due to a bug in the Crystal Reports API. This bug is now worked around by the i-net Clear Reports Report Reader.
- Certain summary fields of charts in Crystal Reports templates were incorrectly read due to a bug in the Crystal Reports API. This bug is now worked around in the i-net Clear Reports Report Reader.
- The group labels in the report page and group tree were not correct when grouping on formula and group selection formula were used.
- In the rare case multiple summary fields with the same names but varying parameters were used in multiple formulas which were used in a crosstab, the crosstab could have issues rendering the summary.
- The order of hierachical groups with descending order was incorrect.
- A graphical defect with the white strips in the continuous area chart has occurred.
- Subreports which could not be read in Crystal Reports templates caused the warning message which was displayed while loading to become longer and longer because the older messages were not reset. Now the warning message is reset after each conversion.
- Endless loop occurred because of java.util.WeakHashMap, which is a non-thread safe object.
- A section was suppressed, if it contains a Java Bean only and "Suppress Blank Section" was enabled.
- Subreports with special fields as subreport links could not be loaded correctly.
- Configuration Manager: Property "All JNDI locations allowed" in the category "Report Permissions" has not worked if i-net Crystal-Clear was running on Jetty application server.
- Remote Interface: WebDav interface did not return folders and files if special chars are included in the names.
- Repository: Encoding problems of folder an file names has occurred in the repository.
- Scheduler: NullPointerException occurred sometimes while stopping the scheduler.
- Setup: Start scripts were missing if i-net Crystal-Clear was installed on Solaris as standalone application.
API Changes
- Removed Deprecated Classes, Methods and Constants
- com.inet.report.ChartFormat
- setLocale (Locale)
- com.inet.report.CrossTabDescriptionSection
- addLine( int, int, int, int)
- com.inet.report.Datasource
- setup(String)
- setup(DataSourceConfiguration)
- com.inet.report.Element
- copyXML2()
- com.inet.report.RDC
- loadEngine(File, BufferedReader)
- loadEngine(File, BufferedReader, Properties)
- loadEngine(File, BufferedReader, String)
- com.inet.report.ChartFormat
- Added Classes
- com.inet.report.Trigger
- Added Methods
- Engine.getTrigger()
Remote Interface / Scheduler
- It is now supported to send emails using an encrypted (TLS or SSL) connection in the scheduler.
- The Remote Interface and Scheduler web GUI does not open in Internet Explorer 11.
- Login was not possible if i-net Clear Reports was running as servlet and "Master Password" was used as login type.
- It was not possible to access web components like ad hoc reporting, repository browser, scheduler etc .using a proxy servlet.
Java Viewer
- Attribut "Permissions" was missing in the manifest file of ReportViewer.jar. This is required since Java 7 update 45.
- If the Java report viewer was running at least with Java 7u65, then the printer properties dialog was not displayed after a click on the properties button in the print dialog.
- A drill-down can now also be triggered by double-clicking a node in the group tree.
- Interactive Sorting supported.
- Image export creates zip file if the report contains more than one page.
- Export dialog
- Unit "pixel" added to image width and heigth in image export
- PDF format properties: "Fast Web View" and "PDF Tags" added.
- When printing images on Mac OS X, images could appear blurred.
- Thai character \u0E33 wasnot displayed in the Java report viewer if font embedding was used.
- When displaying Java Report Archive files in an "offline" viewer, clicking on subreport links would result in an internal error. A human readable error message is now displayed.
Remote Designer
- Exception "Original string may not be null" occurred when saving a report that was opened from a repository within Remote Designer.
- The ServletFilter was not used on loading the remote designer.
- Exception "Original string may not be null" occurred when saving a report that was opened from a repository within remote designer.
- The image width in editor page was wrong. It has been corrected for best-fit scaling.
- Error with JavaBeans, e.g. JBarcodeBean, has occurred while a report template was opened for the first time in the remote designer of the report repository.
- Exception "Original string may not be null" occurred when saving a report that was opened from a repository within Remote Designer.
- Attribut "Permissions" was missing in the manifest file of the JNLPDesigner. This is required since Java 7 update 45.
- It could occur that the library of a JavaBean, like JBarcodeBean, was loaded after a report using this JavaBean was loaded for the first time.
i-net Crystal-Clear - Java Viewer
- Images were blurred in the printout if Java viewer was running on Mac OS X.
- Attribut "Permissions" was missing in the manifest file of ReportViewer.jar. This is required since Java 7 update 45.
- ClassCastException occurred: de.centigrade.cezanne.swing.tabbedpane.p cannot be cast to com.inet.viewer.SwingReportView.
- If the Java report viewer was running at least with Java 7u65, then the printer properties dialog was not displayed after a click on the properties button in the print dialog.
- Multi-value parameter fields with a single default value and "default values only" were not displayed to the user.
- When quickly resizing a report viewer there was the possibility of an IndexOutOfBoundsException due to a thread bug.
- The "password" edit mask for parameter fields was not saved correctly, causing the password mask to not be applied when prompting the fields.
- In seldom cases, a NPE could occur when fetching default values for a multi-value prompt which had null values as default values.
- When closing all report views in the report viewer there was the possibility of a NullPointerException due to a thread bug.
- With multiple value prompts containing descriptions it could occur that the description was added to the chosen values.
- The width of the margins on the printout did not match the designed margins, if the default paper size of the printer was Letter and the designed paper size was A4 and vice versa and you changed the paper size in the print dialog to the designed paper size.
- Attribut "Permissions" was missing in the manifest file of ReportViewer.jar. This is required since Java 7 update 45.
- Using the checkbox "Multiple" and "Select All" it is now possible in the dialog "Enter Prompt Values" to select multiple or all default values for a parameter field that allows multiple values.
- There was an issue with the standalone report viewer not correctly updating its cookie from the server which could lead to searching in a report not working correctly.
- Copying text from a report in the report viewer would always have an extra line break at the end. This extra line break has been removed.
- Print dialog ignores PrintService in PrinterJob if SwingReportView.showPrintDialog(Component, PrinterJob, HashPrintRequestAttributeSet) was called.
- It is now possible to disable the ability to drill down into groups for individual reports from within the viewer, using the API ReportView.setDrillDownEnabled(boolean) or alternatively using the Viewer's DefaultSetting key "DEFAULT_DRILLDOWN_ENABLED".
- The report viewer's algorithm for scaling images has been greatly improved by using a "multi-step bilinear" scaling algorithm rather than Java's default one-step bilinear algorithm. See here for a comparison of the algorithms: http://today.java.net/pub/a/today/2007/04/03/perils-of-image-getscaledinstance.html.
- Report viewer will use the embedded fonts, if they are available, independent from the property 'Use Native Fonts'.
- If the page limit set for the server is exceeded for a report, causing the report to be truncated after a certain number of pages, this is displayed in the viewer's page count display.
- The Java logical font "DialogInput" was displayed as a SansSerif font in the Java viewer rather than, as is default, as a monospaced font.
- A multi-threading issue was fixed which could cause a viewer's page count to never appear and, in rare cases, the pages not to be displayed. The problem occurred when a SwingReportView was created before the parent viewer had been placed into a window or frame.
- If the server no longer responded, it was possible for the viewer to "hang" until a timeout occurred.
- A NullPointerException could occur if you provided your own CustomPromptEditor panel and the prompt for the panel had a description.
- Method showPrompts() added to ViewerContext, enabling you to customize prompting behavior of the viewer by providing your own ViewerContext.
- Help button added to the export dialog.
- Parameter Fields dialog
- Date time ranges only went to midnight in the AM of the end date instead of up until midnight of the day following the end date.
- Various issues were fixed for the date range prompt dialog, including date ranges not being stored correctly for later prompts.
- The prompt dialog had graphical issues on systems with text sizes turned to a larger DPI for accessibility.
- Time prompts did not accept time entries unless the exact second was entered as well. A time prompt will now accept a simple "10:12 am" as well.
- When reloading a prompt dialog with a prompt accepting multiple values, the descriptions of the values would disappear.
- Using 120 DPI under Windows 7 could lead to a graphics issue with the prompt dialog.
- Used in a record selection formula, a date range prompt only went until midnight in the AM of the ending date. This means any date times during the ending day of the range were viewed as outside of, rather than inside the range.
- File extension of the default file name in the export dialog was missing if the file name or report title contains 2 dots.
- A deadlock has occurred sometimes, if reports was printed in the background using SwingReportView in the EventThread.
- Formular Printing: Although the property "Enable Formular Printing" was enabled, it was not possible to print in the non-printable area with some printers.
- Print dialog ignores PrintService in PrinterJob if SwingReportView.showPrintDialog(Component, PrinterJob, HashPrintRequestAttributeSet) was called.
- The width of the margins on the printout did not match the designed margins, if the default paper size of the printer was Letter and the designed paper size was A4 and vice versa and you changed the paper size in the print dialog to the designed paper size.
- Endless loop occurred because of java.util.WeakHashMap, which a non-thread safe object.
- Attribut "Permissions" was missing in the manifest file of ReportViewer.jar. This is required since Java 7 update 45.
API Changes
- Added Methods
- com.inet.viewer.ReportView
- isDrillDownEnabled()
- setDrillDownEnabled(boolean)
- com.inet.viewer.ReportView
- Removed Deprecated Methods
- com.inet.viewer.ReportViewer
- getLogStream()
- setLogStream(PrintStream)
- com.inet.viewer.SwingReportViewer
- getLogStream()
- setLogStream(PrintStream)
- com.inet.viewer.ReportViewer
i-net Clear Reports viewer
- The print and export button is disabled, if the report is suppressed because of no rows. It is possible to get this state using Java viewer API.
- ViewerException "Wrong order of nodes" occurred with hierarchical grouping and a second group in the report.
- In field elements with HTML content, selecting and copying text from within the viewer caused extraneous spaces to be inserted before and after punctuation symbols. These spaces no longer are added.
- Error message displayed after an "Bad Gateway" error, contains more detail information.
- ViewerException now contains the ErrorCode of the report server.
- ViewerException "Wrong order of nodes" occurred, if hierarchical grouping and a second group was used in the report.
- Printing quality was bad in the part of the report page that contains a background image.
- Attribut "Permissions" was missing in the manifest file of ReportViewer.jar. This is required since Java 7 update 45.
- In the report viewer, if a report has been cancelled or is no longer valid, the navigation buttons are now disabled - before, it was possible to page through the invalid report with only white pages showing.
- Changing tabs in the Safari browser to a different tab than the report viewer applet caused the report currently being displayed in the applet to no longer be visible, even after switching back to the viewer. Now, tab changes work without problems even for browsers such as Safari.
- Workaround for a bug in the Java VM added. Because of the bug it could occur that the end of long text lines were cut on printing. The clipping depends on the text, font, font size and it occurs very rarely.
- Selecting search results in the viewer sometimes did not highlight the result in the viewer panel when a result was on a page not currently being displayed.
- Font auto scaling in the java viewer for text generated by an HTML(Advanced) text field was wrong.
- In the export dialog it is now possible to specify user and/or owner password for the encryption of created PDF files.
- With multiple value prompts containing descriptions it could occur that the description was added to the chosen values.
- Various small GUI issues were solved for multiple prompt value entries in the prompt dialog.
- If a prompt was marked as "default values only" it still had the "no value" button enabled for it if it was a string prompt. However, toggling this button had no effect since "no value" was not a default value. Now the button is hidden if a prompt is set as "default values only".
- The width of the margins on the printout did not match the designed margins, if the default paper size of the printer was Letter and the designed paper size was A4 and vice versa and you changed the paper size in the print dialog to the designed paper size.
- In the case of an HTTP 302 error in its POST request, the viewer would fall back to a GET request without logging the 302.
API Changes
- Removed Deprecated Classes, Methods and Constants
- com.inet.viewer.ReportViewer
- setCustomPromptEditor(String, CustomPromptEditor)
- com.inet.viewer.ReportViewer
- com.inet.viewer.SwingReportViewer
- setCustomPromptEditor(String, CustomPromptEditor)
Changed Behavior
- Java 5 required.
Report Permissions
- Groups (Roles) were not found because backslashes has been changed to slashes.
- Reverted the / and \ normalization for the permission settings. Settings are stored as typed. User names will be checked normalized, role names must be configured in the correct typing.
API Changes
- Added Classes
- com.inet.report.Region
- Added Methods
- com.inet.report.BorderProperties
- isCloseBorderOnPageBreak()
- getCloseBorderOnPageBreakFormula()
- setCloseBorderOnPageBreak(boolean)
- setCloseBorderOnPageBreakFormula(FormulaField)
- com.inet.report.BoxProperties
- getBackColorFormula()
- setBackColorFormula(FormulaField)
- com.inet.report.Engine
- getMetaProperties()
- setMetaProperties(java.util.Properties)
- com.inet.report.Element
- isCloseBorderOnPageBreak()
- com.inet.report.BorderProperties
- Methods and Constants deprecated as of Version 10
- com.inet.report.config.datasource.DataSourceConfiguration
- checkConnection()
- com.inet.report.AbstractValueElement.
- getRoundingDigits()
- getRoundingType()
- setRoundingDigits(int)
- setRoundingType(int)
- com.inet.report.RDC
- loadEngineFromDir(File)
- com.inet.report.config.datasource.DataSourceConfiguration
- Removed Methods
- com.inet.report.Cache
- isTypeClusterCache()
- com.inet.report.LicenseKeyInfo
- isCluster()
- getGroupNumber()
- com.inet.report.Cache
- Removed Deprecated Classes, Methods and Constants
- com.inet.report.AbstractFontElement
- getBold()
- getItalic()
- getStrikeout()
- getUnderline()
- com.inet.report.AbstractLineElement
- getExtendToBottomOfSectionWhenPrinting()
- com.inet.report.AbstractValueElement
- getAllowFieldClipping()
- getReverseSignForDisplay()
- com.inet.report.BorderProperties
- getTightHorizontal()
- setTightHorizontal(FormulaField)
- com.inet.report.Chart
- com.inet.report.ChartFormatProperties
- getAllowFieldClipping()
- getReverseSignForDisplay()
- com.inet.report.CrossTabCell
- getSubElements()
- com.inet.report.DatabaseTables
- getConvertDateTime()
- isPasswordValid()
- setConvertDateTime(int)
- com.inet.report.Element
- getCanGrow()
- getCloseBorderOnPageBreak()
- getDropShadow()
- getSuppress()
- getSuppressIfDuplicated()
- getTextRotation()
- getTightHorizontal()
- setTextRotation(int)
- setTightHorizontal(FormulaField)
- com.inet.report.Engine
- EXPORT_CSV_COM
- EXPORT_CSV_COL
- DEFAULT_PAPER_ORIENTATION
- DEFAULT_PAPERSIZE
- LANDSCAPE
- pageSizes
- PAPER_*
- PATER_TABLOID
- PORTRAIT
- USERDEFINED_PAPER
- getAcrossThenDown()
- getFormatGroupsWithMultipleColumn()
- getHorizontal()
- getLabel*()
- getMargin*()
- getPaper*()
- getVertical()
- isFormatWithMultipleColumns()
- setAcrossThenDown(boolean)
- setData(ResultSet, boolean)
- setFormatGroupsWithMultipleColumn(boolean)
- setFormatWithMultipleColumns(boolean
- setHorizontal(int)
- setLabel*(...)
- setMargin*(...)
- setPaper*(...)
- setVertical(int)
- com.inet.report.FieldElement
- getLineSpacing()
- getLineSpacingType()
- setLineSpacing(int)
- setLineSpacingType(int)
- com.inet.report.FontProperties
- getBold()
- getItalic()
- getStrikeout()
- getUnderline()
- com.inet.report.GeneralProperties
- CENTER_ALIGN
- DEFAULT_ALIGN
- JUSTIFIED_ALIGN
- LEFT_ALIGN
- RIGHT_ALIGN
- ROTATE_*
- getCanGrow()
- getCloseBorderOnPageBreak()
- getCloseBorderOnPageBreakFormula()
- getDefaultPromptValues()
- getDropShadow()
- getDropShadowFormula()
- getKeepTogether()
- getSuppress()
- getSuppressIfDuplicated()
- getTextRotation()
- setCloseBorderOnPageBreak(boolean)
- setCloseBorderOnPageBreakFormula(FormulaField)
- setDropShadow(boolean)
- setDropShadowFormula(FormulaField)
- setTextRotation(int)
- com.inet.report.Group
- getInstanceId()
- getParentGroup()
- removeGroupDirectionFormula()
- setHierarchicalGrouping(boolean, Field, Field, int)
- setInstanceId(Field)
- setParentGroup(Field)
- com.inet.report.LineProperties
- getExtendToBottomOfSectionWhenPrinting()
- com.inet.report.Paragraph
- getLineSpacingType()
- setLineSpacingType(int)
- com.inet.report.Paragraph
- getLineSpacing()
- setLineSpacing(int)
- com.inet.report.ParagraphProperties
- EXACT_SPACING
- MULTIPLE_SPACING
- getLineSpacing()
- getLineSpacingType()
- setLineSpacing(int)
- setLineSpacingType(int)
- com.inet.report.PictureProperties
- BOTTOM_ALIGN
- CENTER_ALIGN
- TOP_ALIGN
- com.inet.report.PromptField
- addDefaultValue(String,String)
- addDefaultValue(Object,String)
- getPromptValueDesciptions()
- setDefaultPromptValues(Object[])
- setDefaultPromptValues(String)
- setDefaultValue(int,Object,String)
- com.inet.report.RemoteInterface
- com.inet.report.ReportComponent
- getKeepTogether()
- com.inet.report.ReportProperties
- getAcrossThenDown()
- getDistinct()
- getFormatGroupsWithMultipleColumn()
- com.inet.report.SortField
- removeSortDirectionFormula()
- com.inet.report.Subreport
- getOnDemand()
- com.inet.report.SubreportProperties
- getOnDemand()
- com.inet.report.SummaryField
- SUMMARY_CROSSTAB_ROW
- SUMMARY_CROSSTAB_COLUMN
- com.inet.report.ValueProperties
- TWELF_HOURS
- getAllowFieldClipping()
- getReverseSignForDisplay()
- com.inet.report.AbstractFontElement
Changed Behavior
- The dialog "Driver Libraries" is only available for users, who have still configured drivers using this old way. It is recommended to copy the jar file of the used drivers into the directory "<install-dir>/lib/driver".
API Changes
- Removed Deprecated Methods
- com.inet.designer.BasicDesignerDataModel
- getFileChooser(File)
- com.inet.designer.DesignerDataModel
- editElementsDialog(Element[])
- com.inet.designer.BasicDesignerDataModel
i-net DesignerXML
- In the case a deadlock occurs, the designer will now offer a help page at startup for contacting support for further help.
- It is now possible to set a different grid distance for the x and y coordinates in the Design view - i.e. using a rectangular grid rather than a square one.
- New unit "grid points" added. It allows to place report elements according to grid point distances.
- Formula Editor: Function "CurrentDrillDownLevel" has been replaced with "DrillDownGroupLevel". At runtime "CurrentDrillDownLevel" is supported for downward compatibility.
- Paragraph attributes are also displayed in design view.
- Menu items undo / redo added to the popup menu of text elements.
- Methods DesignerDataModel.getAvailableFontsFromRepository() and DesignerDataModel.createViewer() added.
- It is now possible to set the "first line indent" value for each individual paragraph in a text label.
- Drag and Drop was not possible in text elements.
- SQLField optimized: The database used to be contacted when loading a report into the designer if there were any SQLFields. Now it will only be contacted at design time if an SQLField has an unknown value type.
- NullPointerException occurred sometimes while closing the i-net DesignerXML application.
- Memory leak occurred during editing of text fields.
- Loading a report from the repository, making a change, and then saving the report again without looking at its preview caused the report's stored thumbnail to disappear.
- Visual Database Wizard:
- Adding a data source to a report which contained SQL fields was incorrectly not allowed.
- The default SQL statement created for converting a report to SQL from within the Visual Database Wizard was not correct if the report contained a Stored Procedure as a table source.
- Parameter Field Properties:
- Various usability issues and bugs regarding date and datetime formatting have been fixed.
- Canceling an attempted database connection caused an error to be displayed even though the connection was closed correctly.
- SQL Expression Editor:
- Adding an SQL expression field to a report which contained a data source still needing a valid password was not possible - now, the password is requested instead.
- Formula Editor:
- The formula function "DefaultAttribute" has not worked on any property. If the property does not support a user defined default, now the function returns null instead of an error.
- Translator:
- The translations in subreports were not stored in the rpt file.
- It was not possible to translate subreports on demand using translator.
- At execution time, the translations were not used for parameter fields and strings in formulas.
- It was sometimes not possible to translate strings in a subreport using the translator.
- It was not possible to use the same placeholder, e.g. {0}, multiple times within the same string.
- Copy and paste from/to programs with HTML clipboard format did not work.
- Default format for fields did not work, if the fields has been embedded into text fields.
- If a property formula could not be parsed, the property dialog was not displayed.
- A selected report element was removed from the report, if the delete key was pressed to delete a field in the field browser, e.g. a parameter field.
- The property "Possible undo steps" was removed from the Designer Options dialog, category "Editing".
- The property "Manual Formatting" in the "Property Editor", category "Text", was always disabled.
- Report as Folder:
- If a report containing images was saved as folder, then it was not possible to reopen it, after the folder was added to the subversion control system.
- If a report was saved as folder, the complete folder structure was overridden and not just the folder's content. Therefore the source control's .svn subfolders were removed completely.
- NullPointerException occurred after the refresh button in the Visual Database Wizard was clicked.
Version 9.1
- Report Repository: It is possible to host a report repository on a running i-net Crystal-Clear Plus server.
- Remote Data Source Manager: There is now a new remote module for configuring and managing a server's data sources.
- PDF export:
- It is now possible to export EUDC characters in PDF files.
- Interface CertificateInfoFactory added. With your own CertificateInfoFactory it is possible to use multiple certificates for signing PDF files instead of the one stored in configuration.
- Implementation of the ToWords function for Spanish and Russian language added.
- New methods RDC.loadEngineFromDir and RDC.saveEngineToDir added to API. With these methods it is possible to save/load a report as directory instead of a zipped rpt file.
- Package "com.inet.report.translation" added to the API. With the translation API it is possible to create one report for different languages. Whole paragraphs can be translated and it is possible to translate a single report, multiple reports and all reports.
- Text Interpretation HTML (advanced) now fully supports row and column backgrounds (color and images) in tables.
- Formula:
- Formula now supports regular expressions via the matches function.
- New formula function: hasValue.
- Formula: date +/- number now accepts a fractional number of days as well.
- Crosstab now supports grouping by date and time.
- Text Interpretation HTML (advanced): The Advanced-HTML Renderer (JWebEninge) now supports absolute and relative positioning of HTML elements.
- The database connection that was set was not used after RDC.saveEngine was called to save the report before execution.
- The report url parameter 'stopAfterPage' is now allowed by default.
- Property "codepage" added for text export.
- Language Resources per report or per several reports. Translations can be done using API or translations dialog in i-net Designer.
- Trailing white spaces in datatype columns with type char are truncated.
- The text alignment "standard" (usually right for number, left for all other value types) is now stored as a separate alignment type instead of the setting being replaced with the "real" alignment right after storing it.
- Charts: The properties 'draw connected lines' and 'draw out of range' supported for continuous line charts.
- Repository: It is now possible to change the permissions of reports for the selected folder in the remote repository browser.
- Command line parameters "-importDatasource <scope> <file>" and "-forceImportDatasource <scope> <file>" added. With these command line parameters it is possible to import a datasource configuration file (which you can create using the Data Source Manager or API) into a specific scope.
- Excel export: Property "CellDistribution" added. It determines how to distribute text to Excel cells if the text does not fit a simple cell.
- The ReportServlet now accepts the X-Forwarded-* header values send by proxys. With these header values it is possible to determine the correct client links in, e.g. the servers startpage.
- Fields with HTML (set to be interpreted with "HTML(advanced)" now have clickable links in all formats supporting links, such as the Java viewer, HTML, PDF, and RTF.
- Summary functions were completely reworked to optimize the performance and compatibility.
- The files "startListener.sh" und "stopListener.sh" will be installed on Linux and Mac OS.
- On Linux and Mac OS it is now possible to execute the command "sh Listener.sh start|stop|restart".
Fixed Bugs
- TrueType fonts which were incorrectly initialized were displayed with a height of 0.
- Property "Print At Bottom of Page" did not work correctly for areas. Each section of an area was displayed at the bottom of a separate page.
- There was a rarely occurring problem that old reports with summary fields were not able to be read.
- Endless loop occurred if Underlay Following Section was enabled for a large section.
- StackOverflowError occurred if nested if-then-else statements used in formulas.
- There was a problem reading a Crystal Reports template with ReportReader, the message was "Object reference not set to an instance of an object".
- Exception "Invalid render state" occurred if a "new page after" section was encountered before a section had been displayed.
- Lines and boxes that are continued on the next page, started under the page header. Now, they start under the repeated group header.
- Lines with "Move to Bottom of Section when Printing" enabled were not displayed on the next page if the section spanned multiple pages.
- Element borders were drawn into adjacent sections if the element was on the edge of the section.
- The multi-column layout of a report was incorrect if it was used together with the section property "Underlay Following Sections".
- The set line width of boxes was used for positioning the boxes even when line style was set to NO_LINE.
- Formulas:
- The population standard deviation summary function now returns an empty value until a valid value has been read.
- Because of a bug it was not possible to use string range promts in formulas.
- Problems with user-defined functions occurred if Java primitive types were used as method parameters.
- The formula function 'isnull' was executable on the database if it's parameter was a boolean field.
- It was not possible to overwrite a variable, that was created with StoreNumberVar in the main report, with StoreNumberVar in the subreport.
- Excel Export:
- Cross-Tabs were incorrectly displayed when exporting the report to Excel format. The first column was not exported.
- Thousand separator not displayed if procent format was used.
- The position of the '%' -symbol has not been set, if the log level was lesser than WARNING.
- Security issue: Using a modified report URL, it was possible to download files from the i-net Crystal-Clear web context, if the file crystal.war was unpacked.
- Report Reader: Mailing label and multi column reports were not read properly by the .NET-based Report Reader.
- A subreport in the page footer was not displayed if the first subreport section was higher than the subreport itself.
- Error with database column of type CHAR occurred if it contains empty strings.
- If muliple directories has been specified in "Font Path" property and occurred an error during reading fonts from one directory, then the other directory was not read.
- Names of embedded fonts in the font path has been searched only case sensitive.
- NullPointerException occurred if user defined string collation for grouping and sorting was used with an empty locale.
- IllegalDatePeriodException occurred if time field was used as column or row in a crosstab.
- Changing the alias of a table source led to problems when the report had an SQLField as an element in the report.
- An endless loop in the scheduler occurred with large scheduler jobs, if hard disk cache or database cache was used.
- ReportReader: The formatting of field parts in text labels was not correctly read from Crystal Reports templates.
- Text export:
- Some lines in cross-tabs were missing.
- Because of the shadow of lines blank rows occurred in a crosstab.
- Data export:
- It has occurred that columns of the exported csv file contains records of multiple database fields or special fields, e.g. Page Number.
- Set and reset reference of a summary field by group with TopN was faulty.
- Error in SQL statement: Comma between tables in the From clause was missing, if a stored procedure and more than one table has been joined.
- PDF export:
- Subreports containing images, were sometimes not included in the created PDF file.
- If the property 'Replace Missing Characters' was enabled, then subreports were sometimes not included in the created PDF file.
- Unicode characters, containing some special byte values(0x28,0x29,0x5c), could not be displayed correctly in the bookmarks of the PDF file.
- Sometimes cache was hanging for 15 minutes after refresh button in Java report viewer was clicked, if embedded fonts were used.
- N-datatypes of JDBC 4 (e.g. NClob) not supported, if Java 6 was used.
- Translations in the report was not used for parameter fields (prompts) and formulas.
- Scheduler: It was not possible to use embedded fonts with the print action of the scheduler.
- For elements using simple HTML interpretation, justified bullet lists were not justified in the first line.
- A rare bug that caused an extra empty line in text fields including field parts and empty lines was fixed.
- RTF export: Not transparent images were not displayed, if the RTF files was opened in editors, like: OpenOffice writer.
- A vertical line or box from the page header to group footer section was not drawn on a page, if it was the group footer of the last record, the group footer was on the top of the next page and there was no group footer on the current page.
- The methods RDC.loadEngine(File file) and RDC.loadEngine(File file, xxx) could not read report templates that was saved as directory.
- Excel Export:
- If the first group is invisible and the group header in the second group is suppressed and the group footer in the second group contains some data, the new sheets pro first group have not been created.
- Text strings was formatted with STANDARD-Format instead of TEXT-Format. Therefore numbers and dates, that are written as text, was shown in Open Office with an apostrophe as first character.
- No columns were added to the .xls file for thin field or text elements (width < 3mm).
- The height of a section was increased to the default crosstab height, if the section contains a very small crosstab (smaller than the crosstab default height) and if the height of the section was smaller than the default crosstab height.
- Because of a bug in the Java VM on the Mac OS, a security exception occurred if a not privileged user tries to use user preferences and i-net Crystal-Clear internally tries to use the System preferences.
- ArrayIndexOutOfBoundsException in the translator occurred if the same placeholder, e.g. {0}, was used multiple times within the same string.
- Fields in the subreport were not displayed, if the property "Suppress if Duplicated" was activated and the text interpretation "Html (advanced)" was used.
- The text property "Manual Formatting" was not working correctly in many cases, if it was used for crosstab fields.
- ArrayIndexOutOfBoundsException occurred during the execution of a report that was designed with i-net Crystal-Clear version 10.
- Infinite loop occurred, if "Suppress if Blank" was enabled for a section that contains an empty subreport with enabled "Suppress report if no rows".
- ArrayIndexOutOfBoundsException in RTF export occurred.
- The toWords function has used the server locale instead of the default locale. Therefore toWords with an English output was not possible on a server with Chinese locale.
- It was not possible to change the default font style Bold of field elements in a crosstab to another style, e.g. Standard. After reopening the rpt file, the style was again set to Bold.
- OutOfMemoryError occurred, if Remote Interface or Repository Browser were used heavily.
- Security fix to prevent cross-site scripting (XSS).
- In some cases a performance issue has occurred on Linux servers.
- PDF Export:
- Error "OTF type is not set!" has occurred during PDF export, if non-embeddable fonts were used.
- Sometimes file handles for embedded fonts were not closed. Therefore the exception "too many open files" could occur.
- It could occur that characters of east european fonts were not displaed, if non-embeddable fonts were used.
- With enabled area keep together in some cases the Java viewer has shown the page before after a click on a group tree node.
- StackOverFlow/infinite loop on auto-generated summary fields has occurred.
- Problem with Apache Derby DB during connection creation occurred.
- In the excel export a slash as delimiter in a custom date format was displayed using the locale default delimiter. Now, a slash is used independent of the locale.
- In rare cases a NullPointerException occurred during font initialization, if statistic data was empty.
- IllegalArgumentException occurred: The name of a sum field cannot be empty.
- Invalid license key exception occurred sometimes if BouncyCastle JCE provider was used.
- Reports loaded from a remote repository were not correctly rendered anew each time in the Designer but rather would sometimes return cached results.
- Data Source Configuration export: Encoding issue with umlauts and other special characters occurred.
- The help frame for the remote datasource configuration web tool had incorrect formatting and was difficult to read.
- Using Opera 9 in a non-English locale, some of the remote interface's help pages and labels were mixed English and foreign language. This was due to an Opera 9 bug, and a workaround was found.
- It was not possible to import a properties file containing the key "allow.param.dll" as a configuration.
API Changes
- Added Classes
- com.inet.report.certificate.CertificateInfoFactory
- com.inet.report.certificate.CertificateInfo
- com.inet.report.SignatureForm
- com.inet.report.translation.Translations
- com.inet.report.translation.Translator
- Added Methods
- com.inet.report.Engine
- getTranslations()
- com.inet.report.FormulaField
- getTranslationKeys()
- usesSummaryFields()
- com.inet.report.Paragraph
- moveParts(int, Paragraph, int, int)
- normalize(boolean)
- com.inet.report.RDC
- loadEngineFromDir(File)
- saveEngineToDir(File, Engine)
- getCertificateFactory()
- setCertificateInfoFactory(CertificateInfoFactory)
- com.inet.report.Engine
- Methods and Constants deprecated as of Version 9.1
- com.inet.report.Paragraph
- normalize()
- com.inet.report.Paragraph
External Libraries
- JFreeChart updated with version 1.0.12.2.
- Echo2 updated with version 2.1.1.
- i-net Sprinta replaced with i-net Merlia.
- i-net Sero replaced with i-net Oranxo.
i-net Crystal-Clear - Java Viewer
- Russian translation of the GUI added.
- New API method "ViewerContext.showUrl". It is now possible to implement your own "showURL" method for the viewer which is called any time a user clicks on a link in a report.
- Export dialog: Property "Codepage" added for text export.
- The Java report viewer applet now accepts the parameter DefaultZoom.
- The font size of EUDC characters was calculated incorrectly if "Font Auto Scaling" was enabled.
- A custom ViewerContext that was set with setViewerContext was replaced by a default context after adding the viewer to a Swing frame. This caused methods such as "showError" to continue to have their default behavior.
- Wrong order of group tree nodes occurred. Chield nodes has been displayed, although the parent nodes has been suppressed.
- NullPointerException occurred when export button is pressed (dialog doesn't appear at all).
- Various keyboard shortcuts did not work if viewer runs on Mac OS.
API Changes
- Added Methods
- com.inet.viewer.ViewerContext
- showUrl="../../java.lang.String-java.util.Properties"
- com.inet.viewer.ViewerContext
i-net DesignerXML
- Repository Browser: Reports can be downloaded from the repository and stored in the repository. Reports loaded from repository will be executed on the repository server and not within the designer, but the rendering result will be displayed in the designer.
- Configuration Manager: Keyboard control on Mac has been improved.
- Shortcut "CTRL+W" added for the menu item "File | Close".
- DesignerDataModel.getAvailableFonts added to control the fonts that can be used in reports.
- In the designer GUI it is now possible to easily insert a watermark to the report header or page header.
- Positioning of dialogs has been improved. They are centered on the parent dialog.
- The document properties dialog in i-net DesignerXML now displays the report creation and modification time in greater detail.
- It is now possible to save and load reports as directory instead of the zipped file format. This can be useful if you use, e.g. a version control system for your reports.
- Chart Properties: For combined charts it is now possible to switch between discrete and continuous axis and between horizontal and vertical chart types.
- Errors which occur while saving a report in the designer are now displayed in the status bar rather than only logged in the system log.
- Translation GUI added to manage the translations of the report.
- Signature element can be added to the report. It is useful for reports that will be exported to PDF.
- Entries "Insert" and "Insert Symbol" added to the drop down menu of a text element.
- New property "Save data source configuration in report file" added to the document properties.
- Copy & Paste behavior in text elements has been improved. The interoperability with other applications has been improved and it is now possible to insert parts of a text element into a new text element.
- Repository:
- Reports from a repository, opened in i-net Designer XML, are now executed with the locale of the client running the designer application.
- With i-net DesignerXML it is now possible to access the https URL of a WebDav repository.
API Changes
- Added Methods
- com.inet.designer.DesignerDataModel
- getAvailableFonts()
- com.inet.designer.DesignerDataModel
Fixed Bugs
- Non-ASCII characters in parameter field names are not displayed correctly in the HTML Parameter Request dialog.
- An error occurred if a very long integer number was used in a formula.
- HTML Parameter Request dialog: Non-ASCII characters in parameter field names was not displayed correctly.
- Text Interpretation RTF: Style name in the style group was written as text.
- Formula function "groupName" returned sometimes a value with other type than text.
- Grouping of strings with umlauts was wrong.
- Currency fields being displayed without a currency symbol in reports created with an older version of i-net Crystal-Clear.
- Changing the log level on a running server did not cause any changes without a server restart. Any change now has an effect "on-the-fly".
- Excel export:
- Background color of the first column was removed during export to Excel.
- For reports with multi-column or label layout the width of the last column was equals to the width of the report.
- ReportReader:
- The ReportReader was not able to read Crystal Reports templates with certain group properties due to the error "The object reference was not linked to an object instance.".
- There were encoding problems when opening a Crystal Reports template in i-net Designer on a system with Crystal Reports version XI Release 1 or lower. This led to special characters such as Umlauts being displayed as "?" or other symbols.
- The Auto-title property of chart axes in Crystal Reports templates was not read correctly by the ReportReader.
- Summary Fields as Field Parts were not correctly read from Crystal Reports templates, they instead showed up as unknown fields.
- Fields with their format set to "Custom format" were not correctly read from Crystal Reports templates. This has been fixed.
- The following exception occurred with mailing label reports: "Invalid render state. Page already finished."
- The property "Reset Page Number After" was ignored in suppressed sections and sections without height.
- PDF export:
- The calculation of the font metrics for some Chinese fonts was wrong. Therefore it could occur that characters were overlapped by other characters.
- Fonts were not reloaded from FontPath directory after the configuration has changed.
- Exceptions or wrong results occurred if setField(DateTime) was used on a crosstab.
- In rare cases it was possible for a report to be saved as a corrupt file if there was an error in the data source configuration set for the report.
- Field objects in text fields which only contained a single line break were ignored.
- The link "Website" in the Info dialog has not worked correctly on Linux with Java 5.
- XLS export: Underlay following section has not worked. No underlaying was performed in xls file.
- StackOverflowError occurred if nested if-then-else statements used in formulas.
- Specification of the sample report in the Sample.jsp was wrong. The method "put" was used instead of "setProperty".
i-net DesignerXML
- Sometimes, modifications on default values for number elements has changed the default values for currency elements, also.
- Visual Database Wizard: When adding a new connection to a main report which contained a sub-report, the user was incorrectly asked whether the sub-report connection was to be changed.
- Formula Editor:
- Basic formulas will now be forced to assign the 'formula' variable. There is no 'value of the last line' fallback anymore.
- The horizontal align formula for picture elements offered "justified" as a possible constant though this made no sense.
- Group Dialog: Report error "Wrong group number" occurred when trying to remove groups in sub-report.
- When working with reports in i-net DesignerXML, the document property "last modified" was not kept up-to-date, i.e. it always remained the same as the creation date.
- Special field "Current User Name" was not included in the tree of the field browser.
- A regression was fixed in that setting a number field to have a "custom" number format was not saved in the report.
- The help article in the Designer to currency fields stated wrongly that "floating" currency style is not supported by i-net Crystal-Clear while "fixed" is. It is the other way around, this has been corrected.
- A number of layouting errors in the text element has been fixed.
- Text element:
- A lot of bugs in the text element has been fixed.
- The behavior of the cursor was incorrect in a text element if the text was rotated.
Version 9.0
- Modified Behavior of formulas with evaluation time WhileReadingRecords:
- All formulas with evaluation time WhileReadingRecords that are used in the report are now executed before the rendering of the first section begins.
- Variables used in formulas with the WhileReadingRecords evaluation time are not reset before the rendering starts so that the variables can be used in formulas with WhilePrintingRecords evaluation time, also.
Because of this modified behavior it might be necessary to update your reports using the WhileReadingRecords function so that you get the same result as with previous i-net Crystal-Clear versions. It is unfortunately necessary to do this behavior modification because the old behavior was incorrect.
If you use an older configuration with i-net Crystal-Clear version 9, then it is necessary to set the Compatibility Level to "compliant to version 9.x" to use the new behavior of "WhileReadingRecords" formulas. If you create a new configuration with version 9, then "compliant to version 9.x" is the default value.
- Summary functions reworked: The summary functions were completely reworked to optimize the performance and compatibility. These are the major impacts of this change:
- in running total summaries, any database, formula or group field can be used as an evaluate or reset condition
- in running total summaries, non-boolean formula fields can now be used as an evaluate or reset condition
- running total summaries now have the same performance impact as non running totals, but they still require more memory
- it is now always safe to summarize other summary fields
- non-statistical functions have an initial value of 'null' instead of zero
- adding one or more 'null' values to a summary will not change it's result
- correlation and covariance now return 1 if their result is undefined
- 'Pth Percentile' now has a more precise stepping
- 'Nth most frequent' now always groups by frequency and orders ascending by value before returning the n-th value.
- Improved Report File Format: Starting in version 9, i-net Crystal-Clear uses a zipped file format for the report templates (.rpt), similar to the OpenDocument zip file format. This new report file format was a prerequisite for new features like the Report Preview. With this format the performance has been improved especially for large reports, because the file size is smaller and it is faster. Also, with this format we are open for further additions to the report templates.
- New export formats: BMP, GIF, JPG and PNG: With version 9 it is supported to export an individual report page as an image. The following formats are supported: BMP, GIF (with at least Java 6 on the server), JPG and PNG.
With the report URL parameters zoom, width, height and background it is also possible to configure the exported image.
- New renderer for text interpretation: HTML (advanced): Fields with Text Interpretation "HTML (advanced)" now use the HTML renderer from i-net software. This fixes many problems which occurred with Swing's HTML renderer which was used before for these fields.
- Report URL parameters are disallowed by default: For security reasons, only the following parameters are allowed by default in the report URL: "prompt", "init" and "sproc". To use other parameters in the report URL, like "datasource", it is necessary to unlock them in the Configuration Manager before using it.
It is always possible to set values for all parameters in the checkProperties method on the server side. Java code samples showing this you can find in the "sample" directory of the documentation (if installed).
- Underlay Following Sections: The algorithm for "Underlay Following Sections" was rewritten to implement the correct definition. This can change the output of your reports if you were affected by bugs in the old implementation. One benefit is that you can now design reports with watermarks without any problems. If you want to create a watermark then you only need to add a first section to the report/page header and enable "Underlay Following Sections" for this section. You should place the image either in the report or the page header depending on if you want one watermark per report or one per page.
- i-net DesignerXML - Default Values: With version 9.0 it is supported to set default values for the formatting properties used for newly created elements in i-net DesignerXML.
General, font, and border properties can be set for all element types, such as database fields, summary fields, group name fields, and text objects.
Text, paragraph, and value properties can be set depending on the field type, such as String, Number, Currency, Date, Time, DateTime, and Boolean fields.
- i-net DesignerXML - Report Preview: A preview of the report will be displayed on the right side of i-net DesignerXML's File Open dialog if the report was executed at least once and saved with version 9.
- i-net DesignerXML - Signature Element: With a signature element it is possible to display signature information in the exported PDF file. The signature element is not visible in the Java Viewer or the other export formats. To use the signature element it is necessary to activate and configure the PDF signing in the i-net Crystal-Clear Configuration Manager under "Export –> Sign PDF Files".
- i-net DesignerXML - Translation Settings / Resource Bundle per report: The translation settings allows you to create, edit, remove, import, and/or export translations for a report so that it is possible to create one report for multiple languages. The translation resources will be stored in the report file and will be used during the execution of the report. To open it choose "Translations..." from the report menu.
- i-net DesignerXML - Welcome Page: The welcome page will be displayed after starting i-net DesignerXML. The available resources are displayed in different regions of this page, so that the user can access it easily.
With the checkbox at the bottom of the welcome page, the user can decide if he will see this page in the future. If it is disabled then he can display it again using the menu item in the Help menu.
- Step-By-Step Tutorials: The Step-By-Step Tutorials will guide the user through the steps of doing things in i-net DesignerXML.
The user can access the tutorials in the Welcome Page or in the Help menu.
- Setup - Improved Selection of Installation Type and Component Selection: In the first page of the setup the user can decide easily if he will install the i-net DesignerXML or i-net Crystal-Clear as report server. If the user clicks on Server installation then he can select the installation environment on the next page. In the custom installation it is still possible to install both i-net DesignerXML and the report server or servlet in one step.
i-net Crystal-Clear runtime
- New Remote Configuration Manager for online administration of i-net Crystal-Clear. It allows you to manage the server configurations from any PC.
- Improved rpt file format. - Since version 9 a zipped file format is used for the report templates (.rpt)..
- ReportReaderNet for reports designed with Crystal Reports XI R2 or higher.
- Image export formats added: PNG, JPG, BMP and GIF (Java 6 or higher).
URL Parameter options are zoom, width, height and background.
- **Start Page added. ** - It can be accessed with one of the following URLs:
http://<servername>:<port>
(for Report Servers)http://<servername>:<port>/<context>
(for Report Servlets)
- Report URL parameters deactivated by default. - For security reasons, only the following report URL parameters are allowed by default in the report URL: "prompt", "init" and "sproc". To use other parameters in the report URL, like "datasource", it is necessary to unlock them in the Configuration Manager before using it.
- New API method:
- Field.duplicate(String)
Duplicates the Field and returns the created Field with the given name. This method can only be called for copyable fields, i.e. Formula, Prompt, SQL, and Summary Fields. All other fields will throw an UnsupportedOperationException.
- Cache.getxxxAndWait methods with timeout parameter added.
- New property: For the options "report location" in the report permission settings the option "JNDI location allowed" is now available.
- Fields with Text Interpretation "HTML (advanced)" now use the HTML renderer from i-net software. This fixes many problems which occurred with Swing's HTML renderer which was used before for these fields.
- Hyperlinks on box elements supported.
- New Java Bean added: JGauge. Can be used to display gauge charts in the reports.
- HTML export: The autorefresh feature has now also been implemented for HTML export - using the parameter "autorefresh" will cause the page to be reloaded every x milliseconds, e.g. "autorefresh=10000" for having the page refresh every 10 seconds (build 9.0.130).
- HTML Parameter Request dialog translated depending on the client locale (build 9.0.155).
- On Linux/Unix the file "Listener.sh" added. It can be used to start, stop and restart the report server listener (build 9.0.170).
- Start scripts "startListener.command" and "startConfigurationManager.command" for Mac OS X added (build 9.0.170).
- Incorrect behavior of WhileReadingRecords formulas has changed.
- All formulas with evaluation time WhileReadingRecords that are used in the report are now executed before the rendering of the first section begins.
- Variables used in formulas with the WhileReadingRecords evaluation time are not reset before the rendering starts so that the variables can be used in formulas with WhilePrintingRecords evaluation time, also.
- It is no longer supported to use summary functions in WhileReadingRecords formulas. These formulas will be automatically set to WhilePrintingRecords.
- It is now possible to choose how formulas will react on empty database fields.
- Under Windows, the ReportReader tools are now located in the common Program Files folder.
- The configuration properties and their values are now logged in alphabetical order in the log output to make it easier to find a configuration setting.
- Chart:
- The handling of null values in the continuous charts was changed. The chart ignores now the null values of the category group field.
- A 'for each record' dataset configuration supports now the color formula, too.
- The report name is proposed in the save dialog of the browser if the report URL parameter "init=<export-format>" is used to export a report. Previously, the server name was proposed.
- Table alias names consisting of digits only will be written with the prefix 'z'.
- Group Selection Formula:
- Now, filter each record, not only one record per group.
- Now executed also, if there are no groups in the report.
- As soon as a configuration is changed or a new one is set, i-net Crystal-Clear automatically refreshes its settings. Before, the settings were only refreshed as soon as a report was attempted to be rendered.
- Formula errors which are shown in the report are now prefixed with the string "Formula error:" in order to avoid misunderstandings depending on the formula error message (since build 9.0.130).
- PDF export: EUDC characters will be rendered with the help of EUDC font even if the font of paragraph or field is not an EUDC font. EUDC font must have the name 'EUDC.tte' and must be located in FontPath directory. The font of the paragraph or field must be an embedded font, also (build 9.0.175).
- New API methods:
- FieldElement.setBaseURL="../../String". It is now possible to set the "Base URL" for field elements interpreted as HTML. This causes any relative links in the element to use the base URL as the base.
- ReportProperties.setReportLocale(java.util.Locale). It is now possible to set a locale that is different to the server locale and that will be used for formatting CDbl, ToText etc.
- New Formula functions:
- UnixTimeStampToDateTime: Converts a UNIX timestamp into a date/time object.
- ActualPageNumber: Returns the actual, current page number.
- SelectionLocale: Returns the servers default locale used to generate the current report.
- Excel export: The Option "fit print output to page width" is set for excel export. Thus if the width of the sheet content doesn't fit the page width, the sheet content will be automatically scaled to fit the page width.
- Postscript export: Compression of monochrome blob images supported.
- HTML export: Attributes 'scope' are written in crosstab column- and row headers for 508 Compliance.
- Property "Clear On New Request" added. If the value is true the whole cache will be cleared on next request.
- Chart:
- Combined Charts (Dual Axis Charts) supported.
- A new flag added to legend properties. This sorts the legend labels ascending or descending depending of the sort order of the second group.
- Trailing white spaces in char columns are truncated (in version 8.2.385).
- If the maximum number of errors was reached, the last error causing the canceling of the report is now displayed.
- Faster string comparison when rendering with multiple threads.
- If rendering was stopped (engine.stop) then data fetching and sorting will be stopped, also.
- Database Meta Data Cache: Availability of values improved.
- Formula Functions:
- Function TextFromFile supports URL's with protocols other than "file", e.g. "http".
- If the result of a logical operation is determined by the left operand, the right one will no longer be evaluated. Note, that even operations, that modify any data will not be executed in that case!
- Function Color now also accepts 4 parameters, the 4th being the alpha value of the color. Alternatively you can use the function RGBA.
- New parameter types added to the formula function toText so that they can use the system default formats.
- Reading very long formulas has been accelerated (in version 8.2.422).
- In some cases the configuration was unnecessarily read twice during startup of i-net Crystal-Clear. This slowed down the performance of the startup and has been fixed.
- Exception occurred while using number format property formulas in cross-tab cells, which contains the keyword "currentfieldvalue".
- "Can Grow" fields with trailing spaces would show up with an unwanted line break.
- It was not possible to translate the "Total" label in cross-tab using language resources.
- Connection leak has occurred if database connection was set with method setConnection and parameter field values were requested from the Java viewer.
- Formula function MIRR: Result of the formula function was wrong.
- ClassCastException occurred if property "Log Database Data" (CCcore file creation) was enabled.
- In case the text interpretation was set dynamically and changed throughout the report, a rare "ClassCastException: com.inet.report.PageBreakInfo cannot be cast to com.inet.report.layout.ric.RichHtmlPageBreakInfo" could occur.
- In rare cases lines and boxes were rendered incorrect if they are included in the page header or page footer of a report and that was added as sub-report.
- In rare cases, a report could have been saved incorrectly which then caused the report to be able to be loaded, but not saved again.
- Query files not found if they were set using UNC names.
- Round-up has not worked correctly for small values and all values of the Rounding property.
- It is no longer necessary for the SQL query for dynamic prompt default values to have the value and description columns be columns 1 and 2. Rather you can now name the columns "value" and "description" and their order can then be as desired.
- Database Meta Data Cache does not used database connections set with method setConnection.
- Regression: An incorrect error was thrown after the same engine was executed twice.
- PDF export: Representation of blank content was wrong. Page in PDF file was blank if total page element was empty.
- RTF export: Windows Metafile show correct line stroke with extended pen. This GDI-object is used now instead of simple pen.
- Record Selection Formula: Fix for in-Array operations used in the record selection formula. The in-Array operation will now return always false if the array is empty. This has an impact on an empty multi-value prompt for instance, which returns an empty array as well.
- Chart:
- Incorrect label of data axis by continuous date chart.
- Outline of Doughnut 2D chart was always drawn.
- The separators of ring 2D were not defined by items outline.
- The color order of chart items was dependent from legend.
- The list of legend labels from second group is now sorted by sort order of this group.
- SVG Bean (com.inet.report.beans.SVG): NullPointerException occurred.
- Sometimes a section disappeared if the Page Footer section was suppressed depending on a formula.
- RuntimeException: Field is null occurred while opening a report designed with Crystal Reports.
- Line styles of a box in a sub-report was sometimes used for a box in the main report, also.
- Web server stops responding after some errors in the record selection formula had occurred.
- TXT export: Chinese data were shifted sometimes if the data contains the Chinese character "VIII".
- ODBC driver for Excel mark all sheets as SYSTEM TABLE. Therefore no objects has been displayed in the Visual Database Wizard.
- Drill Down not worked because of an encoding problem if script language like ASP or PHP used.
- TXT export: Chinese data were shifted sometimes.
- Wrong result of DateDiff function with a DayOfWeek offset occurred if the difference was a multiple of seven days.
- IllegalArgumentException occurred while opening report file after parameter field type has changed (fixed in build 8.2.245).
- Because of an exception occurred while reading sproc parameter values for a store procedure (e.g. on Informix) the value for some stored procedure parameters was null (fixed in build 8.2.247).
- Non-ASCII characters in parameter field names are not displayed correctly in the HTML Parameter Request dialog. (in version 8.2.305).
- Endless loop occurred if Underlay Following Section was enabled for a large section (fixed in version 8.2.422).
- StackOverflowError occurred if nested if-then-else statements used in formulas (fixed in version 8.2.436).
- An endless loop could occur in rare cases if metadata cache was enabled. (fixed in version 8.2.441).
- Security issue: Using a modified report URL, it was possible to download files from the i-net Crystal-Clear web context, if the file crystal.war was unpacked (fixed in version 8.2.445).
- Excel Export:
- Cross-Tab in the .xls file was incomplete. The the first column was not exported (fixed in version 8.2.445).
- Position of the '%' symbol has not been set for log level less the WARNING (fixed in version 8.2.519).
- Data export:
- It has occurred that columns of the exported csv file contains records of multiple database fields or special fields, e.g. Page Number (fixed in version 8.2.540).
- Property "OnError_ExecuteSQL_WithoutSF" was ignored if an error occurred during execution of Order By and Where clause (fixed in version 8.2.540).
- Endless loop occurred because of java.util.WeakHashMap, which a non-thread safe object.
- Security fix to prevent cross-site scripting (XSS) (fixed in version 8.2.959).
API Changes
- Added Constants
- com.inet.report.Engine
- EXPORT_BMP
- EXPORT_GIF
- EXPORT_JPG
- EXPORT_PNG
- com.inet.report.FormulaField
- TREAT_NULL_AS_NULL
- TREAT_NULL_BY_DEFAULT
- TREAT_NULL_BY_EXCEPTION
- com.inet.report.Engine
- Added Methods
- com.inet.report.Cache
- getxxxAndWait(xxxx, "int timeout)"
- com.inet.report.Datasource
- setDataSourceConfiguration(DataSourceConfiguration)
- setDataSourceConfigurationName(String)
- com.inet.report.Engine
- setDataSourceConfigurationName(String)
- com.inet.report.Field
- duplicate(String)
- com.inet.report.FormulaField
- checkContext()
- checkFormula(String, boolean, Engine, Field, Object, int, int)
- duplicate(String)
- getNullBehavior()
- setNullBehavior(int)
- com.inet.report.Line
- setHyperlinkUrl="../../String"
- setHyperlinkUrlFormula(FormulaField)
- com.inet.report.PromptField
- duplicate(String)
- com.inet.report.ReportProperties
- isCCFormat()
- getXMLMajorVersion()
- getXMLMinorVersion()
- com.inet.report.SummaryInfo
- getThumbnail()
- setThumbnail(Image)
- com.inet.report.SQLField
- duplicate(String)
- com.inet.report.SummaryField
- duplicate(String)
- com.inet.report.TableSource
- getDatabaseField(int)
- com.inet.report.Cache
- Methods and Constants deprecated as of Version 9
- com.inet.report.Datasource
- setup(String)
- setup(DataSourceConfiguration)
- com.inet.report.RDC
- loadEngine(File, BufferedReader)
- loadEngine(File, BufferedReader, Properties)
- Engine loadEngine(File, BufferedReader, String)
- saveEngine(PrintWriter, Engine)
- com.inet.report.Datasource
- Removed Deprecated Methods and Constants
- com.inet.report.schedule.Scheduler
- getEmailPassword()
- setEmailPassword(String)
- getEmailPop3Host()
- setEmailPop3Host(String)
- getEmailSender()
- setEmailSender(String)
- getEmailSmtpHost()
- setEmailSmtpHost(String)
- getEmailUser()
- setEmailUser(String)
- com.inet.report.AbstractLineElement
- getExtentToBottomOfSectionWhenPrinting()
- com.inet.report.AbstractValueElement
- getDateFirstSeperator()
- setDateFirstSeperator(String)
- getDateFirstSeperatorFormula()
- setDateFirstSeperatorFormula(FormulaField)
- getDatePrefixSeperator()
- setDatePrefixSeperator(String)
- getDatePrefixSeperatorFormula()
- setDatePrefixSeperatorFormula(FormulaField)
- getDateSecondSeperator()
- setDateSecondSeperator(String)
- getDateSecondSeperatorFormula()
- setDateSecondSeperatorFormula(FormulaField)
- getDateSuffixSeperator()
- setDateSuffixSeperator(String)
- getDateSuffixSeperatorFormula()
- setDateSuffixSeperatorFormula(FormulaField)
- getDateTimeSeperator()
- setDateTimeSeperator(String)
- getDateTimeSeperatorFormula()
- setDateTimeSeperatorFormula(FormulaField)
- getDayOfWeekSeperator()
- setDayOfWeekSeperator(String)
- getDayOfWeekSeperatorFormula()
- setDayOfWeekSeperatorFormula(FormulaField)
- getDecimalSeperatorsSymbol()
- setDecimalSeperatorsSymbol(String)
- getDecimalSeperatorsSymbolFormula()
- setDecimalSeperatorsSymbolFormula(FormulaField)
- getHourMinuteSeperator()
- setHourMinuteSeperator(String)
- getHourMinuteSeperatorFormula()
- setHourMinuteSeperatorFormula(FormulaField)
- getMinuteSecondSeperator()
- setMinuteSecondSeperator(String)
- getMinuteSecondSeperatorFormula()
- setMinuteSecondSeperatorFormula(FormulaField)
- getThousandSeperatorsSymbol()
- setThousandSeperatorsSymbol(String)
- getThousandSeperatorsSymbolFormula()
- setThousandSeperatorsSymbolFormula(FormulaField)
- getUseThousandSeperators()
- setUseThousandSeperators(boolean)
- getUseThousandSeperatorsFormula()
- setUseThousandSeperatorsFormula(FormulaField)
- com.inet.report.BorderProperties
- getBottomLineStyleFormel()
- getTopLineStyleFormel()
- com.inet.report.Chart
- CUSTOM_NUMER_FORMAT
- getSort()
- setdataValuesMinMax(double, double)
- setSort(int)
- com.inet.report.ChartFormatProperties
- getDateFirstSeperator()
- setDateFirstSeperator(String)
- getDateFirstSeperatorFormula()
- setDateFirstSeperatorFormula(FormulaField)
- getDatePrefixSeperator()
- setDatePrefixSeperator(String)
- getDatePrefixSeperatorFormula()
- setDatePrefixSeperatorFormula(FormulaField)
- getDateSecondSeperator()
- setDateSecondSeperator(String)
- getDateSecondSeperatorFormula()
- setDateSecondSeperatorFormula(FormulaField)
- getDateSuffixSeperator()
- setDateSuffixSeperator(String)
- getDateSuffixSeperatorFormula()
- setDateSuffixSeperatorFormula(FormulaField)
- getDateTimeSeperator()
- setDateTimeSeperator(String)
- getDateTimeSeperatorFormula()
- setDateTimeSeperatorFormula(FormulaField)
- getDayOfWeekSeperator()
- setDayOfWeekSeperator(String)
- getDayOfWeekSeperatorFormula()
- setDayOfWeekSeperatorFormula(FormulaField)
- getDecimalSeperatorsSymbol()
- setDecimalSeperatorsSymbol(String)
- getDecimalSeperatorsSymbolFormula()
- setDecimalSeperatorsSymbolFormula(FormulaField)
- getHourMinuteSeperator()
- setHourMinuteSeperator(String)
- getHourMinuteSeperatorFormula()
- setHourMinuteSeperatorFormula(FormulaField)
- getMinuteSecondSeperator()
- setMinuteSecondSeperator(String)
- getMinuteSecondSeperatorFormula()
- setMinuteSecondSeperatorFormula(FormulaField)
- getThousandSeperatorsSymbol()
- setThousandSeperatorsSymbol(String)
- getThousandSeperatorsSymbolFormula()
- setThousandSeperatorsSymbolFormula(FormulaField)
- getUseThousandSeperators()
- setUseThousandSeperators(boolean)
- getUseThousandSeperatorsFormula()
- setUseThousandSeperatorsFormula(FormulaField)
- com.inet.report.CrossTab
- getColTotalOnLeft()
- com.inet.report.CrossTabCell
- setHeightByFieldElements()
- setWidthByFieldElement(int)
- com.inet.report.DatabaseTables
- addSproc(String, String[], int[])
- addSproc(String, String, String[], int[])
- addSqlSource(String)
- addSqlSource(String, String)
- getDistinct()
- getPassword()
- getUser()
- setCatalog(String)
- setColumnNames(String, String[])
- setColumnTypes(String, int[])
- setDistinct(boolean)
- setDll(String)
- setHost(String)
- setPassword(String)
- setSchema(String)
- setURL="../../String"
- setUser(String)
- com.inet.report.Element
- getBottomLineStyleFormel()
- getToolTipsTextFormel()
- getTopLineStyleFormel()
- getWebSiteAddressFormel()
- setWebSiteAddressFormula(FormulaField)
- com.inet.report.Engine
- getCatalog()
- getConnection()
- getDll()
- getHost()
- getPassword(int)
- getPasswords()
- getSchema()
- getURL="changes_9.0.html" data-contextid="changes-in-release-90" data-rawid="documentation:clear-reports:release-notes:en:releases:changes_9.0"
- getUser(int)
- getUsers()
- setDll(String)
- setHost(String)
- setPassword(String, int)
- setPasswords(Vector)
- setSql(String, boolean)
- setURL="../../String"
- setUser(String, int)
- setUsers(Vector)
- com.inet.report.Fields
- addDatabaseField(String)
- addSortField( field, String)
- com.inet.report.FormulaField
- checkFormula(String, boolean, Engine, Field, Object, boolean)
- com.inet.report.GeneralProperties
- getToolTipsTextFormel()
- com.inet.report.HyperlinkProperties
- getWebSiteAddressFormel()
- setWebSiteAddressFormula(FormulaField)
- com.inet.report.JavaBean
- getBeanProperty(String)
- com.inet.report.LineProperties
- getExtentToBottomOfSectionWhenPrinting()
- com.inet.report.SortField
- setSortDirectionFormula(String)
- com.inet.report.TableSource
- setColumnName(int idx, String)
- setColumnType(int, int)
- com.inet.report.ValueProperties
- getDateFirstSeperator()
- setDateFirstSeperator(String)
- getDateFirstSeperatorFormula()
- setDateFirstSeperatorFormula(FormulaField)
- getDatePrefixSeperator()
- setDatePrefixSeperator(String)
- getDatePrefixSeperatorFormula()
- setDatePrefixSeperatorFormula(FormulaField)
- getDateSecondSeperator()
- setDateSecondSeperator(String)
- getDateSecondSeperatorFormula()
- setDateSecondSeperatorFormula(FormulaField)
- getDateSuffixSeperator()
- setDateSuffixSeperator(String)
- getDateSuffixSeperatorFormula()
- setDateSuffixSeperatorFormula(FormulaField)
- getDateTimeSeperator()
- setDateTimeSeperator(String)
- getDateTimeSeperatorFormula()
- setDateTimeSeperatorFormula(FormulaField)
- getDayOfWeekSeperator()
- setDayOfWeekSeperator(String)
- getDayOfWeekSeperatorFormula()
- setDayOfWeekSeperatorFormula(FormulaField)
- getDecimalSeperatorsSymbol()
- setDecimalSeperatorsSymbol(String)
- getDecimalSeperatorsSymbolFormula()
- setDecimalSeperatorsSymbolFormula(FormulaField)
- getHourMinuteSeperator()
- setHourMinuteSeperator(String)
- getHourMinuteSeperatorFormula()
- setHourMinuteSeperatorFormula(FormulaField)
- getMinuteSecondSeperator()
- setMinuteSecondSeperator(String)
- getMinuteSecondSeperatorFormula()
- setMinuteSecondSeperatorFormula(FormulaField)
- getThousandSeperatorsSymbol()
- setThousandSeperatorsSymbol(String)
- getThousandSeperatorsSymbolFormula()
- setThousandSeperatorsSymbolFormula(FormulaField)
- getUseThousandSeperators()
- setUseThousandSeperators(boolean)
- getUseThousandSeperatorsFormula()
- setUseThousandSeperatorsFormula(FormulaField)
- com.inet.report.schedule.Scheduler
- Added Methods
- FieldElement.getBaseUrl="changes_8.2.html" data-contextid="changes-in-release-82" data-rawid="documentation:clear-reports:release-notes:en:releases:changes_8.2"
- FieldElement.setBaseURL="../../String"
- FieldElement.getBaseUrlFormula()
- FieldElement.setBaseUrlFormula(FormulaField)
- ReportProperties.setReportLocale(java.util.Locale)
- ReportProperties.getReportLocale()
External Libraries
- Swing-Layout (swing-layout.jar) version 1.2 added.
- SwingWorker (swing-worker.jar) version 1.0.3 added.
- Echo2 version 2.1 added (for Remote Configuration).
- JFreeChart updated with version 1.0.12.
- JGauge Bean added.
- SVGSalamder Bean updated.
- Lucene Search Engine (lucene-core.jar) version 2.4.1 added.
- Milton webdav API version 1.4.2 added.
- Mimetype utilities version 2.1 added.
- slf4j version 1.5.6 added.
i-net Crystal-Clear - Java Viewer
- New API methods:
- com.inet.viewer.ReportView: setAutoRefresh(int)
Specifies an auto-refresh cycle for a Report View, causing it to be refreshed every so often unless the report view was canceled or is currently being reloaded anyways. Also, introduced new URL parameter "autorefresh=xxxx" - allows the auto-refresh cycle to be specified (in milliseconds) via URL parameter.
- com.inet.viewer.SwingReportViewer.setDefaultSetting
Enables you to set certain settings for the viewer. For example you can set the default page view to be continuous, or a certain zoom level to be taken by default.
The keys and values which can be set are in the class com.inet.viewer.props.DefaultSetting.
- com.inet.viewer.SwingReportViewer.setCustomPromptEditor(String, int)
Allows you to specify not only the name of the prompt you wish to register a stomPromptEditor for, but also the value type the prompt must have in order for your CustomPromptEditor to be used.
- com.inet.viewer.ViewerContext.showUrl="../../String-Properties"
It is now possible to implement your own "showURL" method for the viewer which is called any time a user clicks on a link in a report (since build 9.0.130).
- Export dialog: Image export formats (JPG, PNG, BMP, GIF) added.
- Print dialog: It is now possible to specify pages and page ranges that will be print separated by commas.
- Reports saved with an embedded viewer (JRA/JAR) now use the System L&F in order to keep the same L&F as used in the Viewer applet. (build 9.0.130).
- Performance of the Java report viewer has been improved on Mac OS X and Linux with Java 5.
- In the viewer prompt dialog panel for setting date ranges, the default calendar week was the first week of the range originally chosen, this has been changed to be the last completed calendar week by default.
- Hairlines in reports designed with Crystal Reports were incorrectly interpreted, also double hairlines were displayed as a single line only.
- Selecting text and copying snapshots in the viewer had performance issues in Java 1.6 which were fixed by no longer using XOR rectangles but rather transparent areas.
- On a dual monitor system, the calendar in the prompt dialog would show on the edge of the left monitor if the viewer was showing on the right monitor. Instead it is now shown at the correct spot.
- When using ASP with the Java Viewer, the report viewer would send a request that ASP would have a problem with (of the form http://host/?&report=...").
- The cursor for selecting text in the viewer was slightly off center (fixed in build 9.0.130).
- If a viewer tab was to be closed by clicking on the tab's "X" with the middle mouse button, an IndexOutOfBoundsException occurred internally and was written to the log (fixed in build 9.0.130).
- BMP, GIF, JPG and PNG export was not possible if Java report viewer was used as applet (fixed in build 9.0.130).
- It is supported to change the language of the Java viewer by changing the Locale.
- NEW API: SwingReportViewer now has two new methods: setPrinterDefaultFormatHandling and getPrinterDefaultFormatHandling. Changing the default handling enables you to have a report designed for Letter, but printed on an A4 printer (or vice versa), have the paper size set to the printer default by default rather than to the paper size designed in the report. See the API documentation for more info.
- Russian translation of the GUI added (in version 8.2.305).
- It is possible to scroll between pages with the mouse wheel. This behavior was optimized to not switch pages with such a high sensitivity.
- Excel export: The option "fit print output to page width" is set for excel export. Thus if the width of the sheet content doesn't fit the page width, the sheet content will be automatically scaled to fit the page width.
- Parameter Fields directly placed into the report now use the "ToText" function for their string representation, which especially improves the representation of date range prompts.
- Various bugs regarding searching with regular expressions in the Java viewer have occurred.
- HTML errors coming from the server are no longer shown in a garbled manner in the viewer's error dialog, but as an HTML-formatted error box.
- If a prompt field was set to accept default values only but had no default values, it would show up as an not editable empty field. Now it accepts a user entry in this case.
- When setting empty default values and "default values only", some prompt issues could occur such as an empty prompt box.
- Pressing "More Info" in an error box coming from the report viewer within the Designer has no effect.
- A rare IndexOutOfBoundsException occurred in the viewer when attempting to fetch a report for which the client had no reading permissions.
- Links to "file:" files in a report did not work in the viewer applet due to Java security issues. This has been fixed for Java 6.
- Landscape reports were not printed correctly if "2 Pages per Sheet" was set in the print dialog of the Java report viewer.
- In some cases the state of the PrinterJobProgress was wrong after an error occurred. Therefore the PrinterJobProgress has not returned the error.
- A NullPointerException in RichTextLayouter could occur in rare cases for elements with mixed text and field parts extending over multiple lines.
- A memory leak in the viewer occurred when opening and closing individual report viewers.
- Prompt request dialog was not displayed after refresh, when using new URLRenderData, if "promptonrefresh=true" was given as a URL property instead of being set via API.
- Screen location of the calendar element was wrong sometimes on systems with dual monitors.
- NullPointerException occurred when export button is pressed (export dialog doesn't appear at all) (fixed in 8.2.385).
- Attribut "Permissions" was missing in the manifest file of CC-Viewer.jar. This is required since Java 7 update 45.
API Changes
- Added Class
- com.inet.viewer.props.DefaultSetting
- Added Methods
- com.inet.viewer.ReportView
- setAutoRefresh(int)
- com.inet.viewer.ReportViewer
- setCustomPromptEditor(String, int, CustomPromptEditor)
- com.inet.viewer.SwingReportViewer
- SwingReportViewer(ViewerContext)
- setCustomPromptEditor(String, int, CustomPromptEditor)
- getDefaultSetting(DefaultSetting.Key)
- setDefaultSetting(DefaultSetting.Key, DefaultSetting)
- com.inet.viewer.SwingViewerContext
- getViewer()
- setViewer(SwingReportViewer)
- com.inet.viewer.ViewerContext
- showUrl="../../String-Properties"
- com.inet.viewer.ReportView
- Methods and Constants deprecated as of Version 9
- com.inet.viewer.ReportViewer
- setCustomPromptEditor(String, CustomPromptEditor)
- com.inet.viewer.ReportViewer
- Added Methods
- SwingReportViewer.getPrinterDefaultFormatHandling()
- SwingReportViewer.setPrinterDefaultFormatHandling(int)
i-net DesignerXML
- Welcome page added.
- Step-By-Step Tutorials added.
- Default Values for fonts etc. supported. - It is now supported to set default values for the formatting properties used for newly created elements in i-net DesignerXML.
- Report Preview in the file open dialog added.
- Progress Bar added. - The i-net DesignerXML now shows a progress bar when a process may be taking a while, for example when attempting a database connection or when loading a large report. This process can also be canceled at any time. This fixes the old behavior which was to lock up the designer until the processes were finished.
- Field browser now supports duplicating and renaming of formula, prompt, sql expression and summary fields.
- It is now possible to use a sum in other sums. Note the sums should be created in the correct order.
- When opening up a property formula, possible constants which can be returned for the formula are displayed as a comment in the formula dialog.
- **Chart Properties: ** - It is now possible to set seconds in the calendar.
- **Formula Editor: ** - The marking of incorrect parts of the formula has been improved.
- **Subreport Links: ** - It is now possible to change the width of the tree in the ort links dialog.
- **Parameter Properties: ** - There are 3 new keyboard shortcuts within the Designer's Parameter Field Properties dialog: Ctrl+N creates a new prompt, Alt+Up moves a prompt up within the list, Alt+Down moves a prompt down within the list.
- The designer now has an internal backup system while overwriting reports while saving in order to prevent data loss if the saving of a report does not finish correctly (build 9.0.130).
- Document Properties: - Property "Report Locale" added to the document properties (build 9.0.170).
- New command line parameter "–new" added to start the i-net DesignerXML with a new report
- On Mac OS X the CMD key is now used for menu items and features instead of the STRG or CTRL key (build 9.0.170).
- Start script "startDesigner.command" for Mac OS X added (build 9.0.170).
- Hairline was not displayed in Design view.
- Simply opening up the Record Selection Formula Dialog caused the database to be unnecessarily contacted, which could take a while especially if the database connection was slow.
- Visual Database Wizard:
- An invalid connection could lead to the designer hanging for 20+ seconds after right-clicking on a table.
- The context menu commands "Edit SQL" and "Show SQL" were not displayed for SQL command table sources.
- If a manual SQL statement was provided which ended with a semicolon, an error occurred which has now been fixed: unnecessary semicolons at the end of manual SQL statements are now ignored (fixed in build 9.0.130).
- Parameter Properties: The OK button was grayed out when two prompts had the same name, but was not activated again after making the names unique again.
- In rare cases in reports using summary functions in formulas, required summary fields could be removed from the report, leading to errors and blank fields.
- Opening a JRA file in the designer could lead to an unhandled NullPointerException (fixed in build 9.0.130).
Version 8.2
- Group Dialog:
- Second original sort order "Original Order Collect Values" now available. This collects only the same values located nearby, and begins a new group whenever the value changes in the group field.
- BySummaryOrder now accepts values in percent.
- Error bar added to the status bar. The error bar shows the last errors which occurred when previewing the report.
- The fonts that are located in the "Font Path" - directory for embedded fonts will be registered. Thus these fonts will be show at design time additionally to the installed fonts.
- It was not possible to open the Help dialog while it is already opened and minimized.
- Under Linux, running the i-net DesignerXML with limited permissions would lead to a Preferences warning being printed to the log every 30 seconds.
- Pressing "More Info" in an error box coming from the report viewer within the Designer has no effect.
- In the German version of the designer, there were some English labels mixed in with German labels in the formula editor.
- ArrayIndexOutOfBoundsException occurred if an opened sub-report was deleted and then this was undone.
- A report with an error in a formula could be loaded in the designer with the formula having a green checkbox though it had errors.
- Various L&F bugs with the Nimbus L&F were occurred.
- Parameter Field dialog:
- Various GUI issues occurred.
- It was possible to define illegal parameter field default values in the Parameter Field dialog, leading to errors when attempting to run the report.
- There were some localization issues for entering limit values in the designer prompt dialog.
- When setting a dynamic prompt with a manual SQL statement for a report with more than one data source, the data source combo box for choosing the data source was not showing, forcing the query to be run on the first data source only.
- Page Layout dialog: Various GUI issues occurred.
- Property dialogs: If all border types were set via property formula, the dialog would still show the border as being same for all edges.
- Number Format dialog: It was possible to select currency type for non-currency numbers.
- Formula Editor: Error message was displayed if constant "AdvancedHtmlText" was used in a property formula.
- Field reference was incorrect if field was used within an array in a formula.
- i-net DesignerXML Help: tree with the search results contained duplicate entries.
- ArrayIndexOutOfBoundsException occurred while opening a report.
- NullPointerException (at com.inet.designer.o.componentResized) occurred at random situations.
- Additional new lines and empty text parts were added to a text objects.
- Regression: Method BasicDesignerDataModel.loadReport(Component) was removed from API.
- Screen location of the calendar element was wrong sometimes on systems with dual monitors.
- Group Dialog: Report error "Wrong group number" occurred when trying to remove groups in sub-report.
- Designer did not start with JNLP (fixed in version 8.2.422).
- Regression: It was not possible to open the Page Layout dialog for a sub report to configure multi-column or mailing label layout (fixed in version 8.2.469).
- Error box occurred on Windows 7 during start of i-net DesignerXML if node "com\inet\designer\classes" does not exist in Java preferences (fixed in 8.2.807).
API Changes
- Added Methods
- com.inet.designer.DesignerDataModel
- loadReportFrom(Component, File)
- com.inet.designer.DesignerDataModel
External Libraries
- Step-By-Step Tutorial (SBSTutorial.jar) version 1.0 added.
Setup
- Improved selection of installation type and component selection.
- ISAPI has been replaced with ASP.NET.
- Registration of file extensions ".rpt" and ".jra" possible during setup.
Fixed Bugs
i-net Crystal-Clear-Runtime
- ArrayIndexOutOfBoundsException occurred if report was designed on Informix stored procedure.
- Lines and boxes spanning multiple sections with enabled "Extends to Bottom of Page" were sometimes not displayed correctly.
- Error message "The page "x" is out of range (y)" occurred under certain conditions.
- The "null behavior" of formulas was incorrectly read from Crystal Reports templates.
- A rare NullPointerException could occur internally when opening the scheduler Servlet on a Tomcat 5.5 system.
- A NullPointerException occurred when a report was incorrectly saved with two summary fields having the same name.
- There were line break issues when prompts were used as field parts and were directly connected to text parts with no spaces in between.
- XLS export: Property "firstgroupassheets" has not worked correctly (no new sheets were created for the group instances) if multiple section has been suppressed in the report.
- In sub reports without can grow there were overlaps and the border of the sub report has been overwritten.
- The size of sub reports is not reduced if the designed space is larger than needed.
- Detail section with enabled "Underlay Following" slipped behind group footer.
- On Unix/Linux systems, a BackingStoreException could be fired every 30 seconds if write privileges were not available for the user or system preferences.
- The ToText function used the server locale instead of the client locale for creating a string for date ranges. It now uses the client locale.
- JRA/JAR export did not work with report URL parameter "init".
- The method "Datasource.getDatabase()" could lead to a "Connection leak", meaning Connection objects were created but not closed. This could lead to timeouts and other problems later on.
- It was possible to call engine.getDatabaseTables() before setReportFile was called.
- Under some circumstances, parameter fields which were only used in the Record Selection Formula were not requested from the user when running the report.
- NumberFormatException while reading report file occurred during thread problems (fixed in build 9.0.113).
- IllegalArgumentException occurred while opening report file after parameter field type has changed (fixed in build 9.0.120).
- Because of an exception occurred while reading sproc parameter values for a store procedure (e.g. on Informix) the value for some stored procedure parameters was null (fixed in build 9.0.121).
- Cascading parameter fields were incorrectly read from reports saved since version 9.0 (fixed in build 9.0.130).
- ReportBridge and PHP sample has not worked correctly with current i-net Crystal-Clear version
- Formula function "lookslike" does not detect string "bcdbcde" by the pattern "bcd *?" (fixed in build 9.0.170).
- JavaVM crashed on a Windows XP machine if Java 6 was used and after opening a document (e.g. PDF file) or browsing to an URL ="../../fixed-in-build-9.0.170".
- Under some circumstances, parameter fields which were only used in SQL expression fields were not requested from the user when running the report.
- ReportReaderNet has created corrupt rpt files with diagonal lines, invalid xml etc. (fixed in build 9.0.170).
- An report error occurred if a formula contains very long integer numbers. The formula parser is now able to read very long integer numbers (fixed in build 9.0.175).
i-net Scheduler
- It is now possible to enable/disable the scheduler web interface without restarting the scheduler.
- Error Handling improved.
- Adding a "cache action" while using memory cache was disabling the combo box. So it was necessary to leave the "add action" page to add another action. Now, this can be done in one step without going back.
- Temporary files for email action were sometimes not deleted. Additionally these temporary files were created in the temp directory instead of the current working directory of the scheduler.
- File Actions does not work because of an exception in the report cache (fixed in 8.2.464).
Fixed Bugs
Script Authentication
Version 21.10
Fixed Bugs
- Fixes badly formatted cookies sent to the login script.
Setup Wizard
Version 24.4
- When execution of setup is required, it displays a banner for that in all applications.
Version 23.4
- When installing on a drive other than C:\ (Windows) then the program data directory can be changed during the setup.
Version 22.4
- Setup now works properly when updating a single or multiple plugins via the plugin store. Duplicate executions and confusing messages will be avoided.
- When updating the product-core plugin, Setup now updates all updateable plugins from the store.
Statistics
Version 23.4
- The event log backup job can optionally include previously archived event entries when using a file persistence.
Version 21.10
- Date and time values now respect the client's time zone when displayed
- Memory for user and reports now store 20,000 entries as maximum to limit memory consumption
Store
Version 24.4
- Up to 5 teasers are displayed at the top of the store, which are automatically rotated through.
- The description of plugins, as well as the changelog and migration information is added to the documentation in the help.
- Setup will no longer update plugins automatically when only a minor update of the core product (i.e. 22.4.120 to 22.4.198) was performed.
Version 23.10
- The store now shows a link to the full changelog and migration information history in the plugin details.
- In the plugin changelog history you can select a specific version to jump to that section.
- In the help, when opening the release information page, there is now a dropdown to select a version from which, up until the current one, the release changes are displayed.
Security Fixes
- Plugin sideload is disabled if permissions are not restricted in the system.
Version 22.4
- Allow navigating through screenshots with the cursor keys. Escape key will close the preview.
Version 21.10
- The plugin store is new and replaces the configuration of the plugins in the configuration
- New versions and features are requested from the public plugin store and can be installed
- On future updates, the setup will automatically update all activated plugins from the store
SVG image embedding
Version 24.4
- Added JSVG library to render SVG files, e.g. for report files.
- Added compatibility level option for previous version 23.10 that allows to switch back to the Batik SVG renderer.
Version 23.10
- Updated the internal Batik libraries to version 1.16.
Version 22.10
- Updated the internal Batik libraries to version 1.14.
System Core
Version 24.10
- Docker Images are available for amd64 as well as arm64v8 platforms. That means that pulling an image by it's tag will automatically load a platform specific docker image.
- Remote Recovery can also be used via HTTPS if it is configured in the server.
Version 24.4
- The bundled Eclipse Temurin Java VM was updated to version 21.0.3.
- Added support for Java version 22
Fixed Bugs
- User search result entries will avoid displaying the same value in the top and bottom lines.
- Fixes broken Digist authentication with Chrome browser.
- Fixed a bug breaking the User Manager web interface if the country of the server is not valid.
- Fixed a bug with searching digits and number data types which has produce the error:
IllegalArgumentException: Empty left and right operand in search condition
- Fixed a deadlock with OpenJ9 Java VM when starting the server via API.
- Fixed embedded fonts for .NET viewer (error message: Could not create font with ID 1).
- OAuth authentication (Azure) with Safari browser was not possible
- Permission check for the WebAPI has not worked in connection with the default Windows Authentication
- URL was wrong after signup with any OAuth authentication provider like Azure and if a reverse proxy (like default.aspx for IIS) was used
Security Fixes
- Security Update for CVE-2024-30172
- ** RESERVED ** This candidate has been reserved by an organization or individual that will use it when announcing a new security problem. When the candidate has been publicized, the details for this candidate will be provided.
Version 23.10
- When searching "Date field:<date", the day of the date is no longer included in the search result.
- Added DynamoDB persistence property TablePrefix.
- All web server responses with a status code of 400 or higher are stored in an additional event log. They can be checked with the statistics and diagnostics plugins.
- The order of authentication providers without settings can be changed in the Configuration Manager.
- Added
security.txt
configuration option. The content of this option will be sent to clients requesting the/.well-known/security.txt
file. - The guest account no longer has administrative permissions for security reasons, even if there are no restrictions on permissions (systempermission.enabled=false). Administrative permissions of the guest account must be explicitly activated if required (guest.full.permissions=true).
- Does not override the system property "javax.net.ssl.trustStoreType" if already set.
- Security Update for CVE-2023-35116
- An issue was discovered jackson-databind thru 2.15.2 allows attackers to cause a denial of service or other unspecified impacts via crafted object that uses cyclic dependencies.
- Security Update for CVE-2018-1002208
- SharpZipLib before 1.0 RC1 is vulnerable to directory traversal, allowing attackers to write to arbitrary files via a ../ (dot dot slash) in a Zip archive entry that is mishandled during extraction. This vulnerability is also known as 'Zip-Slip'.
- Security Update for CVE-2021-32840
- SharpZipLib is a Zip, GZip, Tar and BZip2 library. Prior to version 1.3.3, a TAR file entry
../evil.txt
may be extracted in the parent directory ofdestFolder
. This leads to arbitrary file write that may lead to code execution. The vulnerability was patched in version 1.3.3.
- SharpZipLib is a Zip, GZip, Tar and BZip2 library. Prior to version 1.3.3, a TAR file entry
- Security Update for CVE-2023-5072
- Denial of Service in JSON-Java versions up to and including 20230618. A bug in the parser means that an input string of modest size can lead to indefinite amounts of memory being used.
- Security Update for CVE-2023-44487
- The HTTP/2 protocol allows a denial of service (server resource consumption) because request cancellation can reset many streams quickly, as exploited in the wild in August through October 2023.
- Security Update for CVE-2023-22102
- Vulnerability in the MySQL Connectors product of Oracle MySQL (component: Connector/J). Supported versions that are affected are 8.1.0 and prior. Difficult to exploit vulnerability allows unauthenticated attacker with network access via multiple protocols to compromise MySQL Connectors. Successful attacks require human interaction from a person other than the attacker and while the vulnerability is in MySQL Connectors, attacks may significantly impact additional products (scope change). Successful attacks of this vulnerability can result in takeover of MySQL Connectors. CVSS 3.1 Base Score 8.3 (Confidentiality, Integrity and Availability impacts). CVSS Vector: (CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:C/C:H/I:H/A:H).
- Security Update for CVE-2023-34062
- In Reactor Netty HTTP Server, versions 1.1.x prior to 1.1.13 and versions 1.0.x prior to 1.0.39, a malicious user can send a request using a specially crafted URL that can lead to a directory traversal attack.
- Specifically, an application is vulnerable if Reactor Netty HTTP Server is configured to serve static resources.
- Security Update for CVE-2024-25710
- Loop with Unreachable Exit Condition ('Infinite Loop') vulnerability in Apache Commons Compress.This issue affects Apache Commons Compress: from 1.3 through 1.25.0.
- Security Update for CVE-2024-22201
- Jetty is a Java based web server and servlet engine. An HTTP/2 SSL connection that is established and TCP congested will be leaked when it times out. An attacker can cause many connections to end up in this state, and the server may run out of file descriptors, eventually causing the server to stop accepting new connections from valid clients. The vulnerability is patched in 9.4.54, 10.0.20, 11.0.20, and 12.0.6.
- Security Update for CVE-2023-51775
- The jose4j component before 0.9.4 for Java allows attackers to cause a denial of service (CPU consumption) via a large p2c (aka PBES2 Count) value.
- Security Update for CVE-2024-30172
- ** RESERVED ** This candidate has been reserved by an organization or individual that will use it when announcing a new security problem. When the candidate has been publicized, the details for this candidate will be provided.
Version 23.4
- Eventlog entries are also written in Recovery Manager.
- Configuration action in Login category added to reset authentication group members.
- Security Update for CVE-2022-36033
- jsoup is a Java HTML parser, built for HTML editing, cleaning, scraping, and cross-site scripting (XSS) safety. jsoup may incorrectly sanitize HTML including
javascript:
URL expressions, which could allow XSS attacks when a reader subsequently clicks that link. If the non-defaultSafeList.preserveRelativeLinks
option is enabled, HTML includingjavascript:
URLs that have been crafted with control characters will not be sanitized. If the site that this HTML is published on does not set a Content Security Policy, an XSS attack is then possible. This issue is patched in jsoup 1.15.3. Users should upgrade to this version. Additionally, as the unsanitized input may have been persisted, old content should be cleaned again using the updated version. To remediate this issue without immediately upgrading: - disableSafeList.preserveRelativeLinks
, which will rewrite input URLs as absolute URLs - ensure an appropriate Content Security Policy is defined. (This should be used regardless of upgrading, as a defence-in-depth best practice.)
- jsoup is a Java HTML parser, built for HTML editing, cleaning, scraping, and cross-site scripting (XSS) safety. jsoup may incorrectly sanitize HTML including
- Security Update for CVE-2020-13946
- In Apache Cassandra, all versions prior to 2.1.22, 2.2.18, 3.0.22, 3.11.8 and 4.0-beta2, it is possible for a local attacker without access to the Apache Cassandra process or configuration files to manipulate the RMI registry to perform a man-in-the-middle attack and capture user names and passwords used to access the JMX interface. The attacker can then use these credentials to access the JMX interface and perform unauthorised operations. Users should also be aware of CVE-2019-2684, a JRE vulnerability that enables this issue to be exploited remotely.
- Security Update for CVE-2022-42003
- In FasterXML jackson-databind before 2.14.0-rc1, resource exhaustion can occur because of a lack of a check in primitive value deserializers to avoid deep wrapper array nesting, when the UNWRAP_SINGLE_VALUE_ARRAYS feature is enabled. Additional fix version in 2.13.4.1 and 2.12.17.1
- Security Update for CVE-2022-31684
- Reactor Netty HTTP Server, in versions 1.0.11 - 1.0.23, may log request headers in some cases of invalid HTTP requests. The logged headers may reveal valid access tokens to those with access to server logs. This may affect only invalid HTTP requests where logging at WARN level is enabled.
- Security Update for CVE-2022-41946
- pgjdbc is an open source postgresql JDBC Driver. In affected versions a prepared statement using either
PreparedStatement.setText(int, InputStream)
orPreparedStatemet.setBytea(int, InputStream)
will create a temporary file if the InputStream is larger than 2k. This will create a temporary file which is readable by other users on Unix like systems, but not MacOS. On Unix like systems, the system's temporary directory is shared between all users on that system. Because of this, when files and directories are written into this directory they are, by default, readable by other users on that same system. This vulnerability does not allow other users to overwrite the contents of these directories or files. This is purely an information disclosure vulnerability. Because certain JDK file system APIs were only added in JDK 1.7, this this fix is dependent upon the version of the JDK you are using. Java 1.7 and higher users: this vulnerability is fixed in 4.5.0. Java 1.6 and lower users: no patch is available. If you are unable to patch, or are stuck running on Java 1.6, specifying the java.io.tmpdir system environment variable to a directory that is exclusively owned by the executing user will mitigate this vulnerability.
- pgjdbc is an open source postgresql JDBC Driver. In affected versions a prepared statement using either
- Security Update for CVE-2021-37533
- Prior to Apache Commons Net 3.9.0, Net's FTP client trusts the host from PASV response by default. A malicious server can redirect the Commons Net code to use a different host, but the user has to connect to the malicious server in the first place. This may lead to leakage of information about services running on the private network of the client. The default in version 3.9.0 is now false to ignore such hosts, as cURL does. See https:*issues.apache.org/jira/browse/NET-711.
- Security Update for CVE-2022-23494
- tinymce is an open source rich text editor. A cross-site scripting (XSS) vulnerability was discovered in the alert and confirm dialogs when these dialogs were provided with malicious HTML content. This can occur in plugins that use the alert or confirm dialogs, such as in the
image
plugin, which presents these dialogs when certain errors occur. The vulnerability allowed arbitrary JavaScript execution when an alert presented in the TinyMCE UI for the current user. This vulnerability has been patched in TinyMCE 5.10.7 and TinyMCE 6.3.1 by ensuring HTML sanitization was still performed after unwrapping invalid elements. Users are advised to upgrade to either 5.10.7 or 6.3.1. Users unable to upgrade may ensure the theimages_upload_handler
returns a valid value as per the images_upload_handler documentation.
- tinymce is an open source rich text editor. A cross-site scripting (XSS) vulnerability was discovered in the alert and confirm dialogs when these dialogs were provided with malicious HTML content. This can occur in plugins that use the alert or confirm dialogs, such as in the
- Security Update for CVE-2022-41915
- Netty project is an event-driven asynchronous network application framework. Starting in version 4.1.83.Final and prior to 4.1.86.Final, when calling
DefaultHttpHeadesr.set
with an _iterator_ of values, header value validation was not performed, allowing malicious header values in the iterator to perform HTTP Response Splitting. This issue has been patched in version 4.1.86.Final. Integrators can work around the issue by changing theDefaultHttpHeaders.set(CharSequence, Iterator<?>)
call, into aremove()
call, and calladd()
in a loop over the iterator of values.
- Netty project is an event-driven asynchronous network application framework. Starting in version 4.1.83.Final and prior to 4.1.86.Final, when calling
- Security Update for CVE-2023-22551
- The FTP (aka "Implementation of a simple FTP client and server") project through 96c1a35 allows remote attackers to cause a denial of service (memory consumption) by engaging in client activity, such as establishing and then terminating a connection. This occurs because malloc is used but free is not.
- Security Update for CVE-2023-24998
- Apache Commons FileUpload before 1.5 does not limit the number of request parts to be processed resulting in the possibility of an attacker triggering a DoS with a malicious upload or series of uploads. Note that, like all of the file upload limits, the new configuration option (FileUploadBase#setFileCountMax) is not enabled by default and must be explicitly configured.
- Security Update for CVE-2022-45688
- A stack overflow in the XML.toJSONObject component of hutool-json v5.8.10 allows attackers to cause a Denial of Service (DoS) via crafted JSON or XML data.
- Security Update for CVE-2022-45688
- Jetty is a java based web server and servlet engine. Nonstandard cookie parsing in Jetty may allow an attacker to smuggle cookies within other cookies, or otherwise perform unintended behavior by tampering with the cookie parsing mechanism. If Jetty sees a cookie VALUE that starts with
"
(double quote), it will continue to read the cookie string until it sees a closing quote -- even if a semicolon is encountered. So, a cookie header such as:DISPLAY_LANGUAGE="b; JSESSIONID=1337; c=d"
will be parsed as one cookie, with the name DISPLAY_LANGUAGE and a value of b; JSESSIONID=1337; c=d instead of 3 separate cookies. This has security implications because if, say, JSESSIONID is an HttpOnly cookie, and the DISPLAY_LANGUAGE cookie value is rendered on the page, an attacker can smuggle the JSESSIONID cookie into the DISPLAY_LANGUAGE cookie and thereby exfiltrate it. This is significant when an intermediary is enacting some policy based on cookies, so a smuggled cookie can bypass that policy yet still be seen by the Jetty server or its logging system. This issue has been addressed in versions 9.4.51, 10.0.14, 11.0.14, and 12.0.0.beta0 and users are advised to upgrade. There are no known workarounds for this issue.
- Jetty is a java based web server and servlet engine. Nonstandard cookie parsing in Jetty may allow an attacker to smuggle cookies within other cookies, or otherwise perform unintended behavior by tampering with the cookie parsing mechanism. If Jetty sees a cookie VALUE that starts with
- Security Update for CVE-2024-30172
- ** RESERVED ** This candidate has been reserved by an organization or individual that will use it when announcing a new security problem. When the candidate has been publicized, the details for this candidate will be provided.
Version 22.10
- Installer for macOS using Apple Silicon is available
- The bundled Eclipse Temurin Java VM is version 17.0.6
- Added support for DynamoDB persistence
- Added support for the HTTP header Forward (RFC 7329) for use with reverse proxies.
- Database Persistence accepts any configuration scope (USER or SYSTEM) and can also run as a non-root account.
- Added option to disable the "Stay logged in" feature for all users.
- Security Update for CVE-2020-36518
- jackson-databind before 2.13.0 allows a Java StackOverflow exception and denial of service via a large depth of nested objects.
- Security Update for CVE-2022-24823
- Netty is an open-source, asynchronous event-driven network application framework. The package ''io.netty:netty-codec-http'' prior to version 4.1.77.Final contains an insufficient fix for CVE-2021-21290. When Netty's multipart decoders are used local information disclosure can occur via the local system temporary directory if temporary storing uploads on the disk is enabled. This only impacts applications running on Java version 6 and lower. Additionally, this vulnerability impacts code running on Unix-like systems, and very old versions of Mac OSX and Windows as they all share the system temporary directory between all users. Version 4.1.77.Final contains a patch for this vulnerability. As a workaround, specify one's own ''java.io.tmpdir'' when starting the JVM or use DefaultHttpDataFactory.setBaseDir(...) to set the directory to something that is only readable by the current user.
- Security Update for CVE-2021-23792
- The package com.twelvemonkeys.imageio:imageio-metadata before 3.7.1 are vulnerable to XML External Entity (XXE) Injection due to an insecurely initialized XML parser for reading XMP Metadata. An attacker can exploit this vulnerability if they are able to supply a file (e.g. when an online profile picture is processed) with a malicious XMP segment. If the XMP metadata of the uploaded image is parsed, then the XXE vulnerability is triggered.
- Security Update for CVE-2022-21363
- Vulnerability in the MySQL Connectors product of Oracle MySQL (component: Connector/J). Supported versions that are affected are 8.0.27 and prior. Difficult to exploit vulnerability allows high privileged attacker with network access via multiple protocols to compromise MySQL Connectors. Successful attacks of this vulnerability can result in takeover of MySQL Connectors. CVSS 3.1 Base Score 6.6 (Confidentiality, Integrity and Availability impacts). CVSS Vector: (CVSS:3.1/AV:N/AC:H/PR:H/UI:N/S:U/C:H/I:H/A:H).
- Security Update for CVE-2020-11023
- In jQuery versions greater than or equal to 1.0.3 and before 3.5.0, passing HTML containing elements from untrusted sources - even after sanitizing it - to one of jQuery's DOM manipulation methods (i.e. .html(), .append(), and others) may execute untrusted code. This problem is patched in jQuery 3.5.0.
- Security Update for CVE-2022-2191
- In Eclipse Jetty versions 10.0.0 thru 10.0.9, and 11.0.0 thru 11.0.9 versions, SslConnection does not release ByteBuffers from configured ByteBufferPool in case of error code paths.
- Security Update for CVE-2022-2047
- In Eclipse Jetty versions 9.4.0 thru 9.4.46, and 10.0.0 thru 10.0.9, and 11.0.0 thru 11.0.9 versions, the parsing of the authority segment of an http scheme URI, the Jetty HttpURI class improperly detects an invalid input as a hostname. This can lead to failures in a Proxy scenario.
- Security Update for CVE-2022-31160
- jQuery UI is a curated set of user interface interactions, effects, widgets, and themes built on top of jQuery. Versions prior to 1.13.2 are potentially vulnerable to cross-site scripting. Initializing a checkboxradio widget on an input enclosed within a label makes that parent label contents considered as the input label. Calling ''.checkboxradio( "refresh" )'' on such a widget and the initial HTML contained encoded HTML entities will make them erroneously get decoded. This can lead to potentially executing JavaScript code. The bug has been patched in jQuery UI 1.13.2. To remediate the issue, someone who can change the initial HTML can wrap all the non-input contents of the ''label'' in a ''span''.
- Security Update for CVE-2022-31197
- PostgreSQL JDBC Driver (PgJDBC for short) allows Java programs to connect to a PostgreSQL database using standard, database independent Java code. The PGJDBC implementation of the ''java.sql.ResultRow.refreshRow()'' method is not performing escaping of column names so a malicious column name that contains a statement terminator, e.g. '';'', could lead to SQL injection. This could lead to executing additional SQL commands as the application's JDBC user. User applications that do not invoke the ''ResultSet.refreshRow()'' method are not impacted. User application that do invoke that method are impacted if the underlying database that they are querying via their JDBC application may be under the control of an attacker. The attack requires the attacker to trick the user into executing SQL against a table name who's column names would contain the malicious SQL and subsequently invoke the ''refreshRow()'' method on the ResultSet. Note that the application's JDBC user and the schema owner need not be the same. A JDBC application that executes as a privileged user querying database schemas owned by potentially malicious less-privileged users would be vulnerable. In that situation it may be possible for the malicious user to craft a schema that causes the application to execute commands as the privileged user. Patched versions will be released as ''42.2.26'' and ''42.4.1''. Users are advised to upgrade. There are no known workarounds for this issue.
- Security Update for CVE-2022-31129
- moment is a JavaScript date library for parsing, validating, manipulating, and formatting dates. Affected versions of moment were found to use an inefficient parsing algorithm. Specifically using string-to-date parsing in moment (more specifically rfc2822 parsing, which is tried by default) has quadratic (N^2) complexity on specific inputs. Users may notice a noticeable slowdown is observed with inputs above 10k characters. Users who pass user-provided strings without sanity length checks to moment constructor are vulnerable to (Re)DoS attacks. The problem is patched in 2.29.4, the patch can be applied to all affected versions with minimal tweaking. Users are advised to upgrade. Users unable to upgrade should consider limiting date lengths accepted from user input.
- Security Update for CVE-2022-36033
- jsoup is a Java HTML parser, built for HTML editing, cleaning, scraping, and cross-site scripting (XSS) safety. jsoup may incorrectly sanitize HTML including ''javascript:'' URL expressions, which could allow XSS attacks when a reader subsequently clicks that link. If the non-default ''SafeList.preserveRelativeLinks'' option is enabled, HTML including ''javascript:'' URLs that have been crafted with control characters will not be sanitized. If the site that this HTML is published on does not set a Content Security Policy, an XSS attack is then possible. This issue is patched in jsoup 1.15.3. Users should upgrade to this version. Additionally, as the unsanitized input may have been persisted, old content should be cleaned again using the updated version. To remediate this issue without immediately upgrading: - disable ''SafeList.preserveRelativeLinks'', which will rewrite input URLs as absolute URLs - ensure an appropriate [[https:*developer.mozilla.org/en-US/docs/Web/HTTP/CSP|Content Security Policy]] is defined. (This should be used regardless of upgrading, as a defence-in-depth best practice.)
- Security Update for CVE-2022-42003
- In FasterXML jackson-databind before 2.14.0-rc1, resource exhaustion can occur because of a lack of a check in primitive value deserializers to avoid deep wrapper array nesting, when the UNWRAP_SINGLE_VALUE_ARRAYS feature is enabled. Additional fix version in 2.13.4.1 and 2.12.17.1
- Security Update for CVE-2022-31684
- Reactor Netty HTTP Server, in versions 1.0.11 - 1.0.23, may log request headers in some cases of invalid HTTP requests. The logged headers may reveal valid access tokens to those with access to server logs. This may affect only invalid HTTP requests where logging at WARN level is enabled.
- Security Update for CVE-2021-37533
- Prior to Apache Commons Net 3.9.0, Net's FTP client trusts the host from PASV response by default. A malicious server can redirect the Commons Net code to use a different host, but the user has to connect to the malicious server in the first place. This may lead to leakage of information about services running on the private network of the client. The default in version 3.9.0 is now false to ignore such hosts, as cURL does. See https:*issues.apache.org/jira/browse/NET-711.
- Security Update for CVE-2022-23494
- tinymce is an open source rich text editor. A cross-site scripting (XSS) vulnerability was discovered in the alert and confirm dialogs when these dialogs were provided with malicious HTML content. This can occur in plugins that use the alert or confirm dialogs, such as in the
image
plugin, which presents these dialogs when certain errors occur. The vulnerability allowed arbitrary JavaScript execution when an alert presented in the TinyMCE UI for the current user. This vulnerability has been patched in TinyMCE 5.10.7 and TinyMCE 6.3.1 by ensuring HTML sanitization was still performed after unwrapping invalid elements. Users are advised to upgrade to either 5.10.7 or 6.3.1. Users unable to upgrade may ensure the theimages_upload_handler
returns a valid value as per the images_upload_handler documentation.
- tinymce is an open source rich text editor. A cross-site scripting (XSS) vulnerability was discovered in the alert and confirm dialogs when these dialogs were provided with malicious HTML content. This can occur in plugins that use the alert or confirm dialogs, such as in the
- Security Update for CVE-2022-41915
- Netty project is an event-driven asynchronous network application framework. Starting in version 4.1.83.Final and prior to 4.1.86.Final, when calling
DefaultHttpHeadesr.set
with an _iterator_ of values, header value validation was not performed, allowing malicious header values in the iterator to perform HTTP Response Splitting. This issue has been patched in version 4.1.86.Final. Integrators can work around the issue by changing theDefaultHttpHeaders.set(CharSequence, Iterator)
call, into aremove()
call, and calladd()
in a loop over the iterator of values.
- Netty project is an event-driven asynchronous network application framework. Starting in version 4.1.83.Final and prior to 4.1.86.Final, when calling
- Security Update for CVE-2023-24998
- Apache Commons FileUpload before 1.5 does not limit the number of request parts to be processed resulting in the possibility of an attacker triggering a DoS with a malicious upload or series of uploads.
Version 22.4
- The bundled AdoptOpenJDK 17 was updated to Eclipse Temurin Java VM 17.0.4.1.
- Two factor authentication supported.
- Prevent side load of plugins for wrong application version.
- It is now supported to use Web-Push notifications.
- MeetUp has grown up, is called i-net CoWork and is now also available as a separate product.
- Fixed a thread bug that allowed a user to run single requests in another users security context.
- Security Update for CVE-2021-37136
- The Bzip2 decompression decoder function doesn't allow setting size restrictions on the decompressed output data (which affects the allocation size used during decompression). All users of Bzip2Decoder are affected. The malicious input can trigger an OOME and so a DoS attack.
- Security Update for CVE-2021-37137
- The Snappy frame decoder function doesn't restrict the chunk length which may lead to excessive memory usage. Beside this it also may buffer reserved skippable chunks until the whole chunk was received which may lead to excessive memory usage as well. This vulnerability can be triggered by supplying malicious input that decompresses to a very big size (via a network stream or a file) or by sending a huge skippable chunk.
- Security Update for CVE-2020-21913
- International Components for Unicode (ICU-20850) v66.1 was discovered to contain a use after free bug in the pkg_createWithAssemblyCode function in the file tools/pkgdata/pkgdata.cpp.
- Security Update for CVE-2021-4126
- No information available.
- Security Update for CVE-2021-43797
- Netty is an asynchronous event-driven network application framework for rapid development of maintainable high performance protocol servers & clients. Netty prior to version 4.1.71.Final skips control chars when they are present at the beginning / end of the header name. It should instead fail fast as these are not allowed by the spec and could lead to HTTP request smuggling. Failing to do the validation might cause netty to "sanitize" header names before it forward these to another remote system when used as proxy. This remote system can't see the invalid usage anymore, and therefore does not do the validation itself. Users should upgrade to version 4.1.71.Final.
- Security Update for CVE-2021-41182
- jQuery-UI is the official jQuery user interface library. Prior to version 1.13.0, accepting the value of the
altField
option of the Datepicker widget from untrusted sources may execute untrusted code. The issue is fixed in jQuery UI 1.13.0. Any string value passed to thealtField
option is now treated as a CSS selector. A workaround is to not accept the value of thealtField
option from untrusted sources.
- jQuery-UI is the official jQuery user interface library. Prior to version 1.13.0, accepting the value of the
- Security Update for CVE-2021-41183
- jQuery-UI is the official jQuery user interface library. Prior to version 1.13.0, accepting the value of various
*Text
options of the Datepicker widget from untrusted sources may execute untrusted code. The issue is fixed in jQuery UI 1.13.0. The values passed to various*Text
options are now always treated as pure text, not HTML. A workaround is to not accept the value of the*Text
options from untrusted sources.
- jQuery-UI is the official jQuery user interface library. Prior to version 1.13.0, accepting the value of various
- Security Update for CVE-2021-41184
- jQuery-UI is the official jQuery user interface library. Prior to version 1.13.0, accepting the value of the
of
option of the.position()
util from untrusted sources may execute untrusted code. The issue is fixed in jQuery UI 1.13.0. Any string value passed to theof
option is now treated as a CSS selector. A workaround is to not accept the value of theof
option from untrusted sources.
- jQuery-UI is the official jQuery user interface library. Prior to version 1.13.0, accepting the value of the
- Security Update for CVE-2020-36518
- jackson-databind before 2.13.0 allows a Java StackOverflow exception and denial of service via a large depth of nested objects.
- Security Update for CVE-2022-24785 and CVE-2022-31129
- Upgraded library momentjs to version 2.29.4.
Version 21.10
- The bundled AdoptOpenJDK 11 was updated to version 11.0.15
- Java 17 supported
- Update of old versions is now limited. If you are using an unsupported old version, an update to an intermediate version is required
- It is allowed to create a Let's Encrypt certificate with a callback to the HTTPS port. Problems with redirect to HTTPS and if the server runs only on HTTPS are solved
- Added QR code to the error page, linking to a help page which may have further details
- Different ports, configured in the configuration Web Server dialog, use different HTTP sessions
- An error message occurred during setup if redirect to HTTPS is enabled
- The plugins dialog in the configuration of the server was replaced by the Plugin Store
- Fixed a thread bug that allowed a user to run single requests in another users security context.
- Security Update for CVE-2021-29425
- In Apache Commons IO before 2.7, When invoking the method FileNameUtils.normalize with an improper input string, like ''%%"//../foo", or "\..\foo"%%'', the result would be the same value, thus possibly providing access to files in the parent directory, but not further above (thus "limited" path traversal), if the calling code would use the result to construct a path value
- Security Update for CVE-2021-28165
- In Eclipse Jetty 7.2.2 to 9.4.38, 10.0.0.alpha0 to 10.0.1, and 11.0.0.alpha0 to 11.0.1, CPU usage can reach 100% upon receiving a large invalid TLS frame
- Security Update for CVE-2021-28169
- For Eclipse Jetty versions <= 9.4.40, <= 10.0.2, <= 11.0.2, it is possible for requests to the ConcatServlet with a doubly encoded path to access protected resources within the WEB-INF directory. For example a request to
/concat?/%2557EB-INF/web.xml
can retrieve the web.xml file. This can reveal sensitive information regarding the implementation of a web application
- For Eclipse Jetty versions <= 9.4.40, <= 10.0.2, <= 11.0.2, it is possible for requests to the ConcatServlet with a doubly encoded path to access protected resources within the WEB-INF directory. For example a request to
- Security Update for CVE-2021-34428
- For Eclipse Jetty versions <= 9.4.40, <= 10.0.2, <= 11.0.2, if an exception is thrown from the SessionListener#sessionDestroyed() method, then the session ID is not invalidated in the session ID manager. On deployments with clustered sessions and multiple contexts this can result in a session not being invalidated. This can result in an application used on a shared computer being left logged in.
- Security Update for CVE-2021-21409
- Netty is an open-source, asynchronous event-driven network application framework for rapid development of maintainable high performance protocol servers & clients. In Netty (io.netty:netty-codec-http2) before version 4.1.61.Final there is a vulnerability that enables request smuggling. The content-length header is not correctly validated if the request only uses a single Http2HeaderFrame with the endStream set to to true. This could lead to request smuggling if the request is proxied to a remote peer and translated to HTTP/1.1. This is a followup of GHSA-wm47-8v5p-wjpj/CVE-2021-21295 which did miss to fix this one case. This was fixed as part of 4.1.61.Final
- Security Update for CVE-2021-31812
- In Apache PDFBox, a carefully crafted PDF file can trigger an infinite loop while loading the file. This issue affects Apache PDFBox version 2.0.23 and prior 2.0.x versions
- Security Update for CVE-2021-36090
- When reading a specially crafted ZIP archive, Compress can be made to allocate large amounts of memory that finally leads to an out of memory error even for very small inputs. This could be used to mount a denial of service attack against services that use Compress' zip package
- Security Update for CVE-2021-35517
- When reading a specially crafted TAR archive, Compress can be made to allocate large amounts of memory that finally leads to an out of memory error even for very small inputs. This could be used to mount a denial of service attack against services that use Compress' tar package
- Security Update for CVE-2021-37714
- jsoup is a Java library for working with HTML. Those using jsoup versions prior to 1.14.2 to parse untrusted HTML or XML may be vulnerable to DOS attacks. If the parser is run on user supplied input, an attacker may supply content that causes the parser to get stuck (loop indefinitely until cancelled), to complete more slowly than usual, or to throw an unexpected exception. This effect may support a denial of service attack. The issue is patched in version 1.14.2. There are a few available workarounds. Users may rate limit input parsing, limit the size of inputs based on system resources, and/or implement thread watchdogs to cap and timeout parse runtimes
Version 21.4
- Memory management for systems with a large heap (>= 4 GB) was improved
- The version number of plugins now consists of 3 parts
- The plugin "Web Server Defender" added to protects against DoS and account hacking using brute force
- The cookie attribute "SameSite" can now be set. The default value is Lax
- Search bar and ticket views now also support an OR search with the keywords "or", "||" and "|"
- Embedded web pages now also supports the linking (redirect) of web pages. Additional rights management based on "users and groups" memberships
- Generic OpenID Connect (OIDC) authentication provider added
- Azure OpenID Connect (OIDC) authentication provider added
- Sample plugin for Custom OAuth provider added
- Jetty version updated because of:
- 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
- CVE-2020-13956
- Apache HttpClient versions prior to version 4.5.13 and 5.0.3 can misinterpret malformed authority component in request URIs passed to the library as java.net.URI object and pick the wrong target host for request execution
- CVE-2020-27218
- In Eclipse Jetty version 9.4.0.RC0 to 9.4.34.v20201102, 10.0.0.alpha0 to 10.0.0.beta2, and 11.0.0.alpha0 to 11.0.0.beta2, if GZIP request body inflation is enabled and requests from different clients are multiplexed onto a single connection, and if an attacker can send a request with a body that is received entirely but not consumed by the application, then a subsequent request on the same connection will see that body prepended to its body. The attacker will not see any data but may inject data into the body of the subsequent request
- CVE-2020-27223
- In Eclipse Jetty 9.4.6.v20170531 to 9.4.36.v20210114 (inclusive), 10.0.0, and 11.0.0 when Jetty handles a request containing multiple Accept headers with a large number of “quality” (i.e. q) parameters, the server may enter a denial of service (DoS) state due to high CPU usage processing those quality values, resulting in minutes of CPU time exhausted processing those quality values
- CVE-2020-27216
- *Guava version updated to 30.1 because of CVE-2020-8908**
- A temp directory creation vulnerability exists in all versions of Guava, allowing an attacker with access to the machine to potentially access data in a temporary directory created by the Guava API com.google.common.io.Files.createTempDir(). By default, on unix-like systems, the created directory is world-readable (readable by an attacker with access to the system). The method in question has been marked @Deprecated in versions 30.0 and later and should not be used. For Android developers, we recommend choosing a temporary directory API provided by Android, such as context.getCacheDir(). For other Java developers, we recommend migrating to the Java 7 API java.nio.file.Files.createTempDirectory() which explicitly configures permissions of 700, or configuring the Java runtime's java.io.tmpdir system property to point to a location whose permissions are appropriately configured
- Cron-utils updated to version 9.1.3 because of https://nvd.nist.gov/vuln/detail/CVE-2020-26238
- Security Update for CVE-2020-1967
- Server or client applications that call the SSL_check_chain() function during or after a TLS 1.3 handshake may crash due to a NULL pointer dereference as a result of incorrect handling of the "signature_algorithms_cert" TLS extension. The crash occurs if an invalid or unrecognised signature algorithm is received from the peer. This could be exploited by a malicious peer in a Denial of Service attack. OpenSSL version 1.1.1d, 1.1.1e, and 1.1.1f are affected by this issue. This issue did not affect OpenSSL versions prior to 1.1.1d. Fixed in OpenSSL 1.1.1g (Affected 1.1.1d-1.1.1f)
- Security Update for CVE-2021-20328
- Specific versions of the Java driver that support client-side field level encryption (CSFLE) fail to perform correct host name verification on the KMS server’s certificate. This vulnerability in combination with a privileged network position active MITM attack could result in interception of traffic between the Java driver and the KMS service rendering Field Level Encryption ineffective. This issue was discovered during internal testing and affects all versions of the Java driver that support CSFLE. The Java async, Scala, and reactive streams drivers are not impacted. This vulnerability does not impact driver traffic payloads with CSFLE-supported key services originating from applications residing inside the AWS, GCP, and Azure network fabrics due to compensating controls in these environments. This issue does not impact driver workloads that don’t use Field Level Encryption
Task Planner
Version 24.10
- The file change trigger supports now the integration of other sources, such as the Drive plugin.
- The Next Task trigger provides the option to pass any placeholders from the current task on to the next task along with a prefix which can be prepended to the placeholder key names.
- Tasks in the list can now be filtered down by their name - quickly find your tasks this way.
- When deactivating users who have tasks, a notification will be generated for administrators in the notification group "Task Planner Warning (Admin)".
- Result actions can be moved forwards and backwards in the result action order with the options "Execute earlier/later". This is helpful for cases in which the order of these actions matters.
- The e-mail action has an optional setting for the sender.
Version 24.4
- The file system action has been converted into a completely new "Save file" action, which now supports the integration of other sources, such as the Drive plugin.
- The Move Ownership page in Maintenance now supports resetting the chosen settings on the page.
Fixed Bugs
- In rare cases, the server could hang during setup when there were many different complex tasks.
Version 23.4
- Adds the
{initiator}
placeholder to the server stop trigger, which contains the display name of the user who restarted the server. - Tasks executed using the
/api/taskplanner/execute
endpoint are temporarily stored for the user, allowing them to access them later. If the tasks are not accessed again via the WebAPI within 60 seconds, they will be automatically removed.
- In the task planner maintenance section, it was not possible to move tasks away from deactivated users.
Version 22.10
- The parallel execution of one and the same task is now in general allowed
- Manually starting a task while it is running is now possible
- PUBLIC-API: To distinguish between multiple executions the
TaskEvent
andHistoryEntry
now containsexecutionID
, a unique ID for the execution. - PUBLIC-API:
TaskPlanner
's execute-method now return aCompletableFuture
to allow more control over actions after the execution. - PUBLIC-API: New method
cancelTaskExecution(GUID,GUID,boolean)
to cancel a single running execution of a task instead of all running executions. - Added Low Memory Trigger to notify administrators of this critical situation.
- PUBLIC-API: TimeTriggerFactory's generic type is now
Trigger
as it can return different types of trigger:TimeTrigger
andTimeTriggerForCustomSettings
- Fixed loading of large lists of tasks in the UI
- Fixed bug endlessly showing task as running with 0% or 100% progress although there was no execution.
- The license check of the Reporting Plus license for the Task Planning application was incorrect.
- The option custom in time triggers works correctly.
Version 22.4
- Placeholders are grouped if they start with the same prefix
- Added the option custom in time triggers.
- A maintenance module is provided for batch moving Task Planner tasks from one user to another.
- Fixed visibility of Task Planner triggers, jobs, and actions (based on a user's permissions) to be in sync with the visibility of help sections for these triggers, jobs, and actions.
Version 21.10
- Long running tasks were sometimes displayed as 'INCOMPLETE'
- Correction of identical file names in the file actions for multiple identical jobs with parameter placeholders in one task.
Version 21.4
- New Task Planner Job added to determine the free disk space in the working directory, cache and persistence directories. A threshold for minimum available disk space can be defined to trigger actions when there is not enough disk space left
- Triggering of time-trigger interval 'Two Weeks' was in wrong week at the beginning of a new year.
Themes
Version 24.4
- Adding 7 new themes
Version 23.4
Fixed Bugs
- Fixed spelling mistake in "Dark Forest" theme
Version 22.10
- Removed experimental Material Blue theme
Token Authentication
Version 23.10
Fixed Bugs
- When accessing the server using HMAC token authentication, the system failed to log the user token's last access time.
Version 21.10
- Added Plugin "Token Authentication".
- Enables Web API access using access tokens. It allows users to create access token as another means of authentication into their account - but with restricted access scopes.
- Support added for HMAC token authentication like used from MS Teams
Two-Factor Authentication
Version 24.4
- Two-factor authentication can be deactivated for certain server IP addresses.
Version 23.10
- 2FA emails are now sent to all stored email addresses of the user and not only to the first address.
Version 22.10
- A second factor can be made mandatory in the login settings of the server configuration. If there is no second factor set for a user, it is required to be set up after a fresh login.
Version 22.4
- Plugin added to support two factor authentication.
Users and Groups
Version 24.4
- Before irrevocably deleting a user, an dynamic overview is shown of which types of data are connected to this user and will be gone if the deletion is performed.
Version 23.10
- Added additional permission to read information from the Users and Groups Manager using the WebAPI. This allows read-only restricted access to search for users and return minimal information about them.
Version 23.4
- Added Web API Extension for Users and Groups, that allows to search for either user or groups and display detail information about them.
Version 22.4
- Added apply button to the edit dialog of a user or group. This allows to save the changes without closing the edit dialog.
- The avatar of users can be changed in the users and groups application with a click on the avatar image of the selected user
Version 21.10
- Per URL parameter
s
search phrases can now be passed to Users and Groups in the web interface - A new warning message appears when removing the last group member in a sub-group which will inherit memberships
- In the preview it is possible to switch the view to show inherit entries for permissions, allowed actions and resources
- Added a new label to allowed actions and permissions that tells if it is granted and if it is inherit
Waiting Queue
Version 24.10
- With the new CoWork function "Waiting queue", members can submit consultation requests to other users by drawing a waiting number. The requests can be viewed and managed in a separate dialog.
Web API
Version 22.10
- Opened up the WebAPI UI to be available for public requests, such as the Task Planners HTTP trigger, allowing to run the trigger from the browser.
- Added input field for the current URL, restricting editing to variable parts that require IDs
- Added JSON area to send custom JSON to a request URL
- Added selection for HTTP method and send key to re-submit the request
- Added ability to remember ID-token in the current web API session and automatically fill them until page is refreshed
Version 21.10
- Update of the permission handling to determine if a user has access to API endpoints
Web Server
Version 24.10
- Update Bouncy Castle encryption library to FIPS-certified edition. FIPS certification ensures cryptographic modules meet rigorous security standards, enhancing security and trust.
Version 23.10
- Added option the security section of the webserver configuration to control embedding the application using
X-Frame-Options
.
Version 23.4
Security Fixes
- Security Update for CVE-2023-44487
- The HTTP/2 protocol allows a denial of service (server resource consumption) because request cancellation can reset many streams quickly, as exploited in the wild in August through October 2023.
Version 22.10
- Added placeholders for start and expiration date of the HTTPS certificate that is currently being used. The placeholders can then be used in Task Planner actions.
- Changed Jetty server from version 9.4.x to 10.0.x.
- Added support for HTTP/2 protocol.
- Allowed Cross Origins is now called Allowed Origins
- If Allowed Origins is set, it will send CORS headers that also include the external visible URL.
- The server now checks that it is addressed using any of the given values from either the external visible URL or the Alowed Origins
- The server checks HTTP/s as well as WS/s connections
Version 22.4
- An optional web context of the web server can be set if the server should not run in the root context.
Windows Authentication
Version 24.4
- Support for the
Negotiate
authentication protocol has been added. This means that Kerberos login is supported.