protected void addFields(final ClassFile proxyClassType, List<DeferredBytecode> initialValueBytecode) {
super.addFields(proxyClassType, initialValueBytecode);
if (useCache()) {
try {
proxyClassType.addField(AccessFlag.TRANSIENT | AccessFlag.PRIVATE, CACHE_FIELD, LJAVA_LANG_THREAD_LOCAL);
initialValueBytecode.add(new DeferredBytecode() {
public void apply(final CodeAttribute codeAttribute) {
codeAttribute.aload(0);
codeAttribute.newInstruction(ThreadLocal.class.getName());
codeAttribute.dup();