CachingEntry result;
if ((result = (CachingEntry) this.cacheProvider.get(key)) == null) {
final Object returned;
final Object outted;
final Out preOut;
final Object[] methodArgs;
final int len = args.length;
if (len > argsStart) {
final int methodArgsLen = len - argsStart;
System.arraycopy(args, argsStart, methodArgs = new Object[methodArgsLen], 0, methodArgsLen);
} else {
methodArgs = EMPTY_ARRAY;
}
preOut = context.out;
if (preOut.isByteStream()) {
final ByteArrayOutputStream out = new ByteArrayOutputStream(256);
context.out = new OutputStreamOut(out, (OutputStreamOut) preOut);
try {