https://bz.apache.org/bugzilla/show_bug.cgi?id=62830

--- Comment #13 from Igal Sapir <isa...@apache.org> ---
(In reply to Christopher Schultz from comment #12)
> Sorry... I must be missing something, here.
> 
> System.loadLibrary isn't ClassLoader-specific... once the library has been
> loaded, it can't be loaded again at all.
> 
> The code here is all fine, and using a Listener makes a lot of sense. But
> the documentation suggests that somehow loading a shared lib in a different
> ClassLoader changes something when it doesn't. Instead, you are asking
> Tomcat to load it *once* (at the server level) and then not again.
> 
> If you try to use this <Listener> at the <Context> level, it will fail when
> re-deploying the <Context>, just like if the application had used

It's counter-intuitive, I know. Here's what I tested right now, tell me know if
covers the scenario you described above:

In conf/server.xml, I added the following snippet to the Server, Service, and
in conf/Catalina/localhost/ROOT.xml, conf/Catalina/localhost/context_1.xml,
conf/Catalina/localhost/context_2.xml to the Context element:  

> <Listener className="org.apache.catalina.core.JniLifecycleListener"  
> libraryName="opencv_java343" />

Below are the relevant log entries:

> 22-Oct-2018 18:45:04.733 INFO [main] 
> org.apache.catalina.startup.Catalina.load Initialization processed in 412 ms
> 22-Oct-2018 18:45:04.739 INFO [main] 
> org.apache.catalina.core.JniLifecycleListener.lifecycleEvent Loaded native 
> library opencv_java343
> 22-Oct-2018 18:45:04.759 INFO [main] 
> org.apache.catalina.core.JniLifecycleListener.lifecycleEvent Loaded native 
> library opencv_java343
> 22-Oct-2018 18:45:04.759 INFO [main] 
> org.apache.catalina.core.StandardService.startInternal Starting service 
> [Catalina]
> 22-Oct-2018 18:45:04.760 INFO [main] 
> org.apache.catalina.core.StandardEngine.startInternal Starting Servlet 
> Engine: Apache Tomcat/9.0.13-dev
> 22-Oct-2018 18:45:04.766 INFO [main] 
> org.apache.catalina.startup.HostConfig.deployDescriptor Deploying deployment 
> descriptor 
> [/home/user/Workspace/test/JniListener/conf/Catalina/localhost/ROOT.xml]
> 22-Oct-2018 18:45:04.790 INFO [main] 
> org.apache.catalina.core.JniLifecycleListener.lifecycleEvent Loaded native 
> library opencv_java343
> <snip/>
> 22-Oct-2018 18:45:06.277 INFO [main] 
> org.apache.catalina.startup.HostConfig.deployDescriptor Deployment of 
> deployment descriptor 
> [/home/user/Workspace/test/JniListener/conf/Catalina/localhost/ROOT.xml] has 
> finished in [1,510] ms
> 22-Oct-2018 18:45:06.277 INFO [main] 
> org.apache.catalina.startup.HostConfig.deployDescriptor Deploying deployment 
> descriptor 
> [/home/user/Workspace/test/JniListener/conf/Catalina/localhost/context_2.xml]
> 22-Oct-2018 18:45:06.279 INFO [main] 
> org.apache.catalina.core.JniLifecycleListener.lifecycleEvent Loaded native 
> library opencv_java343
> 22-Oct-2018 18:45:06.379 INFO [main] 
> org.apache.jasper.servlet.TldScanner.scanJars At least one JAR was scanned 
> for TLDs yet contained no TLDs. Enable debug logging for this logger for a 
> complete list of JARs that were scanned but no TLDs were found in them. 
> Skipping unneeded JARs during scanning can improve startup time and JSP 
> compilation time.
> 22-Oct-2018 18:45:06.380 INFO [main] 
> org.apache.catalina.startup.HostConfig.deployDescriptor Deployment of 
> deployment descriptor 
> [/home/user/Workspace/test/JniListener/conf/Catalina/localhost/context_2.xml] 
> has finished in [103] ms
> 22-Oct-2018 18:45:06.381 INFO [main] 
> org.apache.catalina.startup.HostConfig.deployDescriptor Deploying deployment 
> descriptor 
> [/home/user/Workspace/test/JniListener/conf/Catalina/localhost/context_1.xml]
> 22-Oct-2018 18:45:06.382 INFO [main] 
> org.apache.catalina.core.JniLifecycleListener.lifecycleEvent Loaded native 
> library opencv_java343
> 22-Oct-2018 18:45:06.473 INFO [main] 
> org.apache.jasper.servlet.TldScanner.scanJars At least one JAR was scanned 
> for TLDs yet contained no TLDs. Enable debug logging for this logger for a 
> complete list of JARs that were scanned but no TLDs were found in them. 
> Skipping unneeded JARs during scanning can improve startup time and JSP 
> compilation time.
> 22-Oct-2018 18:45:06.474 INFO [main] 
> org.apache.catalina.startup.HostConfig.deployDescriptor Deployment of 
> deployment descriptor 
> [/home/user/Workspace/test/JniListener/conf/Catalina/localhost/context_1.xml] 
> has finished in [93] ms

Then I modified ROOT.xml, context_1.xml, and context_2.xml, one at a time:

> 22-Oct-2018 18:45:41.573 INFO 
> [ContainerBackgroundProcessor[StandardEngine[Catalina]]] 
> org.apache.catalina.startup.HostConfig.deployDescriptor Deploying deployment 
> descriptor 
> [/home/user/Workspace/test/JniListener/conf/Catalina/localhost/ROOT.xml]
> 22-Oct-2018 18:45:41.575 INFO 
> [ContainerBackgroundProcessor[StandardEngine[Catalina]]] 
> org.apache.catalina.core.JniLifecycleListener.lifecycleEvent Loaded native 
> library opencv_java343
> 22-Oct-2018 18:45:41.675 INFO 
> [ContainerBackgroundProcessor[StandardEngine[Catalina]]] 
> org.apache.jasper.servlet.TldScanner.scanJars At least one JAR was scanned 
> for TLDs yet contained no TLDs. Enable debug logging for this logger for a 
> complete list of JARs that were scanned but no TLDs were found in them. 
> Skipping unneeded JARs during scanning can improve startup time and JSP 
> compilation time.
> 22-Oct-2018 18:45:41.677 INFO 
> [ContainerBackgroundProcessor[StandardEngine[Catalina]]] 
> org.apache.catalina.startup.HostConfig.deployDescriptor Deployment of 
> deployment descriptor 
> [/home/user/Workspace/test/JniListener/conf/Catalina/localhost/ROOT.xml] has 
> finished in [104] ms
> 22-Oct-2018 18:45:51.679 INFO 
> [ContainerBackgroundProcessor[StandardEngine[Catalina]]] 
> org.apache.catalina.startup.HostConfig.undeploy Undeploying context 
> [/context_1]
> 22-Oct-2018 18:45:51.687 INFO 
> [ContainerBackgroundProcessor[StandardEngine[Catalina]]] 
> org.apache.catalina.startup.HostConfig.deployDescriptor Deploying deployment 
> descriptor 
> [/home/user/Workspace/test/JniListener/conf/Catalina/localhost/context_1.xml]
> 22-Oct-2018 18:45:51.692 INFO 
> [ContainerBackgroundProcessor[StandardEngine[Catalina]]] 
> org.apache.catalina.core.JniLifecycleListener.lifecycleEvent Loaded native 
> library opencv_java343
> 22-Oct-2018 18:45:51.787 INFO 
> [ContainerBackgroundProcessor[StandardEngine[Catalina]]] 
> org.apache.jasper.servlet.TldScanner.scanJars At least one JAR was scanned 
> for TLDs yet contained no TLDs. Enable debug logging for this logger for a 
> complete list of JARs that were scanned but no TLDs were found in them. 
> Skipping unneeded JARs during scanning can improve startup time and JSP 
> compilation time.
> 22-Oct-2018 18:45:51.788 INFO 
> [ContainerBackgroundProcessor[StandardEngine[Catalina]]] 
> org.apache.catalina.startup.HostConfig.deployDescriptor Deployment of 
> deployment descriptor 
> [/home/user/Workspace/test/JniListener/conf/Catalina/localhost/context_1.xml] 
> has finished in [101] ms
> 22-Oct-2018 18:46:01.791 INFO 
> [ContainerBackgroundProcessor[StandardEngine[Catalina]]] 
> org.apache.catalina.startup.HostConfig.undeploy Undeploying context 
> [/context_2]
> 22-Oct-2018 18:46:01.797 INFO 
> [ContainerBackgroundProcessor[StandardEngine[Catalina]]] 
> org.apache.catalina.startup.HostConfig.deployDescriptor Deploying deployment 
> descriptor 
> [/home/user/Workspace/test/JniListener/conf/Catalina/localhost/context_2.xml]
> 22-Oct-2018 18:46:01.803 INFO 
> [ContainerBackgroundProcessor[StandardEngine[Catalina]]] 
> org.apache.catalina.core.JniLifecycleListener.lifecycleEvent Loaded native 
> library opencv_java343
> 22-Oct-2018 18:46:01.896 INFO 
> [ContainerBackgroundProcessor[StandardEngine[Catalina]]] 
> org.apache.jasper.servlet.TldScanner.scanJars At least one JAR was scanned 
> for TLDs yet contained no TLDs. Enable debug logging for this logger for a 
> complete list of JARs that were scanned but no TLDs were found in them. 
> Skipping unneeded JARs during scanning can improve startup time and JSP 
> compilation time.
> 22-Oct-2018 18:46:01.897 INFO 
> [ContainerBackgroundProcessor[StandardEngine[Catalina]]] 
> org.apache.catalina.startup.HostConfig.deployDescriptor Deployment of 
> deployment descriptor 
> [/home/user/Workspace/test/JniListener/conf/Catalina/localhost/context_2.xml] 
> has finished in [99] ms

-- 
You are receiving this mail because:
You are the assignee for the bug.
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to