Eliminate potential NPEs with ChangeData.getChange()
Callers were supposed to be calling hasChange() to determine whether getChange() would return null, but none were. Remove this error-prone pair of methods and just use change(), which includes lazy loading. There are a few places where we need to catch an additional OrmException but these are easy enough to fix. Change-Id: I23335e362715f59e2c093ffec88427739ff0cffc
This commit is contained in:
@@ -15,7 +15,6 @@
|
||||
package gerrit;
|
||||
|
||||
import com.google.gerrit.reviewdb.client.Branch;
|
||||
import com.google.gerrit.reviewdb.client.Change;
|
||||
import com.google.gerrit.rules.StoredValues;
|
||||
|
||||
import com.googlecode.prolog_cafe.lang.Operation;
|
||||
@@ -36,8 +35,7 @@ public class PRED_change_branch_1 extends Predicate.P1 {
|
||||
engine.setB0();
|
||||
Term a1 = arg1.dereference();
|
||||
|
||||
Change change = StoredValues.CHANGE_DATA.get(engine).getChange();
|
||||
Branch.NameKey name = change.getDest();
|
||||
Branch.NameKey name = StoredValues.getChange(engine).getDest();
|
||||
|
||||
if (!a1.unify(SymbolTerm.create(name.get()), engine.trail)) {
|
||||
return engine.fail();
|
||||
|
@@ -15,7 +15,6 @@
|
||||
package gerrit;
|
||||
|
||||
import com.google.gerrit.reviewdb.client.Account;
|
||||
import com.google.gerrit.reviewdb.client.Change;
|
||||
import com.google.gerrit.rules.StoredValues;
|
||||
|
||||
import com.googlecode.prolog_cafe.lang.IntegerTerm;
|
||||
@@ -40,8 +39,7 @@ public class PRED_change_owner_1 extends Predicate.P1 {
|
||||
engine.setB0();
|
||||
Term a1 = arg1.dereference();
|
||||
|
||||
Change change = StoredValues.CHANGE_DATA.get(engine).getChange();
|
||||
Account.Id ownerId = change.getOwner();
|
||||
Account.Id ownerId = StoredValues.getChange(engine).getOwner();
|
||||
|
||||
if (!a1.unify(new StructureTerm(user, new IntegerTerm(ownerId.get())), engine.trail)) {
|
||||
return engine.fail();
|
||||
|
@@ -14,7 +14,6 @@
|
||||
|
||||
package gerrit;
|
||||
|
||||
import com.google.gerrit.reviewdb.client.Change;
|
||||
import com.google.gerrit.reviewdb.client.Project;
|
||||
import com.google.gerrit.rules.StoredValues;
|
||||
|
||||
@@ -36,8 +35,7 @@ public class PRED_change_project_1 extends Predicate.P1 {
|
||||
engine.setB0();
|
||||
Term a1 = arg1.dereference();
|
||||
|
||||
Change change = StoredValues.CHANGE_DATA.get(engine).getChange();
|
||||
Project.NameKey name = change.getProject();
|
||||
Project.NameKey name = StoredValues.getChange(engine).getProject();
|
||||
|
||||
if (!a1.unify(SymbolTerm.create(name.get()), engine.trail)) {
|
||||
return engine.fail();
|
||||
|
@@ -36,7 +36,7 @@ public class PRED_change_topic_1 extends Predicate.P1 {
|
||||
Term a1 = arg1.dereference();
|
||||
|
||||
Term topicTerm = Prolog.Nil;
|
||||
Change change = StoredValues.CHANGE_DATA.get(engine).getChange();
|
||||
Change change = StoredValues.getChange(engine);
|
||||
String topic = change.getTopic();
|
||||
if (topic != null) {
|
||||
topicTerm = SymbolTerm.create(topic);
|
||||
|
Reference in New Issue
Block a user