diff --git a/tika-grpc/src/main/java/org/apache/tika/pipes/grpc/TikaGrpcServer.java b/tika-grpc/src/main/java/org/apache/tika/pipes/grpc/TikaGrpcServer.java index a576ba22c2c..acbc1f4314e 100644 --- a/tika-grpc/src/main/java/org/apache/tika/pipes/grpc/TikaGrpcServer.java +++ b/tika-grpc/src/main/java/org/apache/tika/pipes/grpc/TikaGrpcServer.java @@ -128,6 +128,9 @@ public void stop() throws InterruptedException { .shutdown() .awaitTermination(30, TimeUnit.SECONDS); } + if (serviceImpl != null) { + serviceImpl.postShutdown(); + } } /** diff --git a/tika-grpc/src/main/java/org/apache/tika/pipes/grpc/TikaGrpcServerImpl.java b/tika-grpc/src/main/java/org/apache/tika/pipes/grpc/TikaGrpcServerImpl.java index c61085560b8..8c6b96a4156 100644 --- a/tika-grpc/src/main/java/org/apache/tika/pipes/grpc/TikaGrpcServerImpl.java +++ b/tika-grpc/src/main/java/org/apache/tika/pipes/grpc/TikaGrpcServerImpl.java @@ -483,9 +483,26 @@ public void shutdown() { LOG.info("Shutting down embedded Ignite server"); try { igniteStoreServer.close(); - igniteStoreServer = null; } catch (Exception e) { LOG.error("Error shutting down Ignite server", e); + } finally { + igniteStoreServer = null; + } + } + } + + /** + * Close the pipe client, to be called after TikaGrpcServer has shut down. + */ + void postShutdown() { + if (pipesClient != null) { + LOG.info("Shutting down the pipes client"); + try { + pipesClient.close(); + } catch (IOException e) { + LOG.error("Error closing the pipes client", e); + } finally { + pipesClient = null; } } }