Couchbase Scala SDK Release Notes and Archives

    +
    Release notes, installation instructions, and download archive for the Couchbase Scala Client.

    Version 1.0.8 (1 September 2020)

    Version 1.0.8 is the ninth release of the Scala SDK, bringing enhancements and bugfixes over the last stable release.

    The supported and tested dependencies for this release are:

    • com.couchbase.client:scala-client:1.0.8

    • com.couchbase.client:core-io:2.0.9

    • io.projectreactor:reactor-core:3.3.9.RELEASE

    • org.reactivestreams:reactive-streams:1.0.3

    Bug Fixes

    • JVMCBC-805: The client now handles bootstrapping against nodes much better which do not have the data service enabled (in an MDS setup).

    • JVMCBC-882: A bug has been fixed where when bootstrapping against a node with no data service enabled, the endpoint would not be cleaned up and would keep trying to reconnect.

    • JVMCBC-872: The client now more explicitly handles an error response code (NO_ACCESS) when a subdocument request is performed against a system xattr.

    • JVMCBC-873: Durability information is now properly unwrapped from an optional when exported and dumped (for example as part of an exception).

    • JVMCBC-880: The client now trackes multiple parallel bucket open attempts (against different buckets) in a better way, making sure that an internal state is only switched when all those bucket open attempts have completed (and not just the first one).

    • JVMCBC-878: EndpointDiagnostics had the local and remote hostnames mixed up, they now show up in the correct order.

    Enhancements

    • JVMCBC-883: The client is now a little less verbose when performing a DNS SRV request and the underlying JDK operation times out.

    • JVMCBC-879: Updated internal and external dependencies to their latest maintenance releases.

    • JVMCBC-874: When dealing with unknown collections, the SDK now returns a more user friendly retry reason when it can (outdated manifest vs. collection not found).

    • JVMCBC-875: On the request timeout exception, the retry reasons are now accessible directly.

    Version 1.0.7 (4 August 2020)

    Version 1.0.7 is the eighth release of the Scala SDK, bringing enhancements, and bugfixes over the last stable release.

    The supported and tested dependencies for this release are:

    • com.couchbase.client:scala-client:1.0.7

    • com.couchbase.client:core-io:2.0.8

    • io.projectreactor:reactor-core:3.3.8.RELEASE

    • org.reactivestreams:reactive-streams:1.0.3

    Bug Fixes

    • SCBC-247: Removed cas from IncrementOptions and DecrementOptions. CAS is not supported by the underlying protocol and should not have been exposed in these options.

    • JVMCBC-870: A bug in the chunk response parser prohibited responses meant that View reduce responses were never completed, and as a result timed out on the user side. The completion of view results with reduce enabled has now been fixed.

    Enhancements

    • JVMCBC-867: Performance improvement: do not grab ByteBuf slice when extracting server response time.

    • JVMCBC-869: Maintenance dependency bump: Netty → 4.1.51, Jackson → 2.11.1, Reactor → 3.3.7, OpenTelemetry → 0.6.0, Reactor Scala Extensions → 0.7.1.

    Version 1.0.6 (14 July 2020)

    Version 1.0.6 is the seventh release of the Scala SDK.

    The supported and tested dependencies for this release are:

    • com.couchbase.client:scala-client:1.0.6

    • com.couchbase.client:core-io:2.0.7

    • io.projectreactor:reactor-core:3.3.5.RELEASE

    • org.reactivestreams:reactive-streams:1.0.3

    Enhancements

    • JVMCBC-865: Change the default idle timeout to 4.5s for http connections, to support performance improvements in query service.

    Bug Fixes

    • SCBC-244: ViewQuery with keys does not work.

    • JVMCBC-849: Redundant global loading exceptions no longer propagated — now logged at debug level.

    • JVMCBC-856: A just-opened connection in pool no longer gets cleaned up prematurely .

    • JVMCBC-858: Channel writeAndFlush failures are no longer ignored.

    • JVMCBC-862: Race condition with node identifier change on bootstrap identified. New logic and some changes to the config provider code ensures that retry and resubscribe picks up fresh seed nodes.

    • JVMCBC-863: Bucket-Level ping report no longer includes other view and KV services buckets.

    • JVMCBC-866: Trailing : no longer added to IPv6 addresses without []. 'invalid IPv6 address' warnings now no longer produced when trying to connect to a valid Ipv6 address thus specified.

    Version 1.0.5 (2 June 2020)

    Version 1.0.5 is the sixth release of the Scala SDK. It brings no new changes to the Scala client itself, but inherits enhancements and bugfixes over the last stable release from the core-io dependency.

    The supported and tested dependencies for this release are:

    • com.couchbase.client:scala-client:1.0.5

    • com.couchbase.client:core-io:2.0.6

    • io.projectreactor:reactor-core:3.3.5.RELEASE

    • org.reactivestreams:reactive-streams:1.0.3

    Enhancements

    • JVMCBC-852: Bumped Reactor to 3.3.5, Netty to 4.1.50.Final, and Jackson to 2.11.0.

    • JVMCBC-693: For performance, the KV bootstrap sequence is now partially pipelined.

    Bug Fixes

    • JVMCBC-849: Duplicate global loading exceptions are now swallowed to remove redundant warnings from logging (this was a cosmetic-only issue).

    Version 1.0.4 (7 May 2020)

    Version 1.0.4 is the fifth release of the Scala SDK. It brings no new changes to the Scala client itself, but inherits enhancements and bugfixes over the last stable release from the core-io dependency.

    The supported and tested dependencies for this release are:

    • com.couchbase.client:scala-client:1.0.4

    • com.couchbase.client:core-io:2.0.5

    • io.projectreactor:reactor-core:3.3.4.RELEASE

    • org.reactivestreams:reactive-streams:1.0.3

    Enhancements

    • JVMCBC-841: Bumped Netty dependency to 2.0.30, and reactor to 3.3.4.

    Bug Fixes

    • JVMCBC-845: If a rebalance is stopped in the middle, an edge case occasionally causes KV ops to time out as the fast forward map is chosen over the retry. The behavior has now been changed so that the client will try the old and new servers to make sure the operation eventually gets dispatched to the right node.

    Version 1.0.3 (7 April 2020)

    Version 1.0.3 is the fourth release of the Scala SDK. It brings no new changes to the Scala client itself, but inherits enhancements and bugfixes over the last stable release from the core-io dependency.

    The supported and tested dependencies for this release are:

    • com.couchbase.client:scala-client:1.0.3

    • com.couchbase.client:core-io:2.0.4

    • io.projectreactor:reactor-core:3.3.1.RELEASE

    • org.reactivestreams:reactive-streams:1.0.2

    Enhancements

    • JVMCBC-830: Added more convenient overloads for SecurityConfig and CertAuth. These overloads initialize both the SecurityConfig and the CertificateAuthenticator directly from a KeyStore or TrustStore.

    • JVMCBC-831: Improves timeout for waitUntilReady — the waitUntilReady helper should now throw a proper timeout exception.

    • JVMCBC-832: Added support for multiple ports per hostname in the connection string — without having to use the explicit SeedNode set overload.

    • JVMCBC-835: Using "localhost:8091" as a connection string would set the kv bootstrap port to 8091, which is not desired behavior. To prevent this from happening again, the code now checks for this condition, fails fast, and also provides guidance on what the connection string should look like instead.

    • JVMCBC-836: Enabled Unordered Execution by Default.

    • JVMCBC-837: Updates OpenTelemetry to 0.3 (beta).

    • JVMCBC-839: Bootstrap will now correctly use the mapped port if alternate addr is present.

    Bug Fixes

    • JVMCBC-834: 'CollectionNotFoundException' now triggers a retry, and if no collection refresh is currently in progress it will proactively trigger a new one. Now Docs created under custom collection should no longer raise an exception when a collection has been created in the meantime, but the collection is not found as no refresh is in progress.

    • JVMCBC-826: A NullPointerException was occuring when LDAP is enabled. The code now explicitly fails the connection with a descriptive error message instructing the user what to do next (either use TLS which is preferred) or enable PLAIN on the password authenticator (insecure).

    • JVMCBC-827: Search query results row_hit typo resulted in 0 being returned for total rows. This has now been fixed.

    • JVMCBC-828: Omit internal config request in orphan reporting.

    Version 1.0.2 (3 March 2020)

    Version 1.0.2 is the third release of the Scala SDK, bringing enhancements and bugfixes over the last stable release.

    The supported and tested dependencies for this release are:

    • com.couchbase.client:scala-client:1.0.2

    • com.couchbase.client:core-io:2.0.3

    • io.projectreactor:reactor-core:3.3.1.RELEASE

    • org.reactivestreams:reactive-streams:1.0.2

    Enhancements

    • JVMCBC-813: Improved error message for bucket is missing.

    • JVMCBC-815: Check if key exceeds size limits.

    • JVMCBC-818: Trimmed netty stack in connect failures for more readable output.

    • JVMCBC-819: Distinguished bucket not found in select bucket failures.

    • JVMCBC-823: Added a global component to the core id.

    • JVMCBC-825: Support added for new VATTR HELLO flag.

    • SCBC-43: With huge thanks to our community, who submitted the patch, it is now possible to build versions of the SDK for 2.11 and 2.13. Couchbase only officially provides, tests and supports a Scala 2.12 build currently, but users are welcome to build their own jars for 2.11 or 2.13 following the README instructions.

    Bug Fixes

    • SCBC-200: Dependencies now correctly shaded.

    • SCBC-207: Exists no longer returns wrong value if executed right after remove.

    • SCBC-216: Properly clear cache when repreparing/retrying query.

    • JVMCBC-824: Native Netty transports not included, resulting in fallback to default implementation. This was a regression in the 2.0.2 core-io release.

    • JCBC-1600: Using expiry together with document flags on a Sub-Document mutateIn no longer causes an incorrect flags field to be sent.

    Version 1.0.1 (5th February 2020)

    Version 1.0.1 is the second release of the 1.0 series, bringing new features, enhancements, and bugfixes over the last stable release.

    Stability Enhancements & Bug Fixes

    • SCBC-192: All scaladoc warnings fixed.

    • SCBC-193: When creating buckets, numReplicas can now be specified.

    New Features & Enhancements

    • SCBC-190: Exposed enableDnsSrv parameter on IoConfig(), allowing DNS SRV to be used.

    • SCBC-204: Added support for new server flag createAsDeleted — for internal use only.

    • SCBC-201: Exposed Java core environment through Scala ClusterEnvironment, allowing the event-bus to be accessed.

    • SCBC-198: Exposed environment getter through cluster. This allows a constructed environment to be shutdown without having to maintain a reference to it.

    Version 1.0.0 (17th January 2020)

    This is the first General Availability (GA) release of the new Couchbase Scala SDK. It brings a large number of improvements, bug-fixes and API changes from the previous beta release.

    Stability Enhancements & Bug Fixes

    • SCBC-147: QueryIndexManager should return only GSI indexes

    • SCBC-151: Make sure all reactive ops are deferred; this ensures that collection.reactive.remove(…​) won’t perform a remove until the SMono is subscribed to

    • SCBC-154: Make UserManager handle pre-LDAP clusters

    • SCBC-157: Handle projections of objects inside arrays correctly

    • SCBC-158: Handle 'too many set inserts' internal error while converting JSON to case classes

    • SCBC-163: ViewQuery does not send request

    • SCBC-167: Fix FTS consistentWith

    • SCBC-174: ReactiveCollection KV operations now do ClientVerified Observe check

    • SCBC-182: QueryOptions missing setters

    New Features & Enhancements

    • SCBC-190: Expose enableDnsSrv parameter on IoConfig(), allowing DNS SRV to be used

    • SCBC-192: All scaladoc warnings fixed

    • SCBC-204: Add support for new server flag createAsDeleted, for internal use only

    API Changes

    • SCBC-159: Fix semantics of datastructures so they behave more like Scala collections

    • SCBC-162: All ReactiveBinaryCollection methods should return SMono

    • SCBC-164: Align with latest view RFC

    • SCBC-136: Track all Java environment changes

    • SCBC-138: Replace management API Scala exceptions with core ones

    • SCBC-139: GetSelecter is using incorrect exceptions

    • SCBC-155: Rename *master to *active throughout

    • SCBC-187: Remove scopeExists and collectionExists from CollectionManager

    • SCBC-188: Align UserAndMetadata with latest RFC

    Pre-releases

    Numerous Alpha and Beta releases were made in the run-up to the 1.0 release, and although unsupported, the release notes and download links are retained for archive purposes here.