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();
 | 
				
			||||||
 | 
					        try {
 | 
				
			||||||
          Change change =
 | 
					          Change change =
 | 
				
			||||||
            notesFactory.create(dbProvider.get(), refEvent.getProjectNameKey(), cid).getChange();
 | 
					              notesFactory
 | 
				
			||||||
 | 
					                  .createChecked(dbProvider.get(), refEvent.getProjectNameKey(), cid)
 | 
				
			||||||
 | 
					                  .getChange();
 | 
				
			||||||
          return isVisibleTo(change, user);
 | 
					          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