Compile Time Changes

Timeout changes for CET updates

bgInstallHost.cm

Added new arguments to the abortAfterTimeout method in the BgInstallHost class.

Old: final public void abortAfterTimeout() {
New: final public void abortAfterTimeout(bool failed=false) {

Also some interfaces were updated in the cet.runtime package. Please refer to the documentation for those changes as well.

Remove uninstalled catalogs

The following interface changes have been made to facilitate the functionality to remove related catalog files when an extension is uninstalled.

class EmbeddedCatalogHost

Old: extend public EmbeddedCatalogInfo dequeueCatalogToRegister() {
New: extend public <symbol, EmbeddedCatalogInfo> dequeueCatalogToRegister() {

Also some interfaces were updated in the cm.abstract.dataSymInterface and cm.abstract.dataSymbol packages as part of this change. Please refer to the documentation for those changes as well.

Runtime/Behavior Changes

putIgnoreDir() changes in cm.extension

The recursive behavior of putIgnoreDir() has been corrected in 17.5. To minimize migration effort, the recursive parameter now defaults to false, preserving the previous behavior for existing code.

Previously, only the specified directory was added to the ignore list due to an implementation issue. In the recursive case, instead of adding each discovered subdirectory, the method repeatedly adds the original directory to the ignore list, producing duplicate entries and failing to add the subdirectories into the ignore list.

Existing code that calls putIgnoreDir() without specifying the recursive parameter should continue to behave as before. Code that explicitly specifies subdirectories individually is also unaffected.

The corrected recursive behavior makes it possible to ignore an entire directory tree by calling putIgnoreDir(dir, recursive=true), which now registers both the specified directory and all of its subdirectories into the ignore list.

Use int64 instead for tracking file sizes related to extension archives and check for sufficient hard disk space during updates

Previously there was a bug related to the filesize of the ExtensionInfo file whereby it used a 32-bit integer to keep track of the extension's size. This caused it to overflow when the extension archive became larger than 2GB. To fix this we added int64 versions of the various filesizes we use to keep track of the extension sizes in 17.5 onwards. We stil maintain the 32-bit version for backwards compatibility. However please note this value might be inaccurate.

Also we added a hard disk space check for CET updates as sometimes there were issues where CET updates would fail when the user ran out of hard disk space during CET updates. We now do a minimum size check during CET updates where we check if the user has enough hard disk space to install an extension.

As sometimes other processes like downloader and Windows updates might end up filling up the hard disk while the CET updates are running, we still allow the user to proceed with the CET updates anyway. They will now receive a notification where they can choose to continue with the update or cancel it when CET detects there might not be sufficient hard disk space. However if the disk space ever drops below 1GB, we mark the update as having failed.