You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openjpa.apache.org by cu...@apache.org on 2014/02/06 00:12:37 UTC
svn commit: r1564989 -
/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/meta/ClassMetaData.java
Author: curtisr7
Date: Wed Feb 5 23:12:37 2014
New Revision: 1564989
URL: http://svn.apache.org/r1564989
Log:
OPENJPA-2472: Fix concurrency bug in ClassMetaData. Patch contributed by Dalia Abo Sheasha.
Modified:
openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/meta/ClassMetaData.java
Modified: openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/meta/ClassMetaData.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/meta/ClassMetaData.java?rev=1564989&r1=1564988&r2=1564989&view=diff
==============================================================================
--- openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/meta/ClassMetaData.java (original)
+++ openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/meta/ClassMetaData.java Wed Feb 5 23:12:37 2014
@@ -2692,19 +2692,20 @@ public class ClassMetaData
// Default to false, set to true only if this type is abstract and
// declares a PKField.
- _hasAbstractPKField = Boolean.FALSE;
+ Boolean temp = Boolean.FALSE;
if (isAbstract() == true) {
FieldMetaData[] declaredFields = getDeclaredFields();
if (declaredFields != null && declaredFields.length != 0) {
for (FieldMetaData fmd : declaredFields) {
if (fmd.isPrimaryKey()) {
- _hasAbstractPKField = Boolean.TRUE;
+ temp = Boolean.TRUE;
break;
}
}
}
}
+ _hasAbstractPKField = temp;
return _hasAbstractPKField.booleanValue();
}
@@ -2726,7 +2727,7 @@ public class ClassMetaData
}
// Default to FALSE, until proven true.
- _hasPKFieldsFromAbstractClass = Boolean.FALSE;
+ Boolean temp = Boolean.FALSE;
FieldMetaData[] pkFields = getPrimaryKeyFields();
for (FieldMetaData fmd : pkFields) {
@@ -2741,11 +2742,12 @@ public class ClassMetaData
}
}
if (cmd == fmdDMDA) {
- _hasPKFieldsFromAbstractClass = Boolean.TRUE;
+ temp = Boolean.TRUE;
break;
}
}
}
+ _hasPKFieldsFromAbstractClass = temp;
return _hasPKFieldsFromAbstractClass.booleanValue();
}
@@ -2783,10 +2785,11 @@ public class ClassMetaData
}
}
int idsSize = ids.size();
- _pkAndNonPersistentManagedFmdIndexes = new int[idsSize];
- for(int i = 0; i<idsSize; i++){
- _pkAndNonPersistentManagedFmdIndexes[i] = ids.get(i).intValue();
+ int[] temp = new int[idsSize];
+ for (int i = 0; i < idsSize; i++) {
+ temp[i] = ids.get(i).intValue();
}
+ _pkAndNonPersistentManagedFmdIndexes = temp;
}
return _pkAndNonPersistentManagedFmdIndexes;
}