[java-opensaml COMMIT] /trunk/opensaml-saml-api/src/main/java/org/opensaml/saml/common/xml/SAMLSchemaBuilder.java

noreply at shibboleth.net noreply at shibboleth.net
Thu Feb 12 10:31:58 EST 2015


Author: scantor
Date: Thu Feb 12 10:31:57 2015
New Revision: 4223

URL: http://svn.shibboleth.net/view/java-opensaml?rev=4223&view=rev
Log:
OSJ-106 - schema validation can prevent use of metadata

Modified:
    trunk/opensaml-saml-api/src/main/java/org/opensaml/saml/common/xml/SAMLSchemaBuilder.java

Modified: trunk/opensaml-saml-api/src/main/java/org/opensaml/saml/common/xml/SAMLSchemaBuilder.java
URL: http://svn.shibboleth.net/view/java-opensaml/trunk/opensaml-saml-api/src/main/java/org/opensaml/saml/common/xml/SAMLSchemaBuilder.java?rev=4223&r1=4222&r2=4223&view=diff
==============================================================================
--- trunk/opensaml-saml-api/src/main/java/org/opensaml/saml/common/xml/SAMLSchemaBuilder.java (original)
+++ trunk/opensaml-saml-api/src/main/java/org/opensaml/saml/common/xml/SAMLSchemaBuilder.java Thu Feb 12 10:31:57 2015
@@ -18,7 +18,6 @@
 package org.opensaml.saml.common.xml;
 
 import java.io.InputStream;
-import java.lang.ref.SoftReference;
 
 import javax.annotation.Nonnull;
 import javax.annotation.Nullable;
@@ -37,7 +36,7 @@
  * A convenience builder for creating {@link Schema}s for validating SAML 1.0, 1.1, and 2.0.
  * 
  * <p>Additional schemas may be included in the resulting object by supplying their locations
- * to a injected {@link SchemaBuilder} object.</p>
+ * to an injected {@link SchemaBuilder} object.</p>
  */
 @ThreadSafe
 public class SAMLSchemaBuilder {
@@ -115,14 +114,14 @@
         SAMLConstants.SAML20MDUI_SCHEMA_LOCATION,
         SAMLConstants.SAML20MDATTR_SCHEMA_LOCATION,
         SAMLConstants.SAML20MDRPI_SCHEMA_LOCATION,
+        SAMLConstants.SAML20ALG_SCHEMA_LOCATION,
         SAMLConstants.SAML20CB_SCHEMA_LOCATION,
         SAMLConstants.SAML20PASLO_SCHEMA_LOCATION,
         SAMLConstants.SAMLEC_GSS_SCHEMA_LOCATION,
-        SAMLConstants.SAML20ALG_SCHEMA_LOCATION,
         };
 
     /** Cached copy of the schema produced by the builder. */
-    @Nullable private SoftReference<Schema> cachedSchema;
+    @Nullable private Schema cachedSchema;
 
     /** Reference to SAML 1.x schemas to apply. */
     @Nonnull @NonnullElements @NotEmpty private String[] saml1xSchemas;
@@ -178,11 +177,11 @@
      * @throws SAXException thrown if a schema object cannot be created
      */
     @Nonnull public synchronized Schema getSAMLSchema() throws SAXException {
-        if (cachedSchema == null || cachedSchema.get() == null) {
-            cachedSchema = new SoftReference<>(schemaBuilder.buildSchema());
-        }
-
-        return cachedSchema.get();
+        if (cachedSchema == null) {
+            cachedSchema = schemaBuilder.buildSchema();
+        }
+
+        return cachedSchema;
     }
 
 // Checkstyle: CyclomaticComplexity OFF
@@ -191,7 +190,7 @@
      */
     @Nonnull private void configureBuilder() {
         
-        Class<SAMLSchemaBuilder> clazz = SAMLSchemaBuilder.class;
+        final Class<SAMLSchemaBuilder> clazz = SAMLSchemaBuilder.class;
         
         for (final String source : baseXMLSchemas) {
             final InputStream stream = clazz.getResourceAsStream(source);



More information about the commits mailing list