Buggy code:
public class WebVirtualHostService implements Service < VirtualHost > { private final String name ; private final String [ ] aliases ; private final String tempPathName ; private String defaultWebModule ; private boolean hasWelcomeRoot ; private ModelNode accessLog ; private ModelNode rewrite ; private ModelNode sso ; private final InjectedValue < PathManager > pathManagerInjector = new InjectedValue < PathManager > ( ) ; private final InjectedValue < WebServer > webServer = new InjectedValue < WebServer > ( ) ; private final InjectedValue < SSOClusterManager > ssoManager = new InjectedValue < SSOClusterManager > ( ) ; private VirtualHost host ; private volatile String accessLogPath ; private volatile String accessLogRelativeTo ; private Handle callbackHandle ; public WebVirtualHostService ( String name , String [ ] aliases , boolean hasWelcomeRoot , String tempPathName ) { } public synchronized void start ( StartContext context ) throws StartException { final StandardHost host = new StandardHost ( ) ; host . setAppBase ( pathManagerInjector . getValue ( ) . getPathEntry ( tempPathName ) . resolvePath ( ) ) ; host . setName ( name ) ; for ( final String alias : aliases ) { host . addAlias ( alias ) ; } if ( ( accessLog ) != null ) { host . addValve ( WebVirtualHostService . createAccessLogValve ( host , pathManagerInjector . getValue ( ) . resolveRelativePathEntry ( accessLogPath , accessLogRelativeTo ) , accessLog ) ) ; <START_BUG> pathManagerInjector . getValue ( ) . registerCallback ( accessLogRelativeTo , ReloadServerCallback . create ( ) , UPDATED , REMOVED ) ; <END_BUG> } if ( ( rewrite ) != null ) { host . addValve ( WebVirtualHostService . createRewriteValve ( host , rewrite ) ) ; } if ( ( sso ) != null ) { host . addValve ( createSsoValve ( host , sso ) ) ; } if ( ( defaultWebModule ) != null ) { host . setDefaultWebapp ( defaultWebModule ) ; } try { final WebServer server = webServer . getValue ( ) ; server . addHost ( host ) ; } catch ( Exception e ) { throw new StartException ( e ) ; } this . host = new VirtualHost ( host , hasWelcomeRoot ) ; } public synchronized void stop ( StopContext context ) { } public synchronized VirtualHost getValue ( ) throws IllegalStateException { } void setAccessLog ( final ModelNode accessLog ) { } void setAccessLogPaths ( String accessLogPath , String accessLogRelativeTo ) { } void setRewrite ( ModelNode rewrite ) { } void setSso ( final ModelNode sso ) { } protected String getDefaultWebModule ( ) { } protected void setDefaultWebModule ( String defaultWebModule ) { } public InjectedValue < PathManager > getPathManagerInjector ( ) { } public InjectedValue < WebServer > getWebServer ( ) { } public InjectedValue < SSOClusterManager > getSSOClusterManager ( ) { } static Valve createAccessLogValve ( final Container container , final String logDirectory , final ModelNode element ) { } static Valve createRewriteValve ( final Container container , final ModelNode element ) throws StartException { } Valve createSsoValve ( final Container container , final ModelNode element ) throws StartException { } }

Fix:
callbackHandle = pathManagerInjector . getValue ( ) . registerCallback ( accessLogRelativeTo , ReloadServerCallback . create ( ) , UPDATED , REMOVED ) ;