Lets say I have a code like this in my servlet:
private static final String RESOURCE_URL_PATTERN = "resourceUrlPattern";
private static final String PARAM_SEPARATOR = "|";
private List<String> resourcePatterns;
@Override
public void init() throws ServletException {
    String resourcePatterns = getInitParameter(RESOURCE_URL_PATTERN);
    this.resourcePatterns = com.google.common.base.Splitter.on(PARAM_SEPARATOR).trimResults().splitToList(resourcePatterns);
}
Is this thread safe to use 'resourcePatterns' if it will never be modified?
Lets say like this:
private boolean isValidRequest(String servletPath) {
    for (String resourcePattern : resourcePatterns) {
        if (servletPath.matches(resourcePattern)) {
            return true;
        }
    }
    return false;
}
Should I use CopyOnWriteArrayList or ArrayList is OK in this case?