@@ -235,9 +235,9 @@ public class BeanDefinitionParserDelegate {
235235
236236	private  final  XmlReaderContext  readerContext ;
237237
238- 	private  DocumentDefaultsDefinition  defaults ;
238+ 	private  final   DocumentDefaultsDefinition  defaults  =  new   DocumentDefaultsDefinition () ;
239239
240- 	private  ParseState  parseState  = new  ParseState ();
240+ 	private  final   ParseState  parseState  = new  ParseState ();
241241
242242	/** 
243243	 * Stores all used bean names so we can enforce uniqueness on a per file basis. 
@@ -295,10 +295,19 @@ protected void error(String message, Element source, Throwable cause) {
295295	/** 
296296	 * Initialize the default lazy-init, autowire, dependency check settings, 
297297	 * init-method, destroy-method and merge settings. 
298+ 	 * @see #populateDefaults(DocumentDefaultsDefinition, org.w3c.dom.Element) 
298299	 * @see #getDefaults() 
299300	 */ 
300301	public  void  initDefaults (Element  root ) {
301- 		DocumentDefaultsDefinition  defaults  = new  DocumentDefaultsDefinition ();
302+ 		populateDefaults (this .defaults , root );
303+ 		this .readerContext .fireDefaultsRegistered (this .defaults );
304+ 	}
305+ 
306+ 	/** 
307+ 	 * Populate the given DocumentDefaultsDefinition instance with the default lazy-init, 
308+ 	 * autowire, dependency check settings, init-method, destroy-method and merge settings. 
309+ 	 */ 
310+ 	protected  void  populateDefaults (DocumentDefaultsDefinition  defaults , Element  root ) {
302311		defaults .setLazyInit (root .getAttribute (DEFAULT_LAZY_INIT_ATTRIBUTE ));
303312		defaults .setMerge (root .getAttribute (DEFAULT_MERGE_ATTRIBUTE ));
304313		defaults .setAutowire (root .getAttribute (DEFAULT_AUTOWIRE_ATTRIBUTE ));
@@ -313,9 +322,6 @@ public void initDefaults(Element root) {
313322			defaults .setDestroyMethod (root .getAttribute (DEFAULT_DESTROY_METHOD_ATTRIBUTE ));
314323		}
315324		defaults .setSource (this .readerContext .extractSource (root ));
316- 
317- 		this .defaults  = defaults ;
318- 		this .readerContext .fireDefaultsRegistered (defaults );
319325	}
320326
321327	/** 
@@ -332,13 +338,11 @@ public DocumentDefaultsDefinition getDefaults() {
332338	 */ 
333339	public  BeanDefinitionDefaults  getBeanDefinitionDefaults () {
334340		BeanDefinitionDefaults  bdd  = new  BeanDefinitionDefaults ();
335- 		if  (this .defaults  != null ) {
336- 			bdd .setLazyInit ("TRUE" .equalsIgnoreCase (this .defaults .getLazyInit ()));
337- 			bdd .setDependencyCheck (this .getDependencyCheck (DEFAULT_VALUE ));
338- 			bdd .setAutowireMode (this .getAutowireMode (DEFAULT_VALUE ));
339- 			bdd .setInitMethodName (this .defaults .getInitMethod ());
340- 			bdd .setDestroyMethodName (this .defaults .getDestroyMethod ());
341- 		}
341+ 		bdd .setLazyInit ("TRUE" .equalsIgnoreCase (this .defaults .getLazyInit ()));
342+ 		bdd .setDependencyCheck (this .getDependencyCheck (DEFAULT_VALUE ));
343+ 		bdd .setAutowireMode (this .getAutowireMode (DEFAULT_VALUE ));
344+ 		bdd .setInitMethodName (this .defaults .getInitMethod ());
345+ 		bdd .setDestroyMethodName (this .defaults .getDestroyMethod ());
342346		return  bdd ;
343347	}
344348
@@ -348,7 +352,7 @@ public BeanDefinitionDefaults getBeanDefinitionDefaults() {
348352	 */ 
349353	public  String [] getAutowireCandidatePatterns () {
350354		String  candidatePattern  = this .defaults .getAutowireCandidates ();
351- 		return  candidatePattern  ==  null  ? null  :  StringUtils .commaDelimitedListToStringArray (candidatePattern );
355+ 		return  ( candidatePattern  !=  null  ? StringUtils .commaDelimitedListToStringArray (candidatePattern ) :  null );
352356	}
353357
354358
0 commit comments