Title: TeamPage 6.2.45

Traction® TeamPage 6.2.45 is focused on bug fixes and improvements. One important update: TeamPage installers now optionally install and configure the Amazon Corretto OpenJDK implementation of Java SE as the JVM used by TeamPage. Amazon runs Corretto internally on thousands of production services and Corretto is certified as compatible with the Java SE standard. TeamPage issues have been resolved in several areas, including built-in fulltext searches, link editing, calendar events and notifications, the email digest, and PDF export. Besides several under-the-hood changes, improvements include administrator control over what sorts of of type-ahead suggestions to offer in TeamPage's search box; support for custom filter search expressions based on attachment properties such as filename, extension, checkout status, etc; and better styling of tags and badges. There are also several changes that may interest developers, including improved Traction SDK APIs relating to image resources and conditional SDL tags. Please read on for the full list of changes.

Download TeamPage 6.2.45

Important Note for Customers Installing on Microsoft Windows

This installer issue has been resolved, see 20 Mar 2020: TeamPage 6.2.45 Windows installer update. InstallAnywhere shows a dialog incorrectly setting the default path for a new or upgraded Windows installation to the "Program Files (x86)" directory instead of the "Program Files" directory, even though TeamPage is not a 32 bit application.

The correct default installation path for TeamPage when using Windows' "Program Files" convention should be: "C:\Program Files\Traction".

- If you're updating an existing Windows installation of TeamPage, please verify that the InstallAnywhere installation path dialog shows the root directory of your existing installation. You can check the root directory of your existing installation by looking at and copying the ‘Server directory’ value shown on the Server Setup > General > Runtime info page of your TeamPage server, and then going up two levels.

For example, if your server directory is C:\Program Files\Traction\traction\server, then your installation root is C:\Program Files\Traction.

Do this before running InstallAnywhere.

- If you're installing TeamPage for the first time, make sure to use "Program Files" instead of "Program Files (x86)" .

Either way, the usual installation path would be "C:\Program Files\Traction" instead of "C:\Program Files (x86)\Traction" .

Note: if you accidentally install in the wrong location and start TeamPage, you will see an empty TeamPage installation. Your data is still on system, and you can resolve the issue by re-running the installer with the correct installation path. You can clean up the accidental empty installation later.

We're sorry for the inconvenience, and we're working to resolve this issue with InstallAnywhere in time for another upcoming release.

TeamPage Installers now bundle Amazon Corretto OpenJDK implementation of Java SE

Traction Software's InstallAnywhere installers now optionally install and configure the current supported version of Amazon's Corretto 8 Java Virtual Machine and run time environment. Corretto is distributed by Amazon as Open Source software licensed under terms of the GNU Public License version 2 with the Class Path Exception (GPLv2 with CPE). After installing a new release of TeamPage with the JVM option, InstallAnywhere will automatically install and configure TeamPage to uses Corretto 8. Installing TeamPage's Corretto 8 will not uninstall Oracle's Java 8 or any other JVM currently installed on your server, but after installing Corretto 8 there is no longer any TeamPage dependency on any other Java VM. Traction Software uses Corretto for all TeamPage Cloud subscriptions.

Quotes from AWS Amazon Corretto page

Amazon Corretto is a no-cost, multiplatform, production-ready distribution of the Open Java Development Kit (OpenJDK). Corretto comes with long-term support that will include performance enhancements and security fixes. Amazon runs Corretto internally on thousands of production services and Corretto is certified as compatible with the Java SE standard. With Corretto, you can develop and run Java applications on popular operating systems, including Linux, Windows, and macOS.

Backed by Amazon

Amazon Corretto comes with no-cost long-term support from Amazon, so you can upgrade versions only when you need to. Amazon is committed to Corretto, running it internally on thousands of production services.

Production Ready

Amazon Corretto is certified to meet the Java SE standard and can be used as a drop-in replacement for many Java SE distributions. Amazon provides quarterly updates that include performance enhancements and security fixes critical for enterprise application development.

Multiplatform Support

Amazon Corretto lets you run the same environment in the cloud, on premises, and on your local machine. Corretto 8 supports Linux, Windows, macOS, and Docker and Corretto 11 supports Linux, Windows and macOS.

Corretto FAQS

