فهرست منبع

Disable URL connection caching in SPIClassIterator (#88586)

Chris Hegarty 3 سال پیش
والد
کامیت
5191a16e5c
2فایلهای تغییر یافته به همراه10 افزوده شده و 1 حذف شده
  1. 6 0
      docs/changelog/88586.yaml
  2. 4 1
      server/src/main/java/org/elasticsearch/plugins/spi/SPIClassIterator.java

+ 6 - 0
docs/changelog/88586.yaml

@@ -0,0 +1,6 @@
+pr: 88586
+summary: Disable URL connection caching in SPIClassIterator
+area: Infra/Plugins
+type: bug
+issues:
+ - 88275

+ 4 - 1
server/src/main/java/org/elasticsearch/plugins/spi/SPIClassIterator.java

@@ -26,6 +26,7 @@ import java.io.IOException;
 import java.io.InputStream;
 import java.io.InputStreamReader;
 import java.net.URL;
+import java.net.URLConnection;
 import java.nio.charset.StandardCharsets;
 import java.util.ArrayList;
 import java.util.Collections;
@@ -106,7 +107,9 @@ public final class SPIClassIterator<S> implements Iterator<Class<? extends S>> {
             }
             final URL url = profilesEnum.nextElement();
             try {
-                final InputStream in = url.openStream();
+                URLConnection urlc = url.openConnection();
+                urlc.setUseCaches(false); // prevents retaining a handle to the underlying jar file, when the stream is closed
+                final InputStream in = urlc.getInputStream();
                 boolean success = false;
                 try {
                     final BufferedReader reader = new BufferedReader(new InputStreamReader(in, StandardCharsets.UTF_8));