# Changelog for Teamscale 7.7

Newer Release Available

Our current release is available here.

Release Announcement

Check out the Release Newsletter for Teamscale 7.7.

Java 17 Required (since Teamscale 7.7)

As of Teamscale 7.7, running the Teamscale server requires a Java Runtime Environment, Version 17 or later.

Changed startup on non-Docker Linux installations (since Teamscale 7.7)

As of Teamscale 7.7, Teamscale is no longer executed using nohup on non-Docker Linux installations. This requires manual intervention:

  • If you are using systemd to manage Teamscale as service, you have to change the startup type from Type=forking to Type=simple in the Teamscale systemd unit. Remember to reinstall the service.
  • For custom linux setups that depend on nohup, start Teamscale like: nohup ./teamscale.sh &.

In general, we strongly recommend running Teamscale on Linux with Docker.

Changed Teamscale systemd service type (since Teamscale 7.7)

As of Teamscale 7.7, the Teamscale systemd service type must be updated to type=simple, instead of the previous type=forking

Improved administration experience (since Teamscale 7.7)

Teamscale 7.7 features several changes that improve the default administration experience.

  • The default location of cloning remote Git (or SAP) repositories is a folder named repo relative to the process working directory. Existing instances are not affected and the location previously configured will be set upon backup import. The option has been moved to Admin / Global Settings / Git.
  • The following JVM arguments are now always specified and can be removed from JVM_EXTRA_ARGS in jvm.properties: -Djco.session_timeout=60 -XX:-OmitStackTraceInFastThrow -Dsvnkit.http.methods=Basic,Digest,Negotiate,NTLM
  • The Teamscale temporary directory is now configurable with the TEAMSCALE_TEMP environment variable. If you previously specified a custom temporary directory using -Djava.io.tmpdir=..., we recommend removing this JVM argument and using the environment variable instead. The directory may be relative to the process working directory and is created if it does not exist.
SAP Java Connector required for importing ABAP® code (since Teamscale 7.7)

As of Teamscale 7.7, exporting ABAP® code from SAP systems requires a manual installation of the SAP Java Connector (SAP JCo) 3.1 or later. For detailed information on the installation process, please refer to Installation of the SAP Java Connector (JCo).

SNI Hostname Verification (since Teamscale 7.4)

As of Teamscale 7.4, the internal Jetty web server executes SNI hostname verification by default. If you encounter an error "Invalid SNI" when accessing Teamscale, please contact our support (opens new window)

REST XML Interface Removed (since Teamscale 7.0)

As of Teamscale 7.0, its REST XML interface (deprecated since Teamscale v6.0) has finally been removed. This affects only the legacy REST API; the new, versioned API is not affected. You have hence two options:

  • The preferred long-term solution is to migrate to the new, versioned REST API, i.e., to use REST endpoints like …/api/v7.0.0/….
  • A temporary solution is to keep using the legacy REST API but always send an Accept: application/json request header and accept JSON rather than XML responses. Note, however, that the legacy REST API will be deprecated and subsequently removed, too.
Changed Voting Behaviour for Bitbucket Server Integration (since Teamscale 6.7)

As of Teamscale 6.7, the Enable Voting option in the Bitbucket Server connector will only add the findings badge to the pull request description. Please enable the Enable pull request review option, if you want Teamscale to also review pull requests.

Re-Analysis when Upgrading
  • When updating from 7.7.x, drop-in.
  • When updating from 7.6.x or earlier, a full re-analysis via backup is required.

# Version 7.7.14

Download Teamscale v7.7.14 (ZIP)
May 24th, 2022

# Fixes

  • Voting did not happen when the "Partitions Required for Voting" option was enabled and the uploaded external data was empty
  • Some widgets could not be added to dashboards if the project had a lexicographically smaller alias
  • UnsatisfiedLinkError in TFS connector
  • Objective-C preprocessed code was not ignored in the "Statements in Conditional Expression are equal" check
  • Some branches were considered covered even if no coverage reports were uploaded
  • C# property initializations were not parsed correctly
  • Users could alter the avatar images of other users
  • ESLint configuration files other than json, yml or yaml have to be allowed explicitly (e.g. JavaScript files, which are executable)

