Index: openjpa-kernel/src/main/java/org/apache/openjpa/enhance/PersistenceCapable.java =================================================================== --- openjpa-kernel/src/main/java/org/apache/openjpa/enhance/PersistenceCapable.java (revision 509668) +++ openjpa-kernel/src/main/java/org/apache/openjpa/enhance/PersistenceCapable.java (working copy) @@ -48,7 +48,7 @@ void pcReplaceFields(int[] fieldIndex); - void pcReplaceFlags(); void pcCopyFields(Object fromObject, int[] fields); Index: openjpa-kernel/src/main/java/org/apache/openjpa/enhance/StateManager.java =================================================================== --- openjpa-kernel/src/main/java/org/apache/openjpa/enhance/StateManager.java (revision 509668) +++ openjpa-kernel/src/main/java/org/apache/openjpa/enhance/StateManager.java (working copy) @@ -41,11 +41,6 @@ public Object getPCPrimaryKey(Object oid, int field); /** - * Change internal flags. - */ - public byte replaceFlags(); - - /** * Change state manager. */ public StateManager replaceStateManager(StateManager sm); Index: openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/meta/strats/EmbedFieldStrategy.java =================================================================== --- openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/meta/strats/EmbedFieldStrategy.java (revision 509668) +++ openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/meta/strats/EmbedFieldStrategy.java (working copy) @@ -945,10 +945,6 @@ // StateManager implementation /////////////////////////////// - public byte replaceFlags() { - throw new InternalException(); - } - public Object getPCPrimaryKey(Object oid, int field) { throw new InternalException(); } Index: openjpa-kernel/src/main/java/org/apache/openjpa/kernel/ObjectIdStateManager.java =================================================================== --- openjpa-kernel/src/main/java/org/apache/openjpa/kernel/ObjectIdStateManager.java (revision 509668) +++ openjpa-kernel/src/main/java/org/apache/openjpa/kernel/ObjectIdStateManager.java (working copy) @@ -71,10 +71,6 @@ throw new UnsupportedOperationException(); } - public byte replaceFlags() { - throw new UnsupportedOperationException(); - } - public StateManager replaceStateManager(StateManager sm) { throw new UnsupportedOperationException(); } Index: openjpa-kernel/src/main/java/org/apache/openjpa/kernel/DetachedValueStateManager.java =================================================================== --- openjpa-kernel/src/main/java/org/apache/openjpa/kernel/DetachedValueStateManager.java (revision 509668) +++ openjpa-kernel/src/main/java/org/apache/openjpa/kernel/DetachedValueStateManager.java (working copy) @@ -403,10 +403,6 @@ throw new UnsupportedOperationException(); } - public byte replaceFlags() { - throw new UnsupportedOperationException(); - } - public StateManager replaceStateManager(StateManager sm) { return sm; } Index: openjpa-kernel/src/main/java/org/apache/openjpa/kernel/DetachedStateManager.java =================================================================== --- openjpa-kernel/src/main/java/org/apache/openjpa/kernel/DetachedStateManager.java (revision 509691) +++ openjpa-kernel/src/main/java/org/apache/openjpa/kernel/DetachedStateManager.java (working copy) @@ -334,10 +334,6 @@ return null; } - public byte replaceFlags() { - return PersistenceCapable.MEDIATE_WRITE; - } - public Object getPCPrimaryKey(Object oid, int field) { throw new UnsupportedOperationException(); } Index: openjpa-kernel/src/main/java/org/apache/openjpa/kernel/StateManagerImpl.java =================================================================== --- openjpa-kernel/src/main/java/org/apache/openjpa/kernel/StateManagerImpl.java (revision 509668) +++ openjpa-kernel/src/main/java/org/apache/openjpa/kernel/StateManagerImpl.java (working copy) @@ -287,7 +287,6 @@ } pc.pcSetDetachedState(null); - pc.pcReplaceFlags(); _pc = pc; if (_oid instanceof OpenJPAId) @@ -1328,12 +1327,6 @@ return _broker.find(pk, false, null); } - public byte replaceFlags() { - // we always use load required so that we can detect when objects - // are touched for locking or making transactional - return PersistenceCapable.LOAD_REQUIRED; - } - public StateManager replaceStateManager(StateManager sm) { return sm; } Index: openjpa-kernel/src/main/java/org/apache/openjpa/meta/ProxySetupStateManager.java =================================================================== --- openjpa-kernel/src/main/java/org/apache/openjpa/meta/ProxySetupStateManager.java (revision 509668) +++ openjpa-kernel/src/main/java/org/apache/openjpa/meta/ProxySetupStateManager.java (working copy) @@ -85,10 +85,6 @@ throw new UnsupportedOperationException(); } - public byte replaceFlags() { - throw new InternalException(); - } - public StateManager replaceStateManager(StateManager sm) { throw new InternalException(); } Index: openjpa-kernel/src/main/java/org/apache/openjpa/enhance/PCEnhancer.java =================================================================== --- openjpa-kernel/src/main/java/org/apache/openjpa/enhance/PCEnhancer.java (revision 509668) +++ openjpa-kernel/src/main/java/org/apache/openjpa/enhance/PCEnhancer.java (working copy) @@ -716,7 +716,6 @@ if (_meta.getPCSuperclass() == null) { addStockMethods(); addGetVersionMethod(); - addReplaceFlagsMethod(); addReplaceStateManagerMethod(); if (_meta.getIdentityType() != ClassMetaData.ID_APPLICATION) @@ -841,11 +840,6 @@ code.aload().setParam(0); code.putfield().setField(SM, SMTYPE); - // pc.pcFlags = LOAD_REQUIRED - code.aload().setLocal(inst); - code.constant().setValue(PersistenceCapable.LOAD_REQUIRED); - code.putfield().setField(PRE + "Flags", byte.class); - // copy key fields from oid if (oid) { code.aload().setLocal(inst); @@ -1330,35 +1324,6 @@ } /** - * Adds the {@link PersistenceCapable#pcReplaceFlags} - * method to the bytecode. - */ - private void addReplaceFlagsMethod() { - // public final void pcReplaceFlags () - BCMethod method = _pc.declareMethod(PRE + "ReplaceFlags", - void.class, null); - Code code = method.getCode(true); - - // if (pcStateManager != null) - loadManagedInstance(code, false); - code.getfield().setField(SM, SMTYPE); - JumpInstruction ifins = code.ifnonnull(); - code.vreturn(); - - // pcFlags = pcStateManager.replaceFlags (); - ifins.setTarget(loadManagedInstance(code, false)); - loadManagedInstance(code, false); - code.getfield().setField(SM, SMTYPE); - code.invokeinterface().setMethod(SMTYPE, "replaceFlags", - byte.class, null); - code.putfield().setField(PRE + "Flags", byte.class); - code.vreturn(); - - code.calculateMaxStack(); - code.calculateMaxLocals(); - } - - /** * Adds the {@link PersistenceCapable#pcReplaceStateManager} * method to the bytecode. */ @@ -2212,10 +2177,6 @@ BCField field = _pc.declareField(SM, SMTYPE); field.makeProtected(); field.setTransient(true); - - field = _pc.declareField(PRE + "Flags", byte.class); - field.makeProtected(); - field.setTransient(true); } } @@ -2860,23 +2821,10 @@ return; } - // dfg: if (inst.pcFlags <= 0) return inst.; - JumpInstruction ifins = null; - if ((fieldFlag & PersistenceCapable.CHECK_READ) > 0) { - loadManagedInstance(code, true); - code.getfield().setField(PRE + "Flags", byte.class); - ifins = code.ifgt(); - loadManagedInstance(code, true); - addGetManagedValueCode(code, fmd); - code.xreturn().setType(fmd.getDeclaredType()); - } - // if (inst.pcStateManager == null) return inst.; Instruction ins = loadManagedInstance(code, true); - if (ifins != null) - ifins.setTarget(ins); code.getfield().setField(SM, SMTYPE); - ifins = code.ifnonnull(); + JumpInstruction ifins = code.ifnonnull(); loadManagedInstance(code, true); addGetManagedValueCode(code, fmd); code.xreturn().setType(fmd.getDeclaredType()); @@ -2919,25 +2867,10 @@ // PCEnhancer uses static methods; PCSubclasser does not. int firstParamOffset = getAccessorParameterOffset(); - // dfg: if (inst.pcFlags == 0) inst. = value; - JumpInstruction ifins = null; - byte fieldFlag = getFieldFlag(fmd); - if ((fieldFlag & PersistenceCapable.CHECK_WRITE) > 0) { - loadManagedInstance(code, true); - code.getfield().setField(PRE + "Flags", byte.class); - ifins = code.ifne(); - loadManagedInstance(code, true); - code.xload().setParam(firstParamOffset); - addSetManagedValueCode(code, fmd); - code.vreturn(); - } - // if (inst.pcStateManager == null) inst. = value; Instruction ins = loadManagedInstance(code, true); - if (ifins != null) - ifins.setTarget(ins); code.getfield().setField(SM, SMTYPE); - ifins = code.ifnonnull(); + JumpInstruction ifins = code.ifnonnull(); loadManagedInstance(code, true); code.xload().setParam(firstParamOffset); addSetManagedValueCode(code, fmd);