Fix non-volatile fields in ProjectState Both of these fields are supposed to be volatile, but for unknown reasons I marked them transient. They both need to be volatile as the fields are accessed by concurrent threads. The use sites are already prepared for these to be volatile, they just were not set correctly in the declaration. Change-Id: Icffb185487e1bf8f75358257a2d68e21ae90b08f
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/project/ProjectState.java b/gerrit-server/src/main/java/com/google/gerrit/server/project/ProjectState.java index 8642e5e..376d1a7 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/project/ProjectState.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/project/ProjectState.java
@@ -60,10 +60,11 @@ private final Set<AccountGroup.UUID> localOwners; /** Prolog rule state. */ - private transient PrologMachineCopy rulesMachine; + private volatile PrologMachineCopy rulesMachine; /** Last system time the configuration's revision was examined. */ - private transient long lastCheckTime; + private volatile long lastCheckTime; + @Inject protected ProjectState(