title: JedisPoolConfig is not assignable to GenericObjectPoolConfig
body: <p>I have a Spring based java web application hosted on Heroku.  I am attempting to utilize the Spring Caching abstraction using the Redis implementation.  When the server starts, I get an error saying: </p>
  
  <pre><code>Type 'redis/clients/jedis/JedisPoolConfig' (current frame, stack[3]) is not assignable to 'org/apache/commons/pool2/impl/GenericObjectPoolConfig'
  </code></pre>
  
  <h2>Here is my configuration:</h2>
  
  <pre><code>@Bean
       RedisConnectionFactory jedisConnectionFactory() throws Exception {
           URI redisUri =  new URI(System.getenv("REDISCLOUD_URL"));
           JedisConnectionFactory redisConnectionFactory = new JedisConnectionFactory();
           redisConnectionFactory.setHostName(redisUri.getHost());
           redisConnectionFactory.setPort(redisUri.getPort());
           redisConnectionFactory.setPassword(redisUri.getUserInfo().split(":",2)[1]);
           redisConnectionFactory.setUsePool(true);
           return redisConnectionFactory;
       }
  
   @Bean
   RedisTemplate&lt;Object, Object&gt; redisTemplate()  {
       RedisTemplate&lt;Object, Object&gt; redisTemplate = new RedisTemplate&lt;Object, Object&gt;();
       try {
          redisTemplate.setConnectionFactory(jedisConnectionFactory());
      } catch (Exception e) {
          // TODO Auto-generated catch block
          e.printStackTrace();
      }
       return redisTemplate;
   }
  @Override
  @Bean
  public CacheManager cacheManager() {
      // configure and return an implementation of Spring's CacheManager SPI
      RedisCacheManager manager = new RedisCacheManager(redisTemplate());
      List&lt;String&gt; caches = new ArrayList&lt;String&gt;();
      caches.add("Suppliers");
      caches.add("Manufacturer");
      caches.add("Sheeting");
      caches.add("SignTypeFlat");
      manager.setCacheNames(caches);
      return manager;
  }
  </code></pre>
  
  <h2>Here is the entire Error Message:</h2>
  
  <pre><code> Caused by: org.springframework.beans.factory.BeanDefinitionStoreException: Factory m ethod [org.springframework.data.redis.connection.RedisConnectionFactory com.signInventory.config.ProdDataSourceConfiguration.jedisConnectionFactory() throws java.lang.Exception] threw exception; nested exception is java.lang.VerifyError: Bad type on operand stack Exception Details:   Location:
      org/springframework/data/redis/connection/jedis/JedisConnectionFactory.afterPropertiesSet()V @109: invokespecial   Reason:
      Type 'redis/clients/jedis/JedisPoolConfig' (current frame, stack[3]) is not assignable to 'org/apache/commons/pool2/impl/GenericObjectPoolConfig'   Current Frame:
      bci: @109
      flags: { }
      locals: { 'org/springframework/data/redis/connection/jedis/JedisConnectionFactory' }
      stack: { 'org/springframework/data/redis/connection/jedis/JedisConnectionFactory', uninitialized 73, uninitialized 73, 'redis/clients/jedis/JedisPoolConfig', 'java/lang/String', integer, integer, 'java/lang/String' }   Bytecode:
      0000000: 2ab4 000d c700 3d2a bb00 1759 2ab4 0003
      0000010: 2ab4 0004 b700 18b5 000d 2ab4 0019 b800
      0000020: 1a99 000e 2ab4 000d 2ab4 0019 b600 1b2a
      0000030: b400 059e 000e 2ab4 000d 2ab4 0005 b600
      0000040: 1c2a b400 0699 002e 2abb 001d 592a b400
      0000050: 0a2a b400 0db6 001e 2ab4 000d b600 1f2a
      0000060: b400 0db6 0020 2ab4 000d b600 21b7 0022
      0000070: b500 07b1   Stackmap Table:
      same_frame(@47)
      same_frame(@65)
      same_frame(@115) at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:181) at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:578) ... 36 more Caused by: java.lang.VerifyError: Bad type on operand stack Exception Details:   Location:
      org/springframework/data/redis/connection/jedis/JedisConnectionFactory.afterPropertiesSet()V @109: invokespecial   Reason:
      Type 'redis/clients/jedis/JedisPoolConfig' (current frame, stack[3]) is not assignable to 'org/apache/commons/pool2/impl/GenericObjectPoolConfig'   Current Frame:
      bci: @109
      flags: { }
      locals: { 'org/springframework/data/redis/connection/jedis/JedisConnectionFactory' }
      stack: { 'org/springframework/data/redis/connection/jedis/JedisConnectionFactory', uninitialized 73, uninitialized 73, 'redis/clients/jedis/JedisPoolConfig', 'java/lang/String', integer, integer, 'java/lang/String' }   Bytecode:
      0000000: 2ab4 000d c700 3d2a bb00 1759 2ab4 0003
      0000010: 2ab4 0004 b700 18b5 000d 2ab4 0019 b800
      0000020: 1a99 000e 2ab4 000d 2ab4 0019 b600 1b2a
      0000030: b400 059e 000e 2ab4 000d 2ab4 0005 b600
      0000040: 1c2a b400 0699 002e 2abb 001d 592a b400
      0000050: 0a2a b400 0db6 001e 2ab4 000d b600 1f2a
      0000060: b400 0db6 0020 2ab4 000d b600 21b7 0022
      0000070: b500 07b1   Stackmap Table:
      same_frame(@47)
      same_frame(@65)
      same_frame(@115) at com.signInventory.config.ProdDataSourceConfiguration.jedisConnectionFactory(ProdDataSourceConfiguration.java:46) at com.signInventory.config.ProdDataSourceConfiguration$$EnhancerByCGLIB$$258faa2b.CGLIB$jedisConnectionFactory$8(&lt;generated&gt;) at com.signInventory.config.ProdDataSourceConfiguration$$EnhancerByCGLIB$$258faa2b$$FastClassByCGLIB$$b4f3aedd.invoke(&lt;generated&gt;) at org.springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:228) at org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:286) at com.signInventory.config.ProdDataSourceConfiguration$$EnhancerByCGLIB$$258faa2b.jedisConnectionFactory(&lt;generated&gt;) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:160) ... 37 more
  </code></pre>
  
  <p>Any help would be greatly appreciated.</p>
  
  <p>Thanks!</p>