2.3.2.3 release notes

2.3.2.3

  • Issue 2602 - The recent change to detect proactively Tooling API-based deployments of active Schedulable classes and/or their transitive dependencies was still causing numerous issues, some behavioral and some performance-related. I decided to take a step back and re-evaluate the approach as deployment via the Tooling API is, by design, intended to be faster in general than deployment of the same content via the Metadata API, and this type of proactive check was potentially minimizing or even losing those benefits. I've now removed all proactive checks and instead made this a reactive behavior. IC2 will again attempt to deploy things that it typically can via the Tooling API, but now if that deployment fails due to very specific types of errors and only those types of errors, the same deployment will automatically be retried via the Metadata API which does not have the same issues deploying active Schedulable classes and/or their dependencies. If the deployment fails with any other types of errors — even if found with the specific types of errors that could otherwise be retried via the Metadata API — the deployment is not retried via the Metadata API and fails fast. Note that this is very similar to the approach applied to work around known issues with deployment of individual LWC JavaScript bundle files via the Tooling API. Hopefully this will provide the correct balance of the Tooling API's (typically) faster deployments vs. its known bugs.
  • Issue 2603 - Fixed an issue with queries executed in the SOQL Query tool window against the Tooling API InstalledSubscriberPackage type when query result set size validation is enabled as the following yields a GACK (opaque Salesforce server-side error):
    SELECT COUNT() FROM InstalledSubscriberPackage
    Query result set size validation is no longer performed before executing queries against this type.
  • Issue 2607 - Fixed an issue with syntax highlighting when a DML operator keyword has references to the associated Apex triggers that would be invoked in response to that DML operation. I also fixed a related issue with dynamic syntax highlighting of references with multiple targets.
  • Added full support for local breakpoints in Anonymous Apex scripts to facilitate debugging of those scripts using the Apex Offline Debugger. Note that only local breakpoints are supported for Anonymous Apex scripts as server checkpoints must be associated with a valid line in a deployed Apex type or trigger. Server checkpoints are, of course, still supported for deployed types and triggers.
  • As part of the work above, Anonymous Apex and SOQL Query tabs that correspond to physical project files now use the exact same IDE resources used for those files' first-class editor tabs. This means that changes made in one are immediately reflected in the other (bidirectionally, of course), file saves occur consistently across the various editors, etc.
  • Accommodated for a recent breaking change in the JSON response to the sf project deploy/retrieve start commands when conflicts are detected.
  • Other related fixes and improvements.