Q: Can I use Corretto as a drop-in replacement for other JDKs?

A: Corretto is designed as a drop-in replacement for all Java SE distributions unless you are using features (e.g., Java Flight Recorder) not available in OpenJDK. Once Corretto binaries are installed on a host and correctly invoked to run your Java applications (e.g., using the alternatives command on Linux), existing command-line options, tuning parameters, monitoring, and anything else in place will continue to work as before.

Bug Fixes

Native Fulltext Searches

This release includes fixes for several bugs in TeamPage's fulltext query features. (These do not apply to TeamPage's Advanced Search module.)

• Fixed a bug that could prevent TeamPage from treating quoted text search terms as phrase searches rather than as individual word searches. (Server93664)

• Fixed a bug that could, in certain cases, cause TeamPage to include false positives in search results for queries that include phrase searches. (This is unlikely to affect Japanese users.) (Server93675)

• Fixed a bug that could prevent TeamPage from ever finding matches for fulltext queries that include just a single character. Searches for single character terms may not always be optimized, which means they may not perform very well with a large corpus, but they should work correctly. (Server93666 / Server64500)

• Fixed a bug that could, in some rare cases, cause queries with phrase search queries to perform extra work. (Server93665)

• Ensured that TeamPage uniformly applies the same algorithm for splitting up ("tokenizing") text search terms for querying as it does for indexing and text search result hit highlighting. This fixes various issues that could happen in certain situations, resulting in entries being improperly included in search results or omitted from search results, or incomplete or inaccurate hit highlighting. (Server93680)

• Fixed a bug that could cause searches that contain fulltext queries for un-indexed terms (e.g., single character terms or words on the "stop list") combined with "OR" operators to improperly exclude results that should have been considered matches. (Server93737)

• Fixed a bug that could cause HTML entities, used in HTML documents to represent certain characters (commonly "&", "<" and ">" and double quotation marks), not to be decoded into the equivalent literal characters before processing entry content to be added to TeamPage's fulltext indices. To retroactively apply the effect of this fix, it would be necessary to have your TeamPage server rebuild your journal's fulltext indices, during which time the server would be unavailable. The index rebuild can be performed by checking the "(optional) rebuild index on next startup" checkbox on the server settings > General page, and then clicking the "Restart TeamPage" button. (Server93740)

General User Interface

• Fixed a bug that could cause the space name appearing in the top left corner of a Documents view to be incorrect when navigating from one Documents view to another. (Server93624: Space scoping of document views is wrong)

• Fixed a bug introduced in a recent version of TeamPage that could prevent the Spaces > Cloud view from ever appearing. The TeamPage server would receive the request, but would never finish processing and send a response. (Server94055)

• Fixed a server-side check on the requested parameters for a file "move" operation to prevent a request to move files and folders without designating a destination folder from causing those files and folders to be moved to the server's root directory. (Proteus16321)

Editing Links

• Fixed a bug that could cause custom links created using TeamPage's rapid selector language to be incorrectly represented during editing. The link in this case might go missing or be otherwise broken by the edit if the user didn't fix it manually. (Server93630)

• Fixed a bug that caused the link dialog to incorrectly handle the "feed", "details" and "titles" request volume keywords for links to views, including custom links created using TeamPage's rapid selector language. (Server93697)

• Fixed a bug that could prevent the Insert/Edit Link Dialog's "Preview" button from working properly for a custom link created using TeamPage's rapid selector language. (Server93644)

Events and Notifications

• Fixed a bug that could prevent TeamPage from sending email notifications to all the users who should receive them when a new event entry is created (Server93790)

• Fixed two issues that could prevent some calendar software from being able to read and import .ics calendar events generated by TeamPage. (Server93791 / Server93796)

Files and Attachments

• Fixed a minor bug that could, in some cases, prevent TeamPage from properly handling an unexpected failure receiving or saving an uploaded file. (Server93820)

• Changed the way TeamPage deals with certain types of rare and unexpected errors that can occur when displaying files (e.g., a list of the files attached to an article) to ensure they can't prevent other important page elements from being displayed as expected, and to avoid unnecessarily presenting the user with a feedback dialog for reporting the condition. (Server93817)


