Jacques,

I am wondering how your commit could have fixed the issue in the demo server: 
the code you have added create an instance of JreMemoryLeakPreventionListener 
but doesn't attach it to the server, so it is not used.

Jacopo

On Nov 17, 2013, at 10:01 PM, Jacques Le Roux <[email protected]> 
wrote:

> Sorry again, BTW you are invited to try/use/break the demo trunk as most as 
> possible ;)
> 
> On Sunday, November 17, 2013 9:59 PM Jacques Le Roux 
> <[email protected]> wrote:
>> Sorry, the right initial address for Plumbr is http://plumbr.eu/
>> 
>> On Sunday, November 17, 2013 9:33 PM Jacques Le Roux 
>> <[email protected]> wrote:
>>> BTW, I have installed Plumbr https://portal.plumbr.eu/ into the trunk demo 
>>> (don't ask how :D )
>>> It's running for more than a week, any leaks (no surprises)
>>> 
>>> Jacques
>>> 
>>> On Sunday, November 17, 2013 7:53 PM [email protected] 
>>> <[email protected]> wrote:
>>>> Author: jleroux
>>>> Date: Sun Nov 17 18:53:17 2013
>>>> New Revision: 1542795
>>>> 
>>>> URL: http://svn.apache.org/r1542795
>>>> Log:
>>>> Adds the JreMemoryLeakPreventionListener, see 
>>>> https://issues.apache.org/jira/browse/OFBIZ-5395 for details
>>>> 
>>>> Modified:
>>>>   
>>>> ofbiz/trunk/framework/catalina/src/org/ofbiz/catalina/container/CatalinaContainer.java
>>>> 
>>>> Modified: 
>>>> ofbiz/trunk/framework/catalina/src/org/ofbiz/catalina/container/CatalinaContainer.java
>>>> URL:
>>>> http://svn.apache.org/viewvc/ofbiz/trunk/framework/catalina/src/org/ofbiz/catalina/container/CatalinaContainer.java?rev=1542795&r1=1542794&r2=1542795&view=diff
>>>> ==============================================================================
>>>>  ---
>>>> ofbiz/trunk/framework/catalina/src/org/ofbiz/catalina/container/CatalinaContainer.java
>>>>  (original) +++
>>>> ofbiz/trunk/framework/catalina/src/org/ofbiz/catalina/container/CatalinaContainer.java
>>>>  Sun Nov 17 18:53:17 2013 @@ -44,6 +44,7
>>>> @@ import org.apache.catalina.Host;
>>>> import org.apache.catalina.LifecycleException;
>>>> import org.apache.catalina.Manager;
>>>> import org.apache.catalina.connector.Connector;
>>>> +import org.apache.catalina.core.JreMemoryLeakPreventionListener;
>>>> import org.apache.catalina.core.StandardContext;
>>>> import org.apache.catalina.core.StandardEngine;
>>>> import org.apache.catalina.core.StandardHost;
>>>> @@ -140,7 +141,7 @@ import org.xml.sax.SAXException;
>>>> */
>>>> 
>>>> /**
>>>> - * CatalinaContainer -  Tomcat 5
>>>> + * CatalinaContainer -  Tomcat
>>>> *
>>>> */
>>>> public class CatalinaContainer implements Container {
>>>> @@ -206,6 +207,17 @@ public class CatalinaContainer implement
>>>>            tomcat.enableNaming();
>>>>        }
>>>> 
>>>> +        //
>>>> https://tomcat.apache.org/tomcat-7.0-doc/config/listeners.html#JRE_Memory_Leak_Prevention_Listener_-_org.apache.catalina.core.JreMemoryLeakPreventionListener
>>>> +        // <<The JRE Memory Leak Prevention Listener provides 
>>>> work-arounds for known places where the Java Runtime environment
>>>> uses +        // the context class loader to load a singleton as this will 
>>>> cause a memory leak if a web application class loader
>>>> happens +        // to be the context class loader at the time.>> +        
>>>> //
>>>> http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/core/JreMemoryLeakPreventionListener.java?view=annotate
>>>>  +
>>>> JreMemoryLeakPreventionListener jreMemoryLeakPreventionListener = new 
>>>> JreMemoryLeakPreventionListener(); +        // Mostly use
>>>> default config, but some specific cases here +        
>>>> jreMemoryLeakPreventionListener.setAppContextProtection(true); // True is
>>>> the default for Java 1.6, use false for Java from 1.7.0_02 onwards (see 
>>>> sources above) +
>>>> jreMemoryLeakPreventionListener.setGcDaemonProtection(false); // False 
>>>> because of
>>>> https://mail-archives.apache.org/mod_mbox/tomcat-users/201008.mbox/%[email protected]%3E
>>>>        +        
>>>> jreMemoryLeakPreventionListener.setUrlCacheProtection(false); // False to 
>>>> keep the URLConnection cache, moot
>>>>        point + // configure JNDI in the StandardServer StandardServer 
>>>> server = (StandardServer) tomcat.getServer();
>>>>        try {
>>>> @@ -480,7 +492,7 @@ public class CatalinaContainer implement
>>>>        String protocol = ContainerConfig.getPropertyValue(connectorProp, 
>>>> "protocol", "HTTP/1.1");
>>>>        String address = ContainerConfig.getPropertyValue(connectorProp, 
>>>> "address", "0.0.0.0");
>>>>        int port = ContainerConfig.getPropertyValue(connectorProp, "port", 
>>>> 0) + ClassLoaderContainer.portOffset;
>>>> -
>>>> +
>>>>        boolean secure = ContainerConfig.getPropertyValue(connectorProp, 
>>>> "secure", false);
>>>>        if (protocol.toLowerCase().startsWith("ajp")) {
>>>>            protocol = "ajp";
>>>> @@ -540,7 +552,7 @@ public class CatalinaContainer implement
>>>> 
>>>>            try {
>>>>                for (ContainerConfig.Container.Property prop: 
>>>> connectorProp.properties.values()) {
>>>> -                    if ("port".equals(prop.name)) {
>>>> +                    if ("port".equals(prop.name)) {
>>>>                        connector.setProperty(prop.name, "" + port);
>>>>                    } else {
>>>>                        connector.setProperty(prop.name, prop.value);

Reply via email to