Merge branch 'stable-2.14'
* stable-2.14: Fix firing change related event for deleted change Change-Id: I6cadb61f7ee2e5579afb2a038d42bb4379375c52
This commit is contained in:
@@ -32,6 +32,7 @@ import com.google.gerrit.server.notedb.ChangeNotes;
|
|||||||
import com.google.gerrit.server.permissions.PermissionBackend;
|
import com.google.gerrit.server.permissions.PermissionBackend;
|
||||||
import com.google.gerrit.server.permissions.PermissionBackendException;
|
import com.google.gerrit.server.permissions.PermissionBackendException;
|
||||||
import com.google.gerrit.server.permissions.ProjectPermission;
|
import com.google.gerrit.server.permissions.ProjectPermission;
|
||||||
|
import com.google.gerrit.server.project.NoSuchChangeException;
|
||||||
import com.google.gerrit.server.project.ProjectCache;
|
import com.google.gerrit.server.project.ProjectCache;
|
||||||
import com.google.gerrit.server.project.ProjectControl;
|
import com.google.gerrit.server.project.ProjectControl;
|
||||||
import com.google.gerrit.server.project.ProjectState;
|
import com.google.gerrit.server.project.ProjectState;
|
||||||
@@ -39,10 +40,13 @@ import com.google.gwtorm.server.OrmException;
|
|||||||
import com.google.inject.Inject;
|
import com.google.inject.Inject;
|
||||||
import com.google.inject.Provider;
|
import com.google.inject.Provider;
|
||||||
import com.google.inject.Singleton;
|
import com.google.inject.Singleton;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
/** Distributes Events to listeners if they are allowed to see them */
|
/** Distributes Events to listeners if they are allowed to see them */
|
||||||
@Singleton
|
@Singleton
|
||||||
public class EventBroker implements EventDispatcher {
|
public class EventBroker implements EventDispatcher {
|
||||||
|
private static final Logger log = LoggerFactory.getLogger(EventBroker.class);
|
||||||
|
|
||||||
public static class Module extends LifecycleModule {
|
public static class Module extends LifecycleModule {
|
||||||
@Override
|
@Override
|
||||||
@@ -180,9 +184,15 @@ public class EventBroker implements EventDispatcher {
|
|||||||
String ref = refEvent.getRefName();
|
String ref = refEvent.getRefName();
|
||||||
if (PatchSet.isChangeRef(ref)) {
|
if (PatchSet.isChangeRef(ref)) {
|
||||||
Change.Id cid = PatchSet.Id.fromRef(ref).getParentKey();
|
Change.Id cid = PatchSet.Id.fromRef(ref).getParentKey();
|
||||||
Change change =
|
try {
|
||||||
notesFactory.create(dbProvider.get(), refEvent.getProjectNameKey(), cid).getChange();
|
Change change =
|
||||||
return isVisibleTo(change, user);
|
notesFactory
|
||||||
|
.createChecked(dbProvider.get(), refEvent.getProjectNameKey(), cid)
|
||||||
|
.getChange();
|
||||||
|
return isVisibleTo(change, user);
|
||||||
|
} catch (NoSuchChangeException e) {
|
||||||
|
log.debug("Change {} cannot be found, falling back on ref visibility check", cid.id);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return isVisibleTo(refEvent.getBranchNameKey(), user);
|
return isVisibleTo(refEvent.getBranchNameKey(), user);
|
||||||
} else if (event instanceof ProjectEvent) {
|
} else if (event instanceof ProjectEvent) {
|
||||||
|
|||||||
Reference in New Issue
Block a user