• Fixed a bug that prevented TeamPage from determining the dimensions of images added via a Status Update form, which could prevent the image's dimensions from being properly constrained for display purposes in various contexts. (Proteus16212)

• Fixed a bug that could cause an image uploaded via the status update form to be improperly included in the title of the entry. Status update titles will once again be correctly composed of a snippet of just the text portion of the content supplied by the user. (Server93899)

Signature Requirements Module

• Fixed a bug that caused TeamPage to continue to present signature requirements that had been marked closed in various contexts as though they were still open. (Proteus16318)

Email Digest

• Fixed a bug in the generation of HTML markup for email digest messages that could prevent the message from being displayed properly. (Server93876: Digest markup is missing close DIV tag for each entry container)


• Fixed a bug that prevented TeamPage's date fields from properly displaying values representing dates / times earlier than January 1, 1970 12:00:00.000 AM GMT when a user is editing an entry for which such a value had previously been saved. (Proteus16272: Date form field can not load the date before 1970?)

• Fixed some problems storing date-time values that could, in some cases, prevent the values from being stored properly. This was most likely to affect deployments using the "Support for Times in Project Management Form Date Fields" plug-in. (Proteus16304)

PDF Export

• Fixed a bug that could cause PDF generation to fail when a Table of Contents widget was included in the body of one of the exported entries. (Server94053)

• Fixed a bug that caused @ mentions and some values appearing in extended entry details to be rendered as links to the corresponding user profiles even when the "Include Links into TeamPage" export setting was set to "No". (Server94111)

• Fixed a bug that could cause the text of some links to appear if certain punctuation characters appear in the text intended to serve as the link title. (Server94118)


• Fixed a bug that prevented TeamPage from properly handling custom navigation or search expressions containing an ampersand character ("&"). (Proteus16193)

• Fixed a bug that could cause queries based upon moderation status -- e.g., "Recently Published" -- and which have a specific date/time range (as opposed to queries covering all time) to improperly exclude entries that have other versions that are also in the targeted moderation state. (Server93587)

