Repository: karaf Updated Branches: refs/heads/karaf-2.x fc26ae0c2 -> 02ae75d22
[KARAF-3625] Give some time to find encryption service in order to avoid race condition throwing IllegalStateException Project: http://git-wip-us.apache.org/repos/asf/karaf/repo Commit: http://git-wip-us.apache.org/repos/asf/karaf/commit/02ae75d2 Tree: http://git-wip-us.apache.org/repos/asf/karaf/tree/02ae75d2 Diff: http://git-wip-us.apache.org/repos/asf/karaf/diff/02ae75d2 Branch: refs/heads/karaf-2.x Commit: 02ae75d227b21b9e4b365ba4b7a2a5b02bfd9bb2 Parents: fc26ae0 Author: Jean-Baptiste Onofré <[email protected]> Authored: Tue Apr 7 18:13:07 2015 +0200 Committer: Jean-Baptiste Onofré <[email protected]> Committed: Tue Apr 7 18:13:07 2015 +0200 ---------------------------------------------------------------------- .../jaas/modules/encryption/EncryptionSupport.java | 16 +++++++++++++++- .../OSGI-INF/blueprint/karaf-jaas-module.xml | 2 +- 2 files changed, 16 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/karaf/blob/02ae75d2/jaas/modules/src/main/java/org/apache/karaf/jaas/modules/encryption/EncryptionSupport.java ---------------------------------------------------------------------- diff --git a/jaas/modules/src/main/java/org/apache/karaf/jaas/modules/encryption/EncryptionSupport.java b/jaas/modules/src/main/java/org/apache/karaf/jaas/modules/encryption/EncryptionSupport.java index cc2d074..3af884e 100644 --- a/jaas/modules/src/main/java/org/apache/karaf/jaas/modules/encryption/EncryptionSupport.java +++ b/jaas/modules/src/main/java/org/apache/karaf/jaas/modules/encryption/EncryptionSupport.java @@ -78,6 +78,20 @@ public class EncryptionSupport { encryptionServiceReferences = bundleContext.getServiceReferences( EncryptionService.class.getName(), name != null && name.length() > 0 ? "(name=" + name + ")" : null); + int timeout = 0; + while (encryptionServiceReferences == null || encryptionServiceReferences.length == 0) { + try { + Thread.sleep(500); + } catch (InterruptedException ie) { + // nothing to do + } + encryptionServiceReferences = bundleContext.getServiceReferences( + EncryptionService.class.getName(), + name != null && name.length() > 0 ? "(name=" + name + ")" : null); + timeout++; + if (timeout == 40) + break; + } } catch (InvalidSyntaxException e) { throw new IllegalStateException("The encryption service filter is not well formed.", e); } @@ -85,7 +99,7 @@ public class EncryptionSupport { if (name != null && name.length() > 0) { throw new IllegalStateException("Encryption service " + name + " not found. Please check that the encryption service is correctly set up."); } else { - throw new IllegalStateException("No encryption service found. Please install the Karaf encryption feature and check that the encryption algorithm is supported.."); + throw new IllegalStateException("No encryption service found. Please install the Karaf encryption feature and check that the encryption algorithm is supported."); } } Arrays.sort(encryptionServiceReferences); http://git-wip-us.apache.org/repos/asf/karaf/blob/02ae75d2/jaas/modules/src/main/resources/OSGI-INF/blueprint/karaf-jaas-module.xml ---------------------------------------------------------------------- diff --git a/jaas/modules/src/main/resources/OSGI-INF/blueprint/karaf-jaas-module.xml b/jaas/modules/src/main/resources/OSGI-INF/blueprint/karaf-jaas-module.xml index b4d0740..915f076 100644 --- a/jaas/modules/src/main/resources/OSGI-INF/blueprint/karaf-jaas-module.xml +++ b/jaas/modules/src/main/resources/OSGI-INF/blueprint/karaf-jaas-module.xml @@ -71,7 +71,7 @@ </jaas:module> </jaas:config> - <!-- Properties installer --> + <!-- AutoEncryption support --> <bean class="org.apache.karaf.jaas.modules.properties.AutoEncryptionSupport" init-method="init" destroy-method="destroy"> <argument>
