!fieldClass.startsWith("sun") &&
!fieldClass.startsWith("com") &&
!fieldClass.startsWith("gov") &&
- !fieldClass.startsWith("groovy")) {
- analyzeReadWriteAccesses(executedInsn, fieldClass);
+ !fieldClass.startsWith("groovy") &&
+ // and fields generated for the Groovy library
+ !fieldClass.endsWith("stMC") &&
+ !fieldClass.endsWith("callSiteArray") &&
+ !fieldClass.endsWith("metaClass") &&
+ !fieldClass.endsWith("staticClassInfo") &&
+ !fieldClass.endsWith("__constructor__")) {
+ // Analyze only after being initialized
+ if (isInitialized) {
+ analyzeReadWriteAccesses(executedInsn, fieldClass);
+ }
}
}
// Analyze conflicts from next instructions
!fieldClass.startsWith("sun") &&
!fieldClass.startsWith("com") &&
!fieldClass.startsWith("gov") &&
- !fieldClass.startsWith("groovy")) {
+ !fieldClass.startsWith("groovy") &&
+ // and fields generated for the Groovy library
+ !fieldClass.endsWith("stMC") &&
+ !fieldClass.endsWith("callSiteArray") &&
+ !fieldClass.endsWith("metaClass") &&
+ !fieldClass.endsWith("staticClassInfo") &&
+ !fieldClass.endsWith("__constructor__")) {
// Check for conflict (go backward from currentChoice and get the first conflict)
// If the current event has conflicts with multiple events, then these will be detected
// one by one as this recursively checks backward when backtrack set is revisited and executed.