# Improvements

  • Improved security against path traversal and DoS attacks

# Version 7.7.13

Download Teamscale v7.7.13 (ZIP)
May 17th, 2022

# Fixes

  • StackOverflowError for recursively nested Simulink models
  • Clone coverage metric was not correct for C/C++ files using macros
  • Teamscale-SCI Integration: Space characters in ABAP function group names caused Bad Request errors

# Improvements

  • In the Metric Percentage widget, a different path can now be selected for the denominator metric

# Version 7.7.12

Download Teamscale v7.7.12 (ZIP)
May 12th, 2022

# Fixes

  • External reports were not imported from repositories (e.g., Artifactory, S3)
  • Struct members were erroneously detected as unread variables
  • Polarion: Relationships between specification items were not updated reliably in specification item table and queries

# Version 7.7.11

Download Teamscale v7.7.11 (ZIP)
May 10th, 2022

# Fixes

  • Large rollbacks could lead to OutOfMemoryErrors when using Xodus storage backend
  • Misleading error message was displayed when unknown attribute was used in a numeric aggregation function (e.g. size()) in issue queries
  • C++ naming convention findings were displayed for Objective-C code
  • Errors in Clang-Tidy execution for C, C++ and Objective-C when using relative include paths
  • False positives for "Each variable should be declared in a separate statement" check in Objective-C++
  • RFC authorization issues when using the SAP JCo library

# Improvements

  • Show better explained message instead of alarming NoSuchFileException during computation of storage directory size
  • .NET Profiler: Upload Daemon now sends distinct user agent header for Teamscale uploads

# Version 7.7.10

Download Teamscale v7.7.10 (ZIP)
May 3rd, 2022

# Fixes

  • False negatives in "Avoid using C-style arrays" check when using .cc file extension
  • Using out as a label with goto statement in Objective-C was not parsed correctly
  • Preprocessor directives that contain unbalanced quotes were not parsed correctly
  • Specification items were not deleted from Teamscale when they were deleted from Polarion
  • Line comments limit was not working for Gerrit connectors
  • GerritFindingBlacklistTrigger threw NoSuchElementException in rare cases
  • TestMetricsAndContentSynchronizer ran very long in some cases
  • TfsWorkItemSynchronizer did not adher to the "Retry-After" reply header in case of many outgoing requests
  • IllegalThreadStateException when waiting for external processes in rare cases
  • SAML login was not working if authentication response contained additional parameter (e.g. RelayState)
  • Eclipse plugin: Server names with special characters (white spaces, slashes) could not be saved
  • Import of code inspector findings from SAP systems did not work reliably
  • Merge request comments were not deleted when comment limit was exceeded
  • Gerrit votes were skipped in certain scenarios

# Version 7.7.9

Download Teamscale v7.7.9 (ZIP)
April 26th, 2022

# Fixes

  • C# "expression-bodied" methods and properties were considered to be non-coverable
  • Selection of nested partitions was not persisted when all sub-partitions were selected
  • Too many similar logs when processing report uploads
  • Deleted files in Artifactory could lead to infinite analysis loop
  • Gosu: Top level functions with return values were not parsed correctly
  • False positive clone findings for Objective-C methods copy, copyWithZone and isEqual
  • Code Comparison page was sometimes not able to load the code for one revision
  • Filtering findings by path had no effect in the Findings perspective
  • Visual Studio plug-in: The Findings view only showed "Loading findings..." if Teamscale was not configured for the associated solution
  • False positives for "Switch statements should not contain unexpected constructs" check in C++
  • BOM characters in JavaScript files caused scanner errors
  • MergeRequestSynchronizers tried to synchronize merge requests from other connectors in the project
  • AWS S3 backups could not be deleted
  • Concurrent uploading of multiple external analysis results blocked the creation of other sessions in some circumstances

# Improvements

  • Artifactory: Improved content retrieval performance for large changesets
  • Improved findings description of "Octal constants usage" check
  • Improved findings description of "Non-empty switch clauses have to be terminated unconditionally" check

# Version 7.7.8

Download Teamscale v7.7.8 (ZIP)
April 19th, 2022

# Fixes

  • False positives for "Non-virtual destructor" check in C++ on classes with deleted destructor
  • False positives for "Multiple statements in single line" check in PL/SQL when using aggregate functions
  • StackOverflowError in TypeScript parser when reserved keywords were used as parameter names in lambda type guards
  • Code blocks in finding descriptions were not rendered consistently
  • Backups could not be exported to AWS S3
  • Coverage data exported by XCode 13.3 couldn't be parsed
  • Metrics for issues or specification items were not reliably updated due to caching

# Improvements

  • The Gerrit repository connector now uses robot comments for Teamscale findings instead of regular comments

# Version 7.7.7

Download Teamscale v7.7.7 (ZIP)
April 12th, 2022

# Fixes

  • False positives for "Check unused data in Data Dictionary" check in Simulink
  • False positives for "Unused variable or parameter" check in C# when using multiple discards _1, _2, etc.
  • False negatives for "Check for Usage of Gain Blocks" in Simulink in corner cases involving the Auto default storage class
  • T-SQL code clones were not detected
  • Download Ranking as CSV button in Pareto ranking view offered invalid CSV
  • IndexOutOfBoundsException in "Names must not only differ in casing" check
  • An internal server error occurred when updating the project configuration of projects using the parent project feature
  • Opening the Issue Details page for a ticket did not work when all the ticket's findings were flagged as tolerated or false positive
  • Check Explorer and Analysis Profiles views ignored user-defined check descriptions
  • Eclipse/IntelliJ/NetBeans plug-ins ceased to work if license was expiring soon
  • The C# unsafe keyword was treated as coverable
  • Computation of Pareto ranking was started as soon as the view was opened, potentially impacting performance

# Improvements

  • Improved description of "Assignment to wider type" check in C/C++

# Version 7.7.6

Download Teamscale v7.7.6 (ZIP)
April 5th, 2022

# Fixes

  • Possible NullPointerException in some Simulink checks
  • Possible NullPointerException during rollbacks caused by previous errors in external report processing
  • REST API explorer displayed wrong field types for some parameters
  • False positives for "Null pointer dereference" check when using C++ optionals
  • False positives for "Missing interface comment" check in Kotlin
  • False positives for "Bad assignments" check in Objective-C when initializing self in conditions
  • Parsing of expression body definitions in C# did not work correctly
  • Parsing of lambda arrays in decorators in Python did not work correctly
  • Parsing of Microsoft Component Object Model macros in C++ did not work correctly
  • Last line of multiline if condition was not recognized as coverable
  • MethodLastTestedSynchronizer persisted the same data multiple times in some cases
  • Visual Studio plugin: Loading the findings failed when a solution was opened from Windows Explorer or the command line
  • Visual Studio plugin: Upload for Pre-Commit Analysis showed up in context menu even when no project mappings were configured
  • Eclipse plugin: SWT Resource was not properly disposed when closing the Teamscale preferences page
  • OutOfMemoryError when parsing a very large Objective-C file
  • CodeChangeIndexSynchronizer could throw IllegalArgumentException when performing refactoring detection
  • Newly added tests where not prioritized when using the legacy REST endpoint of the Test Impact Analysis
  • Merge requests were not updated when webhooks had been disabled
  • Parsing of nullable variables in Visual Basic did not work correctly

# Improvements

  • Added new check option to allow variable initialization in conditions for "Bad assignments" check
  • Added a troubleshooting section in the JavaScript Profiler how-to

# Version 7.7.5

Download Teamscale v7.7.5 (ZIP)
March 29th, 2022

