title: Ehcache-spring-annotations @Cacheable not catching method with String object as parameter
body: <p>I am using <strong>ehcache-spring-annotations-1.2.0.jar .</strong>
  This is my cache.xml file </p>
  
  <pre><code>&lt;?xml version="1.0" encoding="UTF-8"?&gt;
  &lt;beans xmlns="http://www.springframework.org/schema/beans"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xmlns:context="http://www.springframework.org/schema/context"
      xmlns:oxm="http://www.springframework.org/schema/oxm"
      xmlns:mvc="http://www.springframework.org/schema/mvc"
      xmlns:ehcache="http://ehcache-spring-annotations.googlecode.com/svn/schema/ehcache-spring"
      xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
          http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd
          http://www.springframework.org/schema/oxm http://www.springframework.org/schema/oxm/spring-oxm-3.0.xsd
          http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
          http://ehcache-spring-annotations.googlecode.com/svn/schema/ehcache-spring http://ehcache-spring-annotations.googlecode.com/svn/schema/ehcache-spring/ehcache-spring-1.1.xsd"&gt;
  
      &lt;ehcache:annotation-driven /&gt;
  
  
  
      &lt;bean id="cacheManager" class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean"/&gt;
  
  
  
  &lt;/beans&gt;
  </code></pre>
  
  <p>This is my ehcache.xml</p>
  
  <pre><code>&lt;?xml version="1.0" encoding="UTF-8"?&gt;
  &lt;ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://ehcache.org/ehcache.xsd"&gt;
  
          &lt;cache name="messageCache" eternal="false"
          maxElementsInMemory="5" overflowToDisk="false" diskPersistent="false"
          timeToIdleSeconds="1000" timeToLiveSeconds="3000"
          memoryStoreEvictionPolicy="LRU" /&gt;
  </code></pre>
  
  <p>This is my main code</p>
  
  <pre><code>import org.springframework.context.ApplicationContext;
  import org.springframework.context.support.ClassPathXmlApplicationContext;
  
  import com.googlecode.ehcache.annotations.Cacheable;
  
  public class EcacheSpringtest {
      private static ApplicationContext cachecontext = new ClassPathXmlApplicationContext("cache.xml");
  
      @Cacheable(cacheName = "messageCache")
      String getName(String name) {
  
          System.out.println(name+ " "+"has not been found in the cache so called getName()");
          return "testObject";
  
      }
  
      public static void main(String[] args) {
          long starttime;
          long endtime;
          long calldifferencesecs;
  
          EcacheSpringtest test = new EcacheSpringtest();
          test.getName("test");
          try {
              starttime = System.currentTimeMillis();
              Thread.sleep(150);
              endtime = System.currentTimeMillis();
              calldifferencesecs = starttime - endtime ;
              System.out.println("preparing to call getName with test as paramter after" +" "+ (~calldifferencesecs)+1 +"milliseconds");
          } catch (InterruptedException e) {
  
          }
          test.getName("test"); // In this case testObject should be returned from cache  but it is again calling getName().The method getName() is again called when same "test" String object is passed to method after 1491 milliseconds.
  
      }
  }
  </code></pre>
  
  <p>I have taken reference from</p>
  
  <p><a href="http://ehcache.org/documentation/recipes/spring-annotations" rel="nofollow">http://ehcache.org/documentation/recipes/spring-annotations</a> </p>
  
  <p><a href="https://code.google.com/p/ehcache-spring-annotations/wiki/UsingCacheable" rel="nofollow">https://code.google.com/p/ehcache-spring-annotations/wiki/UsingCacheable</a></p>
  
  <p><strong>EditFirst</strong> Implementing the solution given below by kabochkov I have tested it   .But also i am unable to cache.</p>
  
  <p>I could not figure out where i have done mistake.Any help please?</p>