Browse Source

Merge branch 'stable-0.7'

* stable-0.7:
  Fix EGit deadlock listing branches of SSH remote
tags/v0.8.1
Shawn O. Pearce 14 years ago
parent
commit
8014dbe9bf

+ 22
- 1
org.eclipse.jgit/src/org/eclipse/jgit/transport/BasePackConnection.java View File

@@ -282,8 +282,10 @@ abstract class BasePackConnection extends BaseConnection {
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 @@ abstract class BasePackConnection extends BaseConnection {
}
}
}

/** 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;
}
}
}
}
}

+ 4
- 0
org.eclipse.jgit/src/org/eclipse/jgit/transport/TransportGitSsh.java View File

@@ -264,6 +264,8 @@ public class TransportGitSsh extends SshTransport implements PackTransport {

@Override
public void close() {
endOut();

if (errorThread != null) {
try {
errorThread.join();
@@ -331,6 +333,8 @@ public class TransportGitSsh extends SshTransport implements PackTransport {

@Override
public void close() {
endOut();

if (errorThread != null) {
try {
errorThread.join();

Loading…
Cancel
Save