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:
Dave Borowitz
2012-03-13 16:32:33 -07:00
parent bf3860ceef
commit 471e29f6d9

View File

@@ -17,7 +17,6 @@ package com.google.gerrit.server.git;
import com.google.gerrit.reviewdb.client.Project;
import com.google.gerrit.server.config.ConfigUtil;
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.project.ProjectControl;
import com.google.gerrit.server.util.RequestScopePropagator;
@@ -113,26 +112,24 @@ public class AsyncReceiveCommits implements PreReceiveHook {
}
private class MessageSenderOutputStream extends OutputStream {
private final MessageSender messageSender = rc.getMessageSender();
@Override
public void write(int b) {
messageSender.sendBytes(new byte[]{(byte)b});
rc.getMessageSender().sendBytes(new byte[]{(byte)b});
}
@Override
public void write(byte[] what, int off, int len) {
messageSender.sendBytes(what, off, len);
rc.getMessageSender().sendBytes(what, off, len);
}
@Override
public void write(byte[] what) {
messageSender.sendBytes(what);
rc.getMessageSender().sendBytes(what);
}
@Override
public void flush() {
messageSender.flush();
rc.getMessageSender().flush();
}
}