On Tue, Jun 30, 2026 at 7:30 PM <[email protected]> wrote:
>
> This is an automated email from the ASF dual-hosted git repository.
>
> markt-asf pushed a commit to branch main
> in repository https://gitbox.apache.org/repos/asf/tomcat.git
>
>
> The following commit(s) were added to refs/heads/main by this push:
>      new bc50b30af9 Restore fd leak protection
> bc50b30af9 is described below
>
> commit bc50b30af92cbc011c1bf27a54497daa9477bcd1
> Author: Mark Thomas <[email protected]>
> AuthorDate: Tue Jun 30 18:30:04 2026 +0100
>
>     Restore fd leak protection

Ok, maybe I forgot this, since it looks really broken.
Maybe we can do something like try (InputStream) {
uc.getLastModified(); } to make it a bit better ?

Rémy

> ---
>  .../org/apache/catalina/startup/ContextConfig.java | 24 
> ++++++++++++++++++++--
>  1 file changed, 22 insertions(+), 2 deletions(-)
>
> diff --git a/java/org/apache/catalina/startup/ContextConfig.java 
> b/java/org/apache/catalina/startup/ContextConfig.java
> index 582f1e05f0..25f9899914 100644
> --- a/java/org/apache/catalina/startup/ContextConfig.java
> +++ b/java/org/apache/catalina/startup/ContextConfig.java
> @@ -1694,24 +1694,44 @@ public class ContextConfig implements 
> LifecycleListener {
>          long hostTimeStamp = 0;
>
>          if (globalWebXml != null) {
> +            URLConnection uc = null;
>              try {
>                  URI uri = new URI(globalWebXml.getSystemId());
>                  URL url = uri.toURL();
> -                URLConnection uc = url.openConnection();
> +                uc = url.openConnection();
>                  globalTimeStamp = uc.getLastModified();
>              } catch (IOException | URISyntaxException | 
> IllegalArgumentException e) {
>                  globalTimeStamp = -1;
> +            } finally {
> +                if (uc != null) {
> +                    try {
> +                        uc.getInputStream().close();
> +                    } catch (IOException ioe) {
> +                        ExceptionUtils.handleThrowable(ioe);
> +                        globalTimeStamp = -1;
> +                    }
> +                }
>              }
>          }
>
>          if (hostWebXml != null) {
> +            URLConnection uc = null;
>              try {
>                  URI uri = new URI(hostWebXml.getSystemId());
>                  URL url = uri.toURL();
> -                URLConnection uc = url.openConnection();
> +                uc = url.openConnection();
>                  hostTimeStamp = uc.getLastModified();
>              } catch (IOException | URISyntaxException | 
> IllegalArgumentException e) {
>                  hostTimeStamp = -1;
> +            } finally {
> +                if (uc != null) {
> +                    try {
> +                        uc.getInputStream().close();
> +                    } catch (IOException ioe) {
> +                        ExceptionUtils.handleThrowable(ioe);
> +                        hostTimeStamp = -1;
> +                    }
> +                }
>              }
>          }
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
>

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to