public Object cacheUpdateAssign(final JoinPoint jp, final Object retVal) throws Throwable {
// This is injected caching. If anything goes wrong in the caching, LOG the crap outta it,
// but do not let it surface up past the AOP injection itself.
try {
final Method methodToCache = getMethodToCache(jp);
final UpdateAssignCache annotation = methodToCache.getAnnotation(UpdateAssignCache.class);
final AnnotationData annotationData = AnnotationDataBuilder.buildAnnotationData(annotation,
UpdateAssignCache.class,
methodToCache);
final String cacheKey = buildCacheKey(annotationData.getAssignedKey(), annotationData);
final Object dataObject = annotationData.getDataIndex() == -1