[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
Fri Nov 6 22:45:35 EST 2015
Author: putmanb
Date: Fri Nov 6 22:45:35 2015
New Revision: 4407
URL: http://svn.shibboleth.net/view/java-opensaml?rev=4407&view=rev
Log:
OSJ-110 and OSJ-111: Adjust handling in error cases.
In cases where configureBuilder() does throw, as it can now, make sure we leave things in
a known and acceptable state.
When injecting an external SchemaBuilder, clear the cached schema before configuring, that way
it's already cleared if the configure throws.
When in getSAMLSchema(), if lazy initing a new SchemaBuilder and the configure fails, clear
out the builder reference so it's not left in a half-inited state and used on the next call.
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=4407&r1=4406&r2=4407&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 Fri Nov 6 22:45:35 2015
@@ -184,8 +184,8 @@
*/
public synchronized void setSchemaBuilder(@Nonnull final SchemaBuilder builder) {
schemaBuilder = Constraint.isNotNull(builder, "SchemaBuilder cannot be null");
+ cachedSchema = null;
configureBuilder();
- cachedSchema = null;
}
/**
@@ -198,9 +198,14 @@
@Nonnull public synchronized Schema getSAMLSchema() throws SAXException {
if (cachedSchema == null) {
if (schemaBuilder == null) {
- schemaBuilder = new SchemaBuilder();
- schemaBuilder.setResourceResolver(new ClasspathResolver());
- configureBuilder();
+ try {
+ schemaBuilder = new SchemaBuilder();
+ schemaBuilder.setResourceResolver(new ClasspathResolver());
+ configureBuilder();
+ } catch (RuntimeException e) {
+ schemaBuilder = null;
+ throw e;
+ }
}
cachedSchema = schemaBuilder.buildSchema();
return cachedSchema;
More information about the commits
mailing list