comparison hglib/client.py @ 197:6949fc164439 2.5

hgclient: look for an open server before closing it in ResponseError block At least some of the codepaths that can throw a ResponseError close the server first (the one in _readchannel does so in order to detect server startup failures, for example), so we have to verify we have a server to close before doing so, otherwise we can lose the ResponseError and the user sees an AttributeError when we try to use .close() on a NoneType.
author Augie Fackler <raf@durin42.com>
date Sun, 10 Dec 2017 12:52:37 -0500
parents c586d02f7cda
children 7da1dad166b5
comparison
equal deleted inserted replaced
196:c586d02f7cda 197:6949fc164439
269 269
270 self.server = util.popen(self._args, self._env) 270 self.server = util.popen(self._args, self._env)
271 try: 271 try:
272 self._readhello() 272 self._readhello()
273 except error.ResponseError: 273 except error.ResponseError:
274 self.close() 274 if self.server is not None:
275 self._close()
275 raise 276 raise
276 except error.ServerError: 277 except error.ServerError:
277 if self.server is None: 278 if self.server is None:
278 # server is already closed, hopefully the ServerError 279 # server is already closed, hopefully the ServerError
279 # we got has enough information. 280 # we got has enough information.