[jboss-cvs] JBossAS SVN: r99516 - in projects/bootstrap/trunk: impl-base/src/main/java/org/jboss/bootstrap/impl/base/config and 1 other directory.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Sun Jan 17 23:22:04 EST 2010
Author: ALRubinger
Date: 2010-01-17 23:22:03 -0500 (Sun, 17 Jan 2010)
New Revision: 99516
Modified:
projects/bootstrap/trunk/api/src/main/java/org/jboss/bootstrap/api/config/ServerConfig.java
projects/bootstrap/trunk/impl-base/src/main/java/org/jboss/bootstrap/impl/base/config/AbstractBasicServerConfig.java
Log:
[JBBOOT-118] Defensive copy on bootstrap descriptors once the configuration is frozen
Modified: projects/bootstrap/trunk/api/src/main/java/org/jboss/bootstrap/api/config/ServerConfig.java
===================================================================
--- projects/bootstrap/trunk/api/src/main/java/org/jboss/bootstrap/api/config/ServerConfig.java 2010-01-18 04:17:13 UTC (rev 99515)
+++ projects/bootstrap/trunk/api/src/main/java/org/jboss/bootstrap/api/config/ServerConfig.java 2010-01-18 04:22:03 UTC (rev 99516)
@@ -106,7 +106,7 @@
* Freezes the configuration, marking it as immutable. Will typically
* be invoked by a server during the {@link LifecycleState#INITIALIZED} lifecycle.
*
- * @throws IllegalStateException
+ * @throws IllegalStateException If already frozen
*/
void freeze() throws IllegalStateException;
Modified: projects/bootstrap/trunk/impl-base/src/main/java/org/jboss/bootstrap/impl/base/config/AbstractBasicServerConfig.java
===================================================================
--- projects/bootstrap/trunk/impl-base/src/main/java/org/jboss/bootstrap/impl/base/config/AbstractBasicServerConfig.java 2010-01-18 04:17:13 UTC (rev 99515)
+++ projects/bootstrap/trunk/impl-base/src/main/java/org/jboss/bootstrap/impl/base/config/AbstractBasicServerConfig.java 2010-01-18 04:22:03 UTC (rev 99516)
@@ -24,6 +24,7 @@
import java.net.MalformedURLException;
import java.net.URL;
+import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Map;
@@ -80,7 +81,7 @@
/**
* Bootstrap descriptors
*/
- private final List<BootstrapDescriptor> bootstrapDescriptors;
+ private List<BootstrapDescriptor> bootstrapDescriptors;
//-------------------------------------------------------------------------------------||
// Constructor ------------------------------------------------------------------------||
@@ -275,11 +276,24 @@
return this.covarientReturn();
}
- /* (non-Javadoc)
- * @see org.jboss.bootstrap.spi.config.ServerConfig#freeze()
+ /**
+ * @see org.jboss.bootstrap.api.config.ServerConfig#freeze()
*/
public void freeze() throws IllegalStateException
{
+ // Precondition checks
+ if (this.isFrozen())
+ {
+ throw new IllegalStateException("Configuration is already frozen");
+ }
+
+ // Make a defensive copy of the bootstrap descriptors
+ final List<BootstrapDescriptor> copy = new ArrayList<BootstrapDescriptor>(bootstrapDescriptors.size());
+ copy.addAll(bootstrapDescriptors);
+ // Make immutable
+ bootstrapDescriptors = Collections.unmodifiableList(copy);
+
+ // Mark
this.frozen = true;
}
More information about the jboss-cvs-commits
mailing list