You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by ad...@apache.org on 2016/06/17 16:34:40 UTC

[05/21] wicket git commit: WICKET-6154 Performance bottleneck when using KeyInSessionSunJceCryptFactory

WICKET-6154 Performance bottleneck when using KeyInSessionSunJceCryptFactory

Reduce the complexity of the method by removing a conditional branch that is not really needed.

Note: Security#getProviders() javadoc states that it may return null but the implementation (and the years in usage) show that it actually returns empty array


Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/77e1e856
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/77e1e856
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/77e1e856

Branch: refs/heads/WICKET-6183
Commit: 77e1e856b024f79b6e30a4dcc94fc91bf49cb9c8
Parents: c6f53a6
Author: Martin Tzvetanov Grigorov <mg...@apache.org>
Authored: Sun May 22 10:44:49 2016 +0200
Committer: Andrea Del Bene <ad...@apache.org>
Committed: Fri May 27 13:12:16 2016 +0200

----------------------------------------------------------------------
 .../crypt/KeyInSessionSunJceCryptFactory.java   | 25 ++++++++++----------
 1 file changed, 12 insertions(+), 13 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/wicket/blob/77e1e856/wicket-core/src/main/java/org/apache/wicket/core/util/crypt/KeyInSessionSunJceCryptFactory.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/core/util/crypt/KeyInSessionSunJceCryptFactory.java b/wicket-core/src/main/java/org/apache/wicket/core/util/crypt/KeyInSessionSunJceCryptFactory.java
index ceedcfc..ce3037e 100644
--- a/wicket-core/src/main/java/org/apache/wicket/core/util/crypt/KeyInSessionSunJceCryptFactory.java
+++ b/wicket-core/src/main/java/org/apache/wicket/core/util/crypt/KeyInSessionSunJceCryptFactory.java
@@ -64,21 +64,20 @@ public class KeyInSessionSunJceCryptFactory implements ICryptFactory
 	{
 		this.cryptMethod = Args.notNull(cryptMethod, "Crypt method");
 
-
-		if (Security.getProviders("Cipher." + cryptMethod).length > 0)
-		{
-			return; // we are good to go!
-		}
-		try
+		if (Security.getProviders("Cipher." + cryptMethod).length == 0)
 		{
-			// Initialize and add a security provider required for encryption
-			final Class<?> clazz = Class.forName("com.sun.crypto.provider.SunJCE");
+			try
+			{
+				// Initialize and add a security provider required for encryption
+				final Class<?> clazz = Class.forName("com.sun.crypto.provider.SunJCE");
 
-			Security.addProvider((Provider)clazz.newInstance());
-		}
-		catch (Exception ex)
-		{
-			throw new RuntimeException("Unable to load SunJCE service provider", ex);
+				final Provider provider = (Provider) clazz.newInstance();
+				Security.addProvider(provider);
+			}
+			catch (Exception ex)
+			{
+				throw new RuntimeException("Unable to load SunJCE service provider", ex);
+			}
 		}
 	}