Hi. I'm using struts 2 & struts-spring plugin. Both are of version 2.3.15.1.
The problem is that after upgrading spring from 3.0.7 to spring 3.2.3 I started to get "INPUT" instead of "SUCCESS" result. After debugging for some time I've figured out, that method "setFieldErrors(Map<String, List<String>> errorMap)" is called (All my actions are extending ActionSupport class). Following argument is passed to method: - errorMap = {java.util.LinkedHashMap@8375} size = 1 - [0] = {java.util.LinkedHashMap$Entry@8385}"org.springframework.context.annotation.ConfigurationClassPostProcessor.importRegistry" -> size = 0 - key: java.lang.String = {java.lang.String@8386}"org.springframework.context.annotation.ConfigurationClassPostProcessor.importRegistry" - value: org.springframework.context.annotation.ConfigurationClassParser$ImportStack = {org.springframework.context.annotation.ConfigurationClassParser$ImportStack@8387} size = 0 Don't know why this is happening. Configurations related to spring plugin: <constant name="struts.objectFactory.spring.autoWire" value="auto"/> Same happends when I'm changing it to: <constant name="struts.objectFactory.spring.autoWire" value="type"/> Property that got injected wrongly is "fieldErrors" (captain obvious ;) ). Any ideas guys? P.S. Currently I added ugly hack that's workarounding my issue: @Override public void setFieldErrors(Map<String, List<String>> errorMap) { if(errorMap.containsKey("org.springframework.context.annotation.ConfigurationClassPostProcessor.importRegistry")){ errorMap.remove("org.springframework.context.annotation.ConfigurationClassPostProcessor.importRegistry"); } super.setFieldErrors(errorMap); }