Skip to content

Commit 7ddb751

Browse files
committed
reinit transport
1 parent 42b1f21 commit 7ddb751

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
@@ -167,19 +167,26 @@ def _init_thrift_client(self) -> None:
167167
self._client = Client(protocol)
168168

169169
def __enter__(self) -> Client:
170-
# If the transport is closed, reinitialize it
170+
"""Ensure transport is open before returning the client."""
171+
if self._transport is None or not self._transport.isOpen():
172+
self._init_thrift_client() # Reinitialize transport if closed
173+
171174
if not self._transport.isOpen():
172-
self._init_thrift_client()
175+
self._transport.open()
173176

174-
self._transport.open()
175177
if self._ugi:
176178
self._client.set_ugi(*self._ugi)
179+
177180
return self._client
178181

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

184191

185192
def _construct_hive_storage_descriptor(

0 commit comments

Comments
 (0)