You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ma...@apache.org on 2024/06/14 09:39:23 UTC

(tomcat) branch main updated: Restore warning to use only this listener with Server

This is an automated email from the ASF dual-hosted git repository.

markt 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 65e0baa525 Restore warning to use only this listener with Server
65e0baa525 is described below

commit 65e0baa525f81a585bfb249c5db1ed3c812763f4
Author: Mark Thomas <ma...@apache.org>
AuthorDate: Fri Jun 14 10:38:48 2024 +0100

    Restore warning to use only this listener with Server
---
 java/org/apache/catalina/core/AprLifecycleListener.java | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/java/org/apache/catalina/core/AprLifecycleListener.java b/java/org/apache/catalina/core/AprLifecycleListener.java
index 848eacf647..a06d9672c8 100644
--- a/java/org/apache/catalina/core/AprLifecycleListener.java
+++ b/java/org/apache/catalina/core/AprLifecycleListener.java
@@ -23,6 +23,7 @@ import java.util.List;
 import org.apache.catalina.Lifecycle;
 import org.apache.catalina.LifecycleEvent;
 import org.apache.catalina.LifecycleListener;
+import org.apache.catalina.Server;
 import org.apache.juli.logging.Log;
 import org.apache.juli.logging.LogFactory;
 import org.apache.tomcat.jni.Library;
@@ -34,6 +35,8 @@ import org.apache.tomcat.util.res.StringManager;
 /**
  * Implementation of <code>LifecycleListener</code> that will init and and destroy APR.
  * <p>
+ * This listener must only be nested within {@link Server} elements.
+ * <p>
  * Only one instance of the APR/Native library may be loaded per JVM. Loading multiple instances will trigger a JVM
  * crash - typically when the Connectors are destroyed. This listener utilises reference counting to ensure that only
  * one instance of the APR/Native library is loaded at any one time.
@@ -128,6 +131,9 @@ public class AprLifecycleListener implements LifecycleListener {
 
         if (Lifecycle.BEFORE_INIT_EVENT.equals(event.getType())) {
             synchronized (lock) {
+                if (!(event.getLifecycle() instanceof Server)) {
+                    log.warn(sm.getString("listener.notServer", event.getLifecycle().getClass().getSimpleName()));
+                }
                 if (referenceCount++ != 0) {
                     // Already loaded (note test is performed before reference count is incremented)
                     return;


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org


Re: (tomcat) branch main updated: Restore warning to use only this listener with Server

Posted by Michael Osipov <mi...@apache.org>.
On 2024/06/14 09:39:23 markt@apache.org wrote:
> This is an automated email from the ASF dual-hosted git repository.
> 
> markt 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 65e0baa525 Restore warning to use only this listener with Server
> 65e0baa525 is described below
> 
> commit 65e0baa525f81a585bfb249c5db1ed3c812763f4
> Author: Mark Thomas <ma...@apache.org>
> AuthorDate: Fri Jun 14 10:38:48 2024 +0100
> 
>     Restore warning to use only this listener with Server
> ---
>  java/org/apache/catalina/core/AprLifecycleListener.java | 6 ++++++
>  1 file changed, 6 insertions(+)
> 
> diff --git a/java/org/apache/catalina/core/AprLifecycleListener.java b/java/org/apache/catalina/core/AprLifecycleListener.java
> index 848eacf647..a06d9672c8 100644
> --- a/java/org/apache/catalina/core/AprLifecycleListener.java
> +++ b/java/org/apache/catalina/core/AprLifecycleListener.java
> @@ -23,6 +23,7 @@ import java.util.List;
>  import org.apache.catalina.Lifecycle;
>  import org.apache.catalina.LifecycleEvent;
>  import org.apache.catalina.LifecycleListener;
> +import org.apache.catalina.Server;
>  import org.apache.juli.logging.Log;
>  import org.apache.juli.logging.LogFactory;
>  import org.apache.tomcat.jni.Library;
> @@ -34,6 +35,8 @@ import org.apache.tomcat.util.res.StringManager;
>  /**
>   * Implementation of <code>LifecycleListener</code> that will init and and destroy APR.
>   * <p>
> + * This listener must only be nested within {@link Server} elements.
> + * <p>
>   * Only one instance of the APR/Native library may be loaded per JVM. Loading multiple instances will trigger a JVM
>   * crash - typically when the Connectors are destroyed. This listener utilises reference counting to ensure that only
>   * one instance of the APR/Native library is loaded at any one time.
> @@ -128,6 +131,9 @@ public class AprLifecycleListener implements LifecycleListener {
>  
>          if (Lifecycle.BEFORE_INIT_EVENT.equals(event.getType())) {
>              synchronized (lock) {
> +                if (!(event.getLifecycle() instanceof Server)) {
> +                    log.warn(sm.getString("listener.notServer", event.getLifecycle().getClass().getSimpleName()));
> +                }
>                  if (referenceCount++ != 0) {
>                      // Already loaded (note test is performed before reference count is incremented)
>                      return;

Thank you, Mark. Restore appreciated!

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org