{"id":"c9e5998610a6c79f","repo":"spring-projects/spring-framework","slug":"cannot-apply-lookup-to-beans-without-correspondin","errorCode":null,"errorMessage":"Cannot apply @Lookup to beans without corresponding bean definition","messagePattern":"Cannot apply @Lookup to beans without corresponding bean definition","errorType":"exception","errorClass":"BeanCreationException","httpStatus":null,"severity":"error","filePath":"spring-beans/src/main/java/org/springframework/beans/factory/annotation/AutowiredAnnotationBeanPostProcessor.java","lineNumber":471,"sourceCode":"\n\tprivate void checkLookupMethods(Class<?> beanClass, final String beanName) throws BeanCreationException {\n\t\tif (!this.lookupMethodsChecked.contains(beanName)) {\n\t\t\tif (AnnotationUtils.isCandidateClass(beanClass, Lookup.class)) {\n\t\t\t\ttry {\n\t\t\t\t\tClass<?> targetClass = beanClass;\n\t\t\t\t\tdo {\n\t\t\t\t\t\tReflectionUtils.doWithLocalMethods(targetClass, method -> {\n\t\t\t\t\t\t\tLookup lookup = method.getAnnotation(Lookup.class);\n\t\t\t\t\t\t\tif (lookup != null) {\n\t\t\t\t\t\t\t\tAssert.state(this.beanFactory != null, \"No BeanFactory available\");\n\t\t\t\t\t\t\t\tLookupOverride override = new LookupOverride(method, lookup.value());\n\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\tRootBeanDefinition mbd = (RootBeanDefinition)\n\t\t\t\t\t\t\t\t\t\t\tthis.beanFactory.getMergedBeanDefinition(beanName);\n\t\t\t\t\t\t\t\t\tmbd.getMethodOverrides().addOverride(override);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tcatch (NoSuchBeanDefinitionException ex) {\n\t\t\t\t\t\t\t\t\tthrow new BeanCreationException(beanName,\n\t\t\t\t\t\t\t\t\t\t\t\"Cannot apply @Lookup to beans without corresponding bean definition\");\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t\ttargetClass = targetClass.getSuperclass();\n\t\t\t\t\t}\n\t\t\t\t\twhile (targetClass != null && targetClass != Object.class);\n\n\t\t\t\t}\n\t\t\t\tcatch (IllegalStateException ex) {\n\t\t\t\t\tthrow new BeanCreationException(beanName, \"Lookup method resolution failed\", ex);\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.lookupMethodsChecked.add(beanName);\n\t\t}\n\t}\n\n\t@Override","sourceCodeStart":453,"sourceCodeEnd":489,"githubUrl":"https://github.com/spring-projects/spring-framework/blob/e8729d043887bf0d0baf91e062e909b56eb2b708/spring-beans/src/main/java/org/springframework/beans/factory/annotation/AutowiredAnnotationBeanPostProcessor.java#L453-L489","documentation":"Error \"Cannot apply @Lookup to beans without corresponding bean definition\" thrown in spring-projects/spring-framework.","triggerScenarios":"Thrown at spring-beans/src/main/java/org/springframework/beans/factory/annotation/AutowiredAnnotationBeanPostProcessor.java:471 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"analyzedSha":"e8729d043887bf0d0baf91e062e909b56eb2b708","analyzedAt":"2026-08-04T19:07:39.725Z","schemaVersion":2}