# Fixes

  • Filtering by guideline in the Findings perspective showed a rule's ID rather than its name
  • teamscale.sh logged an "integer expression expected" error in some cases
  • System Information page did not show visual indicators for percentages
  • AssertionError in DataFlowFindingsSynchronizer for C++ header files
  • IndexOutOfBoundsException in TerminalOperationAtEndOfStreamCheck when encountering syntactically incorrect Java code
  • When saving a series of role assignments, only the first assignment was saved
  • False positive for "Avoid unused private methods/fields" check in C#
  • Eclipse plug-in: Findings view was cleared when switching to console view and back
  • IntelliJ plug-in: Warning about invalid server license was hard to read in IntelliJ Light theme
  • Visual Studio plug-in: Pre-commit analysis failed unless all files were located below the solution's root location
  • Visual Studio plug-in: Project mappings defined in a teamscale.properties file were no longer recognized
  • Execution trend showed execution before baseline in some cases
  • Back-channel logout of OpenID Connect did not log out the user immediately
  • Instance comparison examples failed to open when server was behind a reverse proxy
  • Empty T-SQL files led to an IndexOutOfBoudException
  • The StructuringAnalysis could throw a NullPointerException under some rare conditions
  • Documentation on JavaScript profiling and coverage technologies was outdated
  • False positive for "Redundant parentheses" check when using generic constructor calls in Python

# Improvements

  • The description of the "Assembler encapsulation" check has been expanded and examples have been added

# Version 7.7.4

Download Teamscale v7.7.4 (ZIP)
March 22nd, 2022

# Fixes

  • Eclipse, IntelliJ and Netbeans plugins could not handle umlauts in paths correctly
  • IntelliJ plugin: A ThreadAccessException occurred in rare cases when uploading a project for pre-commit analysis
  • False positives in "Null pointer dereference" check
  • External links in Testwise Coverage reports V2 uploaded to Teamscale were not shown in the Test Details view
  • Empty issue query showed no trend
  • Disabling Abbreviate large numbers displayed 0 as duration for short-running tests
  • Change Count metric was not quality neutral
  • Inconsistent names, Credentials and Account, were used for UI elements and internal service endpoints
  • Loading reports failed in rare cases due to a NullPointerException
  • Incorrect keyboard shortcut displayed for command Add finding to task
  • Yellow assessment in Metric Slide in Reports view displayed incorrect information
  • Branches without coverable lines were considered as covered
  • Branch selector was not scrollable
  • Test references became invalid, when test file was changed in the target branch of a merge
  • In-line comments on merge requests were sometimes too long
  • Analysis results integration were scheduled for the same commit in rare cases, resulting in errors
  • New methods in merge requests were sometimes not displayed in the Test Gaps Treemap
  • The Execution Status view sent too many update requests

# Version 7.7.3

Download Teamscale v7.7.3 (ZIP)
March 15th, 2022

# Fixes

  • Text filters were not respected for test coverage data and TGA calculations
  • Issue detail view: Erroneous message Sorry, the page you requested does not exist
  • C# constructors with lambda expressions could not be parsed
  • IndexOutOfBoundsException in CodeChangeIndexSynchronizer
  • False positives in "String interpolation argument number" check for Java
  • Progress indicator was missing when searching in Teamscale
  • Unchanged methods were shown in tree map in Unlinked Changes view
  • DTD for DetailedXML dotCover report format was outdated
  • Activity Details view showed inactive time travel information
  • Affected files in Issue Detail view showed files changed by uploaded data
  • Method History view annotated all coverage uploads as "latest"
  • System Info: Link to documentation for "Out of Memory" problems was not rendered correctly
  • JiraIssueUpdatePostAnalysisTrigger blocked analysis if Jira did not respond in time
  • Externally uploaded findings were sometimes not disappearing on forked branches
  • Reports: Layout issues with image slides
  • Simulink: Boolean was considered a signed data type for "Usage of bitwise operations" check
  • Simulink: Some output data types were wrongly inferred
  • False positives for "Null pointer dereference" check
  • Stack overflow while parsing Typescript for lambdas nested in ternary operator statement
  • Using relative dates in project configurations could cause unexpected rollbacks on configuration change
  • Stack traces were not rendered correctly in the Test Details view
  • GerritAnalysisResultUploadTrigger threw NullPointerException in rare cases

# Improvements

  • Better placement for errors which occurred during user creation
  • "Analysing first commit" message on Activity perspective linked to itself
  • Added support for Groovy 4 features
  • Enhanced error reporting for S3 connector validation

