Don't doubly wrap TransportException in smart HTTP client
If the readAdvertisedRefs() method throws an exception, its already closed the connection and wrapped the underlying cause inside of a suitable TransportException object that it is throwing. We shouldn't catch IOException and rethrow a wrapped copy here, because we'll double wrap the exception thrown by readAdvertisedRefs. This may obsecure the root cause of the connection failure from the end-user. Change-Id: I0ca61560f9888c666323dac8a5582aab25e897ff Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
This commit is contained in:
parent
e54d33b687
commit
dd931bd978
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (C) 2009-2010, Google Inc.
|
||||
* Copyright (C) 2008-2010, Google Inc.
|
||||
* Copyright (C) 2008, Shawn O. Pearce <spearce@spearce.org>
|
||||
* and other copyright owners as documented in the project's IP log.
|
||||
*
|
||||
|
@ -572,12 +572,7 @@ class SmartHttpFetchConnection extends BasePackFetchConnection {
|
|||
|
||||
init(advertisement, DisabledOutputStream.INSTANCE);
|
||||
outNeedsEnd = false;
|
||||
try {
|
||||
readAdvertisedRefs();
|
||||
} catch (IOException err) {
|
||||
close();
|
||||
throw new TransportException(uri, "remote hung up", err);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -598,12 +593,7 @@ class SmartHttpPushConnection extends BasePackPushConnection {
|
|||
|
||||
init(advertisement, DisabledOutputStream.INSTANCE);
|
||||
outNeedsEnd = false;
|
||||
try {
|
||||
readAdvertisedRefs();
|
||||
} catch (IOException err) {
|
||||
close();
|
||||
throw new TransportException(uri, "remote hung up", err);
|
||||
}
|
||||
}
|
||||
|
||||
protected void doPush(final ProgressMonitor monitor,
|
||||
|
|
Loading…
Reference in New Issue