[java-identity-provider COMMIT] /trunk/idp-session-impl/src/main/java/net/shibboleth/idp/session/impl/StorageBackedId...

noreply at shibboleth.net noreply at shibboleth.net
Thu Nov 3 15:52:38 EDT 2016


Author: scantor
Date: Thu Nov  3 15:52:38 2016
New Revision: 8555

URL: http://svn.shibboleth.net/view/java-identity-provider?rev=8555&view=rev
Log:
IDP-1078 - StorageBackedIdPSessionSerializer is slow under heavy load

https://issues.shibboleth.net/jira/browse/IDP-1078

Modified:
    trunk/idp-session-impl/src/main/java/net/shibboleth/idp/session/impl/StorageBackedIdPSessionSerializer.java

Modified: trunk/idp-session-impl/src/main/java/net/shibboleth/idp/session/impl/StorageBackedIdPSessionSerializer.java
URL: http://svn.shibboleth.net/view/java-identity-provider/trunk/idp-session-impl/src/main/java/net/shibboleth/idp/session/impl/StorageBackedIdPSessionSerializer.java?rev=8555&r1=8554&r2=8555&view=diff
==============================================================================
--- trunk/idp-session-impl/src/main/java/net/shibboleth/idp/session/impl/StorageBackedIdPSessionSerializer.java	(original)
+++ trunk/idp-session-impl/src/main/java/net/shibboleth/idp/session/impl/StorageBackedIdPSessionSerializer.java	Thu Nov  3 15:52:38 2016
@@ -25,13 +25,13 @@
 import javax.annotation.Nonnull;
 import javax.annotation.Nullable;
 import javax.annotation.concurrent.ThreadSafe;
-import javax.json.Json;
 import javax.json.JsonArray;
 import javax.json.JsonException;
 import javax.json.JsonObject;
 import javax.json.JsonReader;
 import javax.json.JsonString;
 import javax.json.JsonStructure;
+import javax.json.spi.JsonProvider;
 import javax.json.stream.JsonGenerator;
 
 import net.shibboleth.idp.authn.AuthenticationResult;
@@ -82,6 +82,8 @@
     /** Object instance to overwrite with deserialization method. */
     @Nullable private final StorageBackedIdPSession targetObject;
 
+    /** JsonProvider to be used for session serialization. */
+    @Nonnull private final JsonProvider jsonProvider;
     /**
      * Constructor.
      * 
@@ -92,6 +94,7 @@
             @Nullable final StorageBackedIdPSession target) {
         sessionManager = Constraint.isNotNull(manager, "SessionManager cannot be null");
         targetObject = target;
+        jsonProvider = JsonProvider.provider();
     }
 
     /** {@inheritDoc} */
@@ -100,7 +103,7 @@
 
         try {
             final StringWriter sink = new StringWriter(128);
-            final JsonGenerator gen = Json.createGenerator(sink);
+            final JsonGenerator gen = jsonProvider.createGenerator(sink);
             gen.writeStartObject().write(CREATION_INSTANT_FIELD, instance.getCreationInstant())
                     .write(PRINCIPAL_NAME_FIELD, instance.getPrincipalName());
 
@@ -156,7 +159,7 @@
         }
 
         try {
-            final JsonReader reader = Json.createReader(new StringReader(value));
+            final JsonReader reader = jsonProvider.createReader(new StringReader(value));
             final JsonStructure st = reader.read();
             if (!(st instanceof JsonObject)) {
                 throw new IOException("Found invalid data structure while parsing IdPSession");



More information about the commits mailing list