# Version 7.7.2

Download Teamscale v7.7.2 (ZIP)
March 8th, 2022

# Fixes

  • Merge request comments about the flagging of findings displayed username instead of full name
  • StackOverflowError in TestMetricsAndContentSynchronizer
  • Simulink model names with backslashes could not be displayed
  • Search bar tooltip was rendered incorrectly
  • Placeholder for the search field in the Test query view was incorrect
  • Delta findings churn contained all false positive/tolerated findings for merge requests
  • The Connector Status view only worked with administrative permissions
  • End date of instance comparison was always set to current time
  • Error in Javascript console when viewing a treemap or a report in Safari
  • Finding messages were incorrectly rendered in the Create Task view when a task was created from the Findings or Metrics perspective
  • Text blocks in Java were not parsed correctly
  • @protocol in Objective-C was not parsed correctly
  • Construction of an object with sub-objects in Javascript was flagged as deep nesting
  • TFS library version was updated to be compatible with Java 11
  • Polarion work items without document stalled complete work item import
  • Teamscale sometimes voted on the wrong commit in merge requests

# Improvements

  • Avoid unnecessary service log warnings when importing ABAP findings in SE80
  • Improved performance of comment analysis for C/C++
  • Added Kotlin to the list of supported architecture analysis languages in the documentation
  • Loading indicator was added for treemaps in the Merge Request view

# Version 7.7.1

Download Teamscale v7.7.1 (ZIP)
March 1st, 2022

# Fixes

  • Default analysis profiles were not created when Teamscale was initially started without a license
  • False positives for "Avoid using ternary operators" check in Javascript/Typescript
  • False positives for "Assignment of a variable to itself" check in C# in the context of anonymous object creation expressions
  • False positives for "Conditions in if blocks" check in Simulink for simple negations
  • IntelliJ Plugin: Result of branches service call could not be deserialized
  • "Naming convention" check in C# did not apply correct regular expression for properties and events
  • Executed By tab in the method history did not show tests that executed a method when navigating to it via an architecture path
  • Findings Treemaps in the Findings perspective were not completely visible due to an incorrect positioning
  • Singe Metric Trend Chart widgets sometimes included an incorrect data point with value zero for specification items
  • Occasional login problems due to 431 Request Header Fields Too Large
  • IntelliJ Plugin: NullPointerException when a project was unavailable in Teamscale
  • False positives for "Check use of single variable variant conditionals" check in Simulink when the condition contained true or false
  • TestgapPercentageService was very slow on large systems
  • Rollbacks did not work correctly for renamed branches in git
  • Parsing issues for regex in Javascript/Typescript template string
  • Parsing issues for unconnected lines and colons in Simulink models

# Improvements

  • Code view: Improved indicators for pending review comments

# Version 7.7.0

Bug Fixes
  • 7.7.0 contains all fixes from previous versions released on and before February 22nd, 2022
  • For brevity, only new features are included in the changelog
Download Teamscale v7.7.0 (ZIP)
February 22nd, 2022

# Major Features

  • IBM RTC/Jazz connector for requirements tracing

# Web UI

  • Added possibilty to filter for any used internal/external tools or analysis profiles in the Check Explorer
  • The Check Explorer can now show the available configuration options for each check
  • Extended icon list for report slide comments
  • Architecture components can now be removed from the editor by using a context menu
  • Expected coverage of impacted tests can now be overlaid over the test gap treemap in the Issue details view
  • Teamscale vote status can now be seen in the Merge request view
  • Backup import now shows a live status of which projects have already been imported
  • The edit menu for a dashboard now contains the option to update trends or baselines for all widgets of that dashboard at once

# New Checks

  • Check for detecting post-operators without effect in return statements for C/C++, C#, Java, JS, Objective C, PHP, Xtend, Swift, Groovy and Kotlin
  • Check for division by zero that considers variable values for C#, C/C++, Java, JS and Python
  • Multiple new ESLint checks

# Connectors

# Administration

  • Rollbacks now have an associated ID displayed in the logs