Always call getMessageSender() from MessageSenderOutputStream
The MessageSenderOutputStream is created at AsyncReceiveCommits construction time, but the underlying ReceiveCommits' MessageSender can change over that object's lifetime. Change-Id: I1df74ff69d8f9178eaf44a959f3d444c0295b26c
This commit is contained in:
@@ -17,7 +17,6 @@ package com.google.gerrit.server.git;
|
|||||||
import com.google.gerrit.reviewdb.client.Project;
|
import com.google.gerrit.reviewdb.client.Project;
|
||||||
import com.google.gerrit.server.config.ConfigUtil;
|
import com.google.gerrit.server.config.ConfigUtil;
|
||||||
import com.google.gerrit.server.config.GerritServerConfig;
|
import com.google.gerrit.server.config.GerritServerConfig;
|
||||||
import com.google.gerrit.server.git.ReceiveCommits.MessageSender;
|
|
||||||
import com.google.gerrit.server.git.WorkQueue.Executor;
|
import com.google.gerrit.server.git.WorkQueue.Executor;
|
||||||
import com.google.gerrit.server.project.ProjectControl;
|
import com.google.gerrit.server.project.ProjectControl;
|
||||||
import com.google.gerrit.server.util.RequestScopePropagator;
|
import com.google.gerrit.server.util.RequestScopePropagator;
|
||||||
@@ -113,26 +112,24 @@ public class AsyncReceiveCommits implements PreReceiveHook {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private class MessageSenderOutputStream extends OutputStream {
|
private class MessageSenderOutputStream extends OutputStream {
|
||||||
private final MessageSender messageSender = rc.getMessageSender();
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void write(int b) {
|
public void write(int b) {
|
||||||
messageSender.sendBytes(new byte[]{(byte)b});
|
rc.getMessageSender().sendBytes(new byte[]{(byte)b});
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void write(byte[] what, int off, int len) {
|
public void write(byte[] what, int off, int len) {
|
||||||
messageSender.sendBytes(what, off, len);
|
rc.getMessageSender().sendBytes(what, off, len);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void write(byte[] what) {
|
public void write(byte[] what) {
|
||||||
messageSender.sendBytes(what);
|
rc.getMessageSender().sendBytes(what);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void flush() {
|
public void flush() {
|
||||||
messageSender.flush();
|
rc.getMessageSender().flush();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user