This is an automated email from the ASF dual-hosted git repository. olli pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-commons-crypto.git
commit 3aaa5b95db563693b21de684edaefdc8fa4287e3 Author: Oliver Lietz <o...@apache.org> AuthorDate: Wed Jun 16 23:50:27 2021 +0200 do not deconstruct component, keep it in an usable state --- .../sling/commons/crypto/internal/FilePasswordProvider.java | 3 ++- .../commons/crypto/internal/FilePasswordProviderTest.java | 12 ++++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/apache/sling/commons/crypto/internal/FilePasswordProvider.java b/src/main/java/org/apache/sling/commons/crypto/internal/FilePasswordProvider.java index 022e44d..f34b4ac 100644 --- a/src/main/java/org/apache/sling/commons/crypto/internal/FilePasswordProvider.java +++ b/src/main/java/org/apache/sling/commons/crypto/internal/FilePasswordProvider.java @@ -24,6 +24,7 @@ import java.io.IOException; import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.util.Arrays; +import java.util.Objects; import org.apache.sling.commons.crypto.PasswordProvider; import org.jetbrains.annotations.NotNull; @@ -74,7 +75,6 @@ public class FilePasswordProvider implements PasswordProvider { @Deactivate protected void deactivate() { logger.debug("deactivating"); - this.configuration = null; } private char[] readPassword(final String path, final boolean fixPosixNewline) throws IOException { @@ -106,6 +106,7 @@ public class FilePasswordProvider implements PasswordProvider { @Override public char @NotNull [] getPassword() { + Objects.requireNonNull(configuration, "Configuration must not be null"); try { return readPassword(configuration.path(), configuration.fix_posixNewline()); } catch (IOException e) { diff --git a/src/test/java/org/apache/sling/commons/crypto/internal/FilePasswordProviderTest.java b/src/test/java/org/apache/sling/commons/crypto/internal/FilePasswordProviderTest.java index 5510451..bf38ed2 100644 --- a/src/test/java/org/apache/sling/commons/crypto/internal/FilePasswordProviderTest.java +++ b/src/test/java/org/apache/sling/commons/crypto/internal/FilePasswordProviderTest.java @@ -43,6 +43,14 @@ public class FilePasswordProviderTest { public ExpectedException exception = ExpectedException.none(); @Test + public void testMissingConfiguration() { + final FilePasswordProvider provider = new FilePasswordProvider(); + exception.expect(NullPointerException.class); + exception.expectMessage("Configuration must not be null"); + provider.getPassword(); + } + + @Test public void testComponentLifecycle() throws IOException { final FilePasswordProvider provider = new FilePasswordProvider(); { // activate @@ -59,6 +67,10 @@ public class FilePasswordProviderTest { provider.modified(configuration); assertThat(provider.getPassword()).isEqualTo(PASSWORD_UTF8); } + { // deactivate + provider.deactivate(); + assertThat(provider.getPassword()).isEqualTo(PASSWORD_UTF8); + } } @Test