I had the same issue, here's my thread from a while back:

http://comments.gmane.org/gmane.comp.jakarta.struts.user/184485

If I recall correctly, spring is injecting some random Map on its context
into the error map which is causing some random non-error to be considered
an error.

It has to do with autowire by name vs. by type.  Long story short, switch
to by name and it'll fix it magically.  I don't particularly like it, but
meh... it fixed the issue and I moved on.


On Sat, Aug 24, 2013 at 6:06 AM, Dionis Argiri <dionis.arg...@gmail.com>wrote:

> 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);
>     }
>



-- 
----------------------------------------------------------
*David Greene*
*SecureLink, Inc.*
Secure networks for remote support
----------------------------------------------------------
(512) 630-2285 (m)
(512) 637-8744 (o)
----------------------------------------------------------
da...@securelink.com

Reply via email to