diff --git a/docs/changelog/88586.yaml b/docs/changelog/88586.yaml new file mode 100644 index 0000000000000..f3c60f5c6705f --- /dev/null +++ b/docs/changelog/88586.yaml @@ -0,0 +1,6 @@ +pr: 88586 +summary: Disable URL connection caching in SPIClassIterator +area: Infra/Plugins +type: bug +issues: + - 88275 diff --git a/server/src/main/java/org/elasticsearch/plugins/spi/SPIClassIterator.java b/server/src/main/java/org/elasticsearch/plugins/spi/SPIClassIterator.java index 9c47ad38dfad9..d906cf066ded2 100644 --- a/server/src/main/java/org/elasticsearch/plugins/spi/SPIClassIterator.java +++ b/server/src/main/java/org/elasticsearch/plugins/spi/SPIClassIterator.java @@ -26,6 +26,7 @@ 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 @@ private boolean loadNextProfile() { } 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));