Buggy code:
public class DOMConfigurator implements Configurator { static final String CONFIGURATION_TAG = "log4j:configuration" ; static final String OLD_CONFIGURATION_TAG = "configuration" ; static final String RENDERER_TAG = "renderer" ; static final String APPENDER_TAG = "appender" ; static final String APPENDER_REF_TAG = "appender-ref" ; static final String PARAM_TAG = "param" ; static final String LAYOUT_TAG = "layout" ; static final String CATEGORY = "category" ; static final String LOGGER = "logger" ; static final String LOGGER_REF = "logger-ref" ; static final String CATEGORY_FACTORY_TAG = "categoryFactory" ; static final String NAME_ATTR = "name" ; static final String CLASS_ATTR = "class" ; static final String VALUE_ATTR = "value" ; static final String ROOT_TAG = "root" ; static final String ROOT_REF = "root-ref" ; static final String LEVEL_TAG = "level" ; static final String PRIORITY_TAG = "priority" ; static final String FILTER_TAG = "filter" ; static final String ERROR_HANDLER_TAG = "errorHandler" ; static final String REF_ATTR = "ref" ; static final String ADDITIVITY_ATTR = "additivity" ; static final String THRESHOLD_ATTR = "threshold" ; static final String CONFIG_DEBUG_ATTR = "configDebug" ; static final String INTERNAL_DEBUG_ATTR = "debug" ; static final String RENDERING_CLASS_ATTR = "renderingClass" ; static final String RENDERED_CLASS_ATTR = "renderedClass" ; static final String EMPTY_STR = "" ; static final Class [ ] ONE_STRING_PARAM = new Class [ ] { String . class } ; static final String dbfKey = "javax.xml.parsers.DocumentBuilderFactory" ; Hashtable appenderBag ; Properties props ; LoggerRepository repository ; public DOMConfigurator ( ) { } protected Appender findAppenderByName ( Document doc , String appenderName ) { } protected Appender findAppenderByReference ( Element appenderRef ) { } protected Appender parseAppender ( Element appenderElement ) { } protected void parseErrorHandler ( Element element , Appender appender ) { } protected void parseFilters ( Element element , Appender appender ) { } protected void parseCategory ( Element loggerElement ) { } protected void parseCategoryFactory ( Element factoryElement ) { } protected void parseRoot ( Element rootElement ) { } protected void parseChildrenOfLoggerElement ( Element catElement , Logger cat , boolean isRoot ) { } protected Layout parseLayout ( Element layout_element ) { } protected void parseRenderer ( Element element ) { } protected void parseLevel ( Element element , Logger logger , boolean isRoot ) { } protected void setParameter ( Element elem , PropertySetter propSetter ) { } public static void configure ( Element element ) { DOMConfigurator configurator = new DOMConfigurator ( ) ; <START_BUG> configurator . parse ( element ) ; <END_BUG> } public static void configureAndWatch ( String configFilename ) { } public static void configureAndWatch ( String configFilename , long delay ) { } public void doConfigure ( String filename , LoggerRepository repository ) { } public void doConfigure ( URL url , LoggerRepository repository ) { } public void doConfigure ( InputStream inputStream , LoggerRepository repository ) throws FactoryConfigurationError { } public void doConfigure ( Reader reader , LoggerRepository repository ) throws FactoryConfigurationError { } protected void doConfigure ( InputSource inputSource , LoggerRepository repository ) throws FactoryConfigurationError { } public void doConfigure ( Element element , LoggerRepository repository ) { } public static void configure ( String filename ) throws FactoryConfigurationError { } public static void configure ( URL url ) throws FactoryConfigurationError { } protected void parse ( Element element ) { } protected String subst ( String value ) { } }

Fix:
configurator . doConfigure ( element , LogManager . getLoggerRepository ( ) ) ;