From: Alexey L. <lou...@us...> - 2003-06-25 14:10:48
|
User: loubyansky Date: 03/06/25 07:10:47 Modified: src/main/org/jboss/persistence/jbossdo JBossStateManager.java JBossStateManagerImpl.java Log: fixed NPE for embedded fields (of JDOCcomplexType) in pre/postStore when the field value is null. Revision Changes Path 1.13 +1 -1 jboss-persistence/src/main/org/jboss/persistence/jbossdo/JBossStateManager.java Index: JBossStateManager.java =================================================================== RCS file: /cvsroot/jboss/jboss-persistence/src/main/org/jboss/persistence/jbossdo/JBossStateManager.java,v retrieving revision 1.12 retrieving revision 1.13 diff -u -r1.12 -r1.13 --- JBossStateManager.java 20 Jun 2003 16:01:52 -0000 1.12 +++ JBossStateManager.java 25 Jun 2003 14:10:47 -0000 1.13 @@ -69,7 +69,7 @@ PersistentState getPersistentState(); void setParent(JBossStateManager sm, JDOField jdoField); - void addChild(JBossStateManager sm); + void addNestedSM(JBossStateManager sm); void makeDirty(int fieldIndex); 1.18 +24 -22 jboss-persistence/src/main/org/jboss/persistence/jbossdo/JBossStateManagerImpl.java Index: JBossStateManagerImpl.java =================================================================== RCS file: /cvsroot/jboss/jboss-persistence/src/main/org/jboss/persistence/jbossdo/JBossStateManagerImpl.java,v retrieving revision 1.17 retrieving revision 1.18 diff -u -r1.17 -r1.18 --- JBossStateManagerImpl.java 21 Jun 2003 16:39:57 -0000 1.17 +++ JBossStateManagerImpl.java 25 Jun 2003 14:10:47 -0000 1.18 @@ -22,9 +22,9 @@ import javax.jdo.PersistenceManager; import javax.jdo.JDOFatalInternalException; import javax.jdo.JDOUserException; +import java.util.Iterator; import java.util.List; import java.util.ArrayList; -import java.util.Iterator; /** @@ -44,9 +44,9 @@ private PersistentState persistentState; private int[] jdoFieldFlags; + private JBossStateManager parentSM; private JDOField jdoField; - private JBossStateManager parent; - private List children = new ArrayList(0); + private List nestedSMList = new ArrayList(0); private FieldCallbacks fieldCallbacks; @@ -140,8 +140,8 @@ public void fieldLoadingCallback(int fieldIndex, String fieldName, Object fieldValue) { - if(parent != null) - parent.fieldLoadingCallback(jdoField.getIndex(), jdoField.getName() + "." + fieldName, fieldValue); + if(parentSM != null) + parentSM.fieldLoadingCallback(jdoField.getIndex(), jdoField.getName() + "." + fieldName, fieldValue); else if(fieldCallbacks != null) fieldCallbacks.loading(pc, fieldIndex, fieldName, fieldValue); @@ -149,8 +149,8 @@ public void fieldStoringCallback(int fieldIndex, String fieldName, Object fieldValue) { - if(parent != null) - parent.fieldStoringCallback(jdoField.getIndex(), jdoField.getName() + "." + fieldName, fieldValue); + if(parentSM != null) + parentSM.fieldStoringCallback(jdoField.getIndex(), jdoField.getName() + "." + fieldName, fieldValue); else if(fieldCallbacks != null) fieldCallbacks.storing(pc, fieldIndex, fieldName, fieldValue); @@ -186,22 +186,22 @@ return new MaskFieldsIterator(mask, flags); } - public void setParent(JBossStateManager parent, JDOField jdoField) + public void setParent(JBossStateManager parentSM, JDOField jdoField) { - if(this.parent != null) + if(this.parentSM != null) throw new JDOFatalInternalException("Parent state manager is already initialized for" + pc.getClass().getName()); - this.parent = parent; - parent.addChild(this); + this.parentSM = parentSM; + parentSM.addNestedSM(this); this.jdoField = jdoField; this.jdoComplexType = (JDOComplexType)jdoField.getAbstractType(); - this.internalPM = parent.getInternalPM(); - this.persistentState = parent.getPersistentState(); + this.internalPM = parentSM.getInternalPM(); + this.persistentState = parentSM.getPersistentState(); } - public void addChild(JBossStateManager child) + public void addNestedSM(JBossStateManager nestedSM) { - children.add(child); + this.nestedSMList.add(nestedSM); } public PersistentState getPersistentState() @@ -213,15 +213,17 @@ { PersistentStateTransitionEvent.WRITE.transit(this); setFlagsForField(fieldIndex, JBossStateManager.JBOSS_FIELD_DIRTY | JBossStateManager.JBOSS_FIELD_LOADED); - if(parent != null) - parent.makeDirty(jdoField.getIndex()); + if(parentSM != null) + parentSM.makeDirty(jdoField.getIndex()); } public void resetFlagsForAllFields(int initFlags) { for(int i = 0; i < jdoFieldFlags.length; ++i) resetFlagsForField(i, initFlags); - for(Iterator childIter = children.iterator(); childIter.hasNext();) + if(nestedSMList.size() < 1) + return; + for(Iterator childIter = nestedSMList.iterator(); childIter.hasNext();) { JBossStateManager childSM = (JBossStateManager)childIter.next(); childSM.resetFlagsForAllFields(initFlags); @@ -242,12 +244,12 @@ if(fieldHasFlags(fieldIndex, JBossStateManager.JBOSS_FIELD_LOADED)) return; setFlagsForField(fieldIndex, JBossStateManager.JBOSS_FIELD_LOAD_REQUIRED); - if(parent == null) + if(parentSM == null) internalPM.load(this); else { - parent.resetFlagsForField(jdoField.getIndex(), JBossStateManager.JBOSS_FIELD_LOAD_REQUIRED); - parent.load(jdoField.getIndex()); + parentSM.resetFlagsForField(jdoField.getIndex(), JBossStateManager.JBOSS_FIELD_LOAD_REQUIRED); + parentSM.load(jdoField.getIndex()); } } @@ -363,7 +365,7 @@ // Private - private void initialize(JBossPersistenceManagerInternal pm, + public void initialize(JBossPersistenceManagerInternal pm, PersistentState persistentState, JDOComplexType jdoComplexType, Object objectId, |