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

Reply via email to