* application, in the order they were encountered in the web.xml file.
*/
private String applicationListeners[] = new String[0];
+
+ private final Object applicationListenersLock = new Object();
/**
private ApplicationParameter applicationParameters[] =
new ApplicationParameter[0];
+ private final Object applicationParametersLock = new Object();
+
/**
* The application available flag for this Context.
* The security constraints for this web application.
*/
private SecurityConstraint constraints[] = new SecurityConstraint[0];
+
+ private final Object constraintsLock = new Object();
/**
* defined in the deployment descriptor.
*/
private FilterMap filterMaps[] = new FilterMap[0];
+
+ private final Object filterMapsLock = new Object();
+
/**
* Filter mappings added via {@link ServletContext} may have to be inserted
*/
private String instanceListeners[] = new String[0];
+ private final Object instanceListenersLock = new Object();
+
/**
* The login configuration descriptor for this web application.
*/
private String securityRoles[] = new String[0];
+ private final Object securityRolesLock = new Object();
+
/**
* The servlet mappings for this web application, keyed by
*/
private HashMap<String, String> servletMappings =
new HashMap<String, String>();
+
+ private final Object servletMappingsLock = new Object();
/**
*/
private String watchedResources[] = new String[0];
+ private final Object watchedResourcesLock = new Object();
+
/**
* The welcome files for this application.
*/
private String welcomeFiles[] = new String[0];
+ private final Object welcomeFilesLock = new Object();
+
/**
* The set of classnames of LifecycleListeners that will be added
*/
private String wrapperLifecycles[] = new String[0];
+ private final Object wrapperLifecyclesLock = new Object();
/**
* The set of classnames of ContainerListeners that will be added
*/
private String wrapperListeners[] = new String[0];
+ private final Object wrapperListenersLock = new Object();
/**
* The pathname to the work directory for this context (relative to
*/
public void addApplicationListener(String listener) {
- synchronized (applicationListeners) {
+ synchronized (applicationListenersLock) {
String results[] =new String[applicationListeners.length + 1];
for (int i = 0; i < applicationListeners.length; i++) {
if (listener.equals(applicationListeners[i])) {
*/
public void addApplicationParameter(ApplicationParameter parameter) {
- synchronized (applicationParameters) {
+ synchronized (applicationParametersLock) {
String newName = parameter.getName();
for (int i = 0; i < applicationParameters.length; i++) {
if (newName.equals(applicationParameters[i].getName()) &&
}
// Add this constraint to the set for our web application
- synchronized (constraints) {
+ synchronized (constraintsLock) {
SecurityConstraint results[] =
new SecurityConstraint[constraints.length + 1];
for (int i = 0; i < constraints.length; i++)
validateFilterMap(filterMap);
// Add this filter mapping to our registered set
- synchronized (filterMaps) {
+ synchronized (filterMapsLock) {
FilterMap results[] =new FilterMap[filterMaps.length + 1];
System.arraycopy(filterMaps, 0, results, 0, filterMaps.length);
results[filterMaps.length] = filterMap;
validateFilterMap(filterMap);
// Add this filter mapping to our registered set
- synchronized (filterMaps) {
+ synchronized (filterMapsLock) {
FilterMap results[] = new FilterMap[filterMaps.length + 1];
System.arraycopy(filterMaps, 0, results, 0, filterMapInsertPoint);
results[filterMapInsertPoint] = filterMap;
*/
public void addInstanceListener(String listener) {
- synchronized (instanceListeners) {
+ synchronized (instanceListenersLock) {
String results[] =new String[instanceListeners.length + 1];
for (int i = 0; i < instanceListeners.length; i++)
results[i] = instanceListeners[i];
*/
public void addSecurityRole(String role) {
- synchronized (securityRoles) {
+ synchronized (securityRolesLock) {
String results[] =new String[securityRoles.length + 1];
for (int i = 0; i < securityRoles.length; i++)
results[i] = securityRoles[i];
(sm.getString("standardContext.servletMap.pattern", pattern));
// Add this mapping to our registered set
- synchronized (servletMappings) {
+ synchronized (servletMappingsLock) {
String name2 = servletMappings.get(pattern);
if (name2 != null) {
// Don't allow more than one servlet on the same pattern
*/
public void addWatchedResource(String name) {
- synchronized (watchedResources) {
+ synchronized (watchedResourcesLock) {
String results[] = new String[watchedResources.length + 1];
for (int i = 0; i < watchedResources.length; i++)
results[i] = watchedResources[i];
*/
public void addWelcomeFile(String name) {
- synchronized (welcomeFiles) {
+ synchronized (welcomeFilesLock) {
// Welcome files from the application deployment descriptor
// completely replace those from the default conf/web.xml file
if (replaceWelcomeFiles) {
*/
public void addWrapperLifecycle(String listener) {
- synchronized (wrapperLifecycles) {
+ synchronized (wrapperLifecyclesLock) {
String results[] =new String[wrapperLifecycles.length + 1];
for (int i = 0; i < wrapperLifecycles.length; i++)
results[i] = wrapperLifecycles[i];
*/
public void addWrapperListener(String listener) {
- synchronized (wrapperListeners) {
+ synchronized (wrapperListenersLock) {
String results[] =new String[wrapperListeners.length + 1];
for (int i = 0; i < wrapperListeners.length; i++)
results[i] = wrapperListeners[i];
wrapper = new StandardWrapper();
}
- synchronized (instanceListeners) {
+ synchronized (instanceListenersLock) {
for (int i = 0; i < instanceListeners.length; i++) {
try {
Class<?> clazz = Class.forName(instanceListeners[i]);
}
}
- synchronized (wrapperLifecycles) {
+ synchronized (wrapperLifecyclesLock) {
for (int i = 0; i < wrapperLifecycles.length; i++) {
try {
Class<?> clazz = Class.forName(wrapperLifecycles[i]);
}
}
- synchronized (wrapperListeners) {
+ synchronized (wrapperListenersLock) {
for (int i = 0; i < wrapperListeners.length; i++) {
try {
Class<?> clazz = Class.forName(wrapperListeners[i]);
*/
public ApplicationParameter[] findApplicationParameters() {
- return (applicationParameters);
+ synchronized (applicationParametersLock) {
+ return (applicationParameters);
+ }
}
*/
public String[] findInstanceListeners() {
- return (instanceListeners);
+ synchronized (instanceListenersLock) {
+ return (instanceListeners);
+ }
}
*/
public boolean findSecurityRole(String role) {
- synchronized (securityRoles) {
+ synchronized (securityRolesLock) {
for (int i = 0; i < securityRoles.length; i++) {
if (role.equals(securityRoles[i]))
return (true);
*/
public String[] findSecurityRoles() {
- return (securityRoles);
+ synchronized (securityRolesLock) {
+ return (securityRoles);
+ }
}
*/
public String findServletMapping(String pattern) {
- synchronized (servletMappings) {
+ synchronized (servletMappingsLock) {
return (servletMappings.get(pattern));
}
*/
public String[] findServletMappings() {
- synchronized (servletMappings) {
+ synchronized (servletMappingsLock) {
String results[] = new String[servletMappings.size()];
return
(servletMappings.keySet().toArray(results));
*/
public boolean findWelcomeFile(String name) {
- synchronized (welcomeFiles) {
+ synchronized (welcomeFilesLock) {
for (int i = 0; i < welcomeFiles.length; i++) {
if (name.equals(welcomeFiles[i]))
return (true);
* defined, a zero length array will be returned.
*/
public String[] findWatchedResources() {
- return watchedResources;
+ synchronized (watchedResourcesLock) {
+ return watchedResources;
+ }
}
*/
public String[] findWelcomeFiles() {
- return (welcomeFiles);
+ synchronized (welcomeFilesLock) {
+ return (welcomeFiles);
+ }
}
*/
public String[] findWrapperLifecycles() {
- return (wrapperLifecycles);
+ synchronized (wrapperLifecyclesLock) {
+ return (wrapperLifecycles);
+ }
}
*/
public String[] findWrapperListeners() {
- return (wrapperListeners);
+ synchronized (wrapperListenersLock) {
+ return (wrapperListeners);
+ }
}
*/
public void removeApplicationListener(String listener) {
- synchronized (applicationListeners) {
+ synchronized (applicationListenersLock) {
// Make sure this welcome file is currently present
int n = -1;
*/
public void removeApplicationParameter(String name) {
- synchronized (applicationParameters) {
+ synchronized (applicationParametersLock) {
// Make sure this parameter is currently present
int n = -1;
*/
public void removeConstraint(SecurityConstraint constraint) {
- synchronized (constraints) {
+ synchronized (constraintsLock) {
// Make sure this constraint is currently present
int n = -1;
*/
public void removeFilterMap(FilterMap filterMap) {
- synchronized (filterMaps) {
+ synchronized (filterMapsLock) {
// Make sure this filter mapping is currently present
int n = -1;
*/
public void removeInstanceListener(String listener) {
- synchronized (instanceListeners) {
+ synchronized (instanceListenersLock) {
// Make sure this welcome file is currently present
int n = -1;
*/
public void removeSecurityRole(String role) {
- synchronized (securityRoles) {
+ synchronized (securityRolesLock) {
// Make sure this security role is currently present
int n = -1;
public void removeServletMapping(String pattern) {
String name = null;
- synchronized (servletMappings) {
+ synchronized (servletMappingsLock) {
name = servletMappings.remove(pattern);
}
Wrapper wrapper = (Wrapper) findChild(name);
*/
public void removeWatchedResource(String name) {
- synchronized (watchedResources) {
+ synchronized (watchedResourcesLock) {
// Make sure this watched resource is currently present
int n = -1;
*/
public void removeWelcomeFile(String name) {
- synchronized (welcomeFiles) {
+ synchronized (welcomeFilesLock) {
// Make sure this welcome file is currently present
int n = -1;
public void removeWrapperLifecycle(String listener) {
- synchronized (wrapperLifecycles) {
+ synchronized (wrapperLifecyclesLock) {
// Make sure this welcome file is currently present
int n = -1;
public void removeWrapperListener(String listener) {
- synchronized (wrapperListeners) {
+ synchronized (wrapperListenersLock) {
// Make sure this welcome file is currently present
int n = -1;
// Notify our interested LifecycleListeners
lifecycle.fireLifecycleEvent(DESTROY_EVENT, null);
- instanceListeners = new String[0];
+ synchronized (instanceListenersLock) {
+ instanceListeners = new String[0];
+ }
}