Merge branch 'stable-0.7'

* stable-0.7:
  Fix EGit deadlock listing branches of SSH remote
This commit is contained in:
Shawn O. Pearce 2010-03-22 08:20:39 -07:00
commit 8014dbe9bf
2 changed files with 26 additions and 1 deletions

View File

@ -282,8 +282,10 @@ private PackProtocolException duplicateAdvertisement(final String name) {
public void close() {
if (out != null) {
try {
if (outNeedsEnd)
if (outNeedsEnd) {
outNeedsEnd = false;
pckOut.end();
}
out.close();
} catch (IOException err) {
// Ignore any close errors.
@ -314,4 +316,23 @@ public void close() {
}
}
}
/** Tell the peer we are disconnecting, if it cares to know. */
protected void endOut() {
if (outNeedsEnd && out != null) {
try {
outNeedsEnd = false;
pckOut.end();
} catch (IOException e) {
try {
out.close();
} catch (IOException err) {
// Ignore any close errors.
} finally {
out = null;
pckOut = null;
}
}
}
}
}

View File

@ -264,6 +264,8 @@ class SshFetchConnection extends BasePackFetchConnection {
@Override
public void close() {
endOut();
if (errorThread != null) {
try {
errorThread.join();
@ -331,6 +333,8 @@ class SshPushConnection extends BasePackPushConnection {
@Override
public void close() {
endOut();
if (errorThread != null) {
try {
errorThread.join();