• Fixed a bug that could cause unassigned page names which are no longer targeted by any links from current versions (the current draft or published versions of any entries) to continue to appear in "Requested" page name results (e.g., Wiki > Activity > Requested), or in page name search results (e.g., in type-ahead suggestions for the search box, or in the link dialog's Link to a Named Page panel). (In some cases, incoming links from intermediate versions may still be listed on a "Page Not Found" view which is presented, e.g., when a user clicks a forward link.) (Server93851)

• Fixed a longstanding but very rare bug that could cause entries that have a manually created outgoing relationship using the generic "references" verb to be treated as though they were a comment on the target entry. (Server51130)

• Fixed a bug that could prevent the Social Enterprise Web (SEW) comment form from appearing in certain situations. (Server93694)

• Fixed a longstanding minor but annoying bug which could cause clicking the "Cancel" button on the Email Articles form to navigate the user back to the home page rather than back to the page where the Email Articles link was clicked. (Server55499)

• Fixed a bug that prevented the "Random" button on the server settings > People page's Add Users form from working properly. Clicking the button would cause it to be disabled, but no password would be filled into the password field for the new user account. (Server93879)

• Fixed a minor bug that caused a spurious warning message to be printed in TeamPage's log file when loading the Advanced Search view. (Proteus16208)

• Fixed a minor issue that prevented the "Comment Sort Order" setting from being found using TeamPage's setup search box. (Server93770)

• Fixed a bug that could cause malfunctions or otherwise unintended behaviors in certain kinds of plug-ins that include JavaScript intended to be run when a page is finished loading. (Proteus16260)


• Identifying which paragraphs contain fulltext search term matches should generally be faster for queries that have multiple fulltext search terms. (Server93742)

• Added support for custom filter search expressions that can be used to filter entry results based upon whether they have at least one attachment that matches one of the following:

Limitations to Note:

We welcome suggestions for additional types of filters to support. (Server93684)

• Added a server level setting that allows administrators to customize which sources should be used to generate type-ahead suggestions for TeamPage's search box. (Server87036 / Server93884)

• Enhanced the visual styles for tags and other similar UI elements in certain contexts. (Proteus16244)

• Updated the version of Apache Commons Lang3 library that ships with TeamPage from 3.4 to 3.9. (Server94010)

For Developers

Traction SDK for Image and Other File Resources

The Traction SDK for icon and profile picture images has been revised to improve consistency and generally make the APIs friendlier. These changes may require modifications and recompilation of any customizations that use the existing APIs. (Server93767)

If you need assistance adapting your existing code to these modified APIs, please post a support request and we'll be happy to help.

New SDL Tag Implementations for Conditionals and Conditionals Requiring Resource Management

There are two new abstract SDL Tag classes: com.traction.sdk.sdl.ConditionalTag, extending Tag; and com.traction.sdk.sdl.ConditionalWithResourceTag. com.traction.sdk.sdl.BooleanTag now extends ConditionalTag, which now holds the basic implementation for separating the Tag children into the "true" children and "false" children (for the else block, if one is present). ConditionalTag also has a better implementation of child separation, and utility methods to provide safe access to either the "true" or "false" children as needed. No changes to existing SDL tag implementation classes should be required. (Server94039)

Consistent, Symmetric and Safe Resource Loading and Cleanup

ConditionalWithResourcesTag provides a pattern for safely and consistently setting up and opening a resource, and handles failure cases while ensuring that the resource is always released after any children have been evaluated to actually use it. It uses the new first class com.traction.sdk.Resource interface, which extends java.io.AutoCloseable so that it can employ the try-with-resources pattern to ensure that underlying resources are always closed and/or any required post-processing cleanup happens, regardless of what happens while evaluating children. It provides a superior alternative to com.traction.sdk.sdl.BooleanScopeTag for these kinds of resource management and cleanup-after-evaluation cases.

Request/Result Pattern for Resource Load Attempts

Subclasses of ConditionalWithResourcesTag only need to implement the method tryToLoadResource(com.traction.sdk.sdl.Scope). The return type is com.traction.sdk.Resource.LoadAttemptResult, which carries the Resource object on success, and error details on failure, including both a com.traction.sdk.Resource.LoadErrorType representing the type of error and a com.traction.sdk.TractionRuntimeException that provides a user-facing error message and diagnostic information for logging. This request/result pattern can be used any code employing the Resource interface. Resource.LoadErrorType values and their general meanings are as follows:

Failure Modes

To encapsulate possible failure modes for SDL evaluation operations, we've added the com.traction.sdk.sdl.Tag.FailureMode enum. The values and their general meanings are as follows:

To support the three Resource.LoadErrorType enum values SETUP, OPEN and CONFIRM, ConditionalWithResourcesTag supports attributes for SDL authors to indicate the name of the preferred Tag.FailureMode value for all three categories of errors, setupFailure=, openFailure= and confirmFailure=. The defaults are taken from the default_setupFailure=[warning], default_openFailure=[warning] and default_confirmFailure=[ignore] tag configuration properties. The choice of category for resource load errors is completely at the discretion of implementors, and subclasses can also easily override the methods that provide the Tag.FailureMode for any category of error instead of using the normal attribute-with-tag-configuration defaults.

No ConditionalWithResourcesTag Negation, No Ambiguity

Since it extends the new ConditionalTag rather than BooleanTag, ConditionalWithResourcesTag doesn't support negation via the optional "not" attribute. This makes it easier to reason about the resource management, since it avoids any ambiguity that could arise with the BooleanScopeTag pattern previously employed to implement these kinds of tags about whether resources opened or created during the evaluation of the tag's isTrue(Scope) method will be cleaned up after evaluating the "else" block when a "not" attribute is present.

Image Dialog Events

Custom JavaScript code can now listen for the "image-dialog-load" event to trigger custom behaviors when the Proteus skin's image dialog is displayed in response to a user click to show a larger version of an embedded image. (Proteus16300) For example:

function onImageDialogLoad(data) {

  // ...


Proteus.addHandler("image-dialog-load", onImageDialogLoad);

The structure of the data payload passed to each event listener is as follows:

  "box": <HTML element for the in-page dialog box container>
  "img": <HTML IMG element for the expanded image>

The event listener function's return value is ignored (and the function can be of type void).

Related Articles
Article: Customer5226 (permalink)
Categories: :Doc:changelog, :Doc:r62
Date: March 23, 2020; 1:24:54 PM Eastern Daylight Time

Author Name: Dave Shepperton
Author ID: shep