Program: 17365
Project: 17365
Buggy source:
/** 
 * Create a StaticCacheInvocationContext implementation specific to the   {@link CachePut} annotated method
 * @param cachePutAnnotation The annotation on the method
 * @param cacheDefaultsAnnotation The defaults annotation for the class, if it exists
 * @param method The annotated method
 * @param targetClass The intercepted class
 * @return Details on the annotated method
 */
protected CachePutMethodDetails createCachePutMethodDetails(CachePut cachePutAnnotation,CacheDefaults cacheDefaultsAnnotation,Method method,Class<? extends Object> targetClass){
  final String methodCacheName=cachePutAnnotation.cacheName();
  final CacheMethodDetails<CachePut> cacheMethodDetails=createCacheMethodDetails(cachePutAnnotation,cacheDefaultsAnnotation,methodCacheName,method,targetClass);
  final Class<? extends CacheResolverFactory> cacheResolverFactoryType=cachePutAnnotation.cacheResolverFactory();
  final CacheResolverFactory cacheResolverFactory=this.getCacheResolverFactory(cacheResolverFactoryType,cacheDefaultsAnnotation);
  final Class<? extends CacheKeyGenerator> cacheKeyGeneratorType=cachePutAnnotation.cacheKeyGenerator();
  final CacheKeyGenerator cacheKeyGenerator=this.getCacheKeyGenerator(cacheKeyGeneratorType,cacheDefaultsAnnotation);
  final ParameterDetails parameterDetails=getParameterDetails(method,false);
  final CacheResolver cacheResolver=cacheResolverFactory.getCacheResolver(cacheMethodDetails);
  return new CachePutMethodDetails(cacheMethodDetails,cacheResolver,cacheKeyGenerator,parameterDetails.allParameters,parameterDetails.keyParameters,parameterDetails.cacheValueParameter);
}

Fixed version (ground truth):
/** 
 * Create a StaticCacheInvocationContext implementation specific to the   {@link CachePut} annotated method
 * @param cachePutAnnotation The annotation on the method
 * @param cacheDefaultsAnnotation The defaults annotation for the class, if it exists
 * @param method The annotated method
 * @param targetClass The intercepted class
 * @return Details on the annotated method
 */
protected CachePutMethodDetails createCachePutMethodDetails(CachePut cachePutAnnotation,CacheDefaults cacheDefaultsAnnotation,Method method,Class<? extends Object> targetClass){
  final String methodCacheName=cachePutAnnotation.cacheName();
  final CacheMethodDetails<CachePut> cacheMethodDetails=createCacheMethodDetails(cachePutAnnotation,cacheDefaultsAnnotation,methodCacheName,method,targetClass);
  final Class<? extends CacheResolverFactory> cacheResolverFactoryType=cachePutAnnotation.cacheResolverFactory();
  final CacheResolverFactory cacheResolverFactory=this.getCacheResolverFactory(cacheResolverFactoryType,cacheDefaultsAnnotation);
  final Class<? extends CacheKeyGenerator> cacheKeyGeneratorType=cachePutAnnotation.cacheKeyGenerator();
  final CacheKeyGenerator cacheKeyGenerator=this.getCacheKeyGenerator(cacheKeyGeneratorType,cacheDefaultsAnnotation);
  final ParameterDetails parameterDetails=getParameterDetails(method,true);
  final CacheResolver cacheResolver=cacheResolverFactory.getCacheResolver(cacheMethodDetails);
  return new CachePutMethodDetails(cacheMethodDetails,cacheResolver,cacheKeyGenerator,parameterDetails.allParameters,parameterDetails.keyParameters,parameterDetails.cacheValueParameter);
}