Lite configuration candidate check defensively handles method introspection failure
Issue: SPR-13091
This commit is contained in:
		
							parent
							
								
									8c337a48a9
								
							
						
					
					
						commit
						4f1286a4c3
					
				| 
						 | 
				
			
			@ -161,13 +161,25 @@ abstract class ConfigurationClassUtils {
 | 
			
		|||
		if (metadata.isInterface()) {
 | 
			
		||||
			return false;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		// Any of the typical annotations found?
 | 
			
		||||
		for (String indicator : candidateIndicators) {
 | 
			
		||||
			if (metadata.isAnnotated(indicator)) {
 | 
			
		||||
				return true;
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		// Finally, let's look for @Bean methods...
 | 
			
		||||
		try {
 | 
			
		||||
			return metadata.hasAnnotatedMethods(Bean.class.getName());
 | 
			
		||||
		}
 | 
			
		||||
		catch (Throwable ex) {
 | 
			
		||||
			if (logger.isDebugEnabled()) {
 | 
			
		||||
				logger.debug("Failed to introspect @Bean methods on class [" + metadata.getClass() + "]: " + ex);
 | 
			
		||||
			}
 | 
			
		||||
			return false;
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * Determine whether the given bean definition indicates a full {@code @Configuration}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue