Skip to content

Commit 1407338

Browse files
committed
reinit transport
1 parent 950bd17 commit 1407338

1 file changed

Lines changed: 11 additions & 4 deletions

File tree

pyiceberg/catalog/hive.py

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -168,19 +168,26 @@ def _init_thrift_client(self) -> None:
168168
self._client = Client(protocol)
169169

170170
def __enter__(self) -> Client:
171-
# If the transport is closed, reinitialize it
171+
"""Ensure transport is open before returning the client."""
172+
if self._transport is None or not self._transport.isOpen():
173+
self._init_thrift_client() # Reinitialize transport if closed
174+
172175
if not self._transport.isOpen():
173-
self._init_thrift_client()
176+
self._transport.open()
174177

175-
self._transport.open()
176178
if self._ugi:
177179
self._client.set_ugi(*self._ugi)
180+
178181
return self._client
179182

180183
def __exit__(
181184
self, exctype: Optional[Type[BaseException]], excinst: Optional[BaseException], exctb: Optional[TracebackType]
182185
) -> None:
183-
self._transport.close()
186+
"""Close transport if it was opened."""
187+
if self._transport:
188+
self._transport.close()
189+
self._transport = None # Reset transport so a new one is created next time
190+
self._client = None
184191

185192

186193
def _construct_hive_storage_descriptor(

0 commit comments

Comments
 (0)