Question

Spring: In my context.xml, I have:

<util:set id="someIDs" 
      set-class="java.util.HashSet"
      value-type="java.lang.String">
         <value>"W000000001"</value>
         <value>"W000000003"</value>
         <value>"W000000009"</value>        
</util:set> 

In my Java bean, the implementation is:

private Set<String> someSet = 
              ComUtilities.uncheckedCast(getApplicationContext()
             .getBean("someIDs"));

boolean found = someSet.contains("W000000009");

After the execution of avobe code block, found is very weirdly false! How come? Any suggestion/idea? Thanks a bunch.

Was it helpful?

Solution

Off the top of my head - I'm pretty sure that Spring doesn't require double quotes for String data. So it's probably inserting those strings into the map with actual double-quote characters at the start and the end.

Try checking

boolean found = someSet.contains("\"W000000009\"");

to see if this is the case.

OTHER TIPS

I think it's because you've quoted the values in the Spring config and then the contains check is looking for an unquoted string. Replace you spring config with this:

<util:set id="someIDs" 
  set-class="java.util.HashSet"
      value-type="java.lang.String">
             <value>W000000001</value>
             <value>W000000003</value>
             <value>W000000009</value>            

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top