diff --git a/CHANGELOG.md b/CHANGELOG.md index fddf0a719..d17369bcc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,15 @@ All notable changes to the LaunchDarkly Java SDK will be documented in this file. This project adheres to [Semantic Versioning](http://semver.org). +## [5.6.0] - 2021-07-02 +### Added: +- The `builder()` method in `FeatureFlagsState`, for creating instances of that class (most likely useful in test code). ([#234](https://github.com/launchdarkly/java-server-sdk/issues/234)) + +### Fixed: +- If you called the `LDClient` constructor with an SDK key that contained a character less than `0x20` or greater than `0x7e`, it would throw an `IllegalArgumentException` that contained the full SDK key string in its message. Since the string might contain a real key (if for instance the application had read the SDK key from configuration data that included a newline character, and neglected to trim the newline), exposing the value in an exception message that might end up in a log was a security risk. This has been changed so that the exception message only says the key contains an invalid character, but does not include the value. (The underlying exception behavior is part of the OkHttp library, so be aware that if you inject any custom headers with illegal characters into your HTTP configuration, their values might still be exposed in this way.) +- In polling mode, the SDK would attempt to reconnect to the LaunchDarkly streaming service even if it received an HTTP 401 error. It should reconnect for other errors such as 503, but 401 indicates that the SDK key is invalid and a retry cannot succeed; the SDK did have logic to permanently stop the connection in this case, but it was not working. (This is equivalent to the bug that was fixed in 5.5.1, but for polling mode.) +- Fixed documentation comments for `FileData` to clarify that you should _not_ use `offline` mode in conjunction with `FileData`; instead, you should just turn off events if you don't want events to be sent. Turning on `offline` mode will disable `FileData` just as it disables all other data sources. ([#235](https://github.com/launchdarkly/java-server-sdk/issues/235)) + ## [5.5.1] - 2021-06-24 ### Fixed: - The SDK was attempting to reconnect to the LaunchDarkly streaming service even if it received an HTTP 401 error. It should reconnect for other errors such as 503, but 401 indicates that the SDK key is invalid and a retry cannot succeed; the SDK did have logic to permanently stop the connection in this case, but it was not working. diff --git a/gradle.properties b/gradle.properties index 62250a616..2f2d84d1e 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,4 +1,4 @@ -version=5.5.1 +version=5.6.0 # The following empty ossrh properties are used by LaunchDarkly's internal integration testing framework # and should not be needed for typical development purposes (including by third-party developers). ossrhUsername= diff --git a/src/main/java/com/launchdarkly/sdk/server/Version.java b/src/main/java/com/launchdarkly/sdk/server/Version.java index 7db4d597a..5cece03d5 100644 --- a/src/main/java/com/launchdarkly/sdk/server/Version.java +++ b/src/main/java/com/launchdarkly/sdk/server/Version.java @@ -4,5 +4,5 @@ abstract class Version { private Version() {} // This constant is updated automatically by our Gradle script during a release, if the project version has changed - static final String SDK_VERSION = "5.5.1"; + static final String SDK_VERSION = "5.6.0"; }