diff --git a/core/src/main/java/org/acegisecurity/util/FilterToBeanProxy.java b/core/src/main/java/org/acegisecurity/util/FilterToBeanProxy.java index 6c427cdbbb..407516e07b 100644 --- a/core/src/main/java/org/acegisecurity/util/FilterToBeanProxy.java +++ b/core/src/main/java/org/acegisecurity/util/FilterToBeanProxy.java @@ -150,7 +150,12 @@ public class FilterToBeanProxy implements Filter { .getServletContext()); } - private void doInit() throws ServletException { + private synchronized void doInit() throws ServletException { + if (initialized) { + // already initialized, so don't re-initialize + return; + } + initialized = true; String targetBean = filterConfig.getInitParameter("targetBean"); diff --git a/doc/xdocs/changes.xml b/doc/xdocs/changes.xml index cb1e1b0fdd..09e11f5438 100644 --- a/doc/xdocs/changes.xml +++ b/doc/xdocs/changes.xml @@ -36,6 +36,7 @@ AbstractAuthenticationToken.getName() now returns username alone if UserDetails present AuthorityGranter.grant now returns a java.util.Set of role names, instead of a single role name JavaDoc improvements + Correct synchronization issue with FilterToBeanProxy initialization Correct location of AuthenticationSimpleHttpInvokerRequestExecutor in clientContext.xml