Lite configuration candidate check defensively handles method introspection failure
Issue: SPR-13091
This commit is contained in:
		
							parent
							
								
									8c337a48a9
								
							
						
					
					
						commit
						4f1286a4c3
					
				| 
						 | 
					@ -161,12 +161,24 @@ abstract class ConfigurationClassUtils {
 | 
				
			||||||
		if (metadata.isInterface()) {
 | 
							if (metadata.isInterface()) {
 | 
				
			||||||
			return false;
 | 
								return false;
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							// Any of the typical annotations found?
 | 
				
			||||||
		for (String indicator : candidateIndicators) {
 | 
							for (String indicator : candidateIndicators) {
 | 
				
			||||||
			if (metadata.isAnnotated(indicator)) {
 | 
								if (metadata.isAnnotated(indicator)) {
 | 
				
			||||||
				return true;
 | 
									return true;
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		return metadata.hasAnnotatedMethods(Bean.class.getName());
 | 
					
 | 
				
			||||||
 | 
							// 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;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	/**
 | 
						/**
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue