You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ofbiz.apache.org by jl...@apache.org on 2013/11/17 19:53:18 UTC
svn commit: r1542795 -
/ofbiz/trunk/framework/catalina/src/org/ofbiz/catalina/container/CatalinaContainer.java
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/%3CAANLkTino=BjP5LsBCwncB2HvNDzyKLr5y-8yWdt15a89@mail.gmail.com%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);
Re: svn commit: r1542795 -
/ofbiz/trunk/framework/catalina/src/org/ofbiz/catalina/container/CatalinaCo
ntainer.java
Posted by Jacques Le Roux <ja...@les7arts.com>.
Sorry, the right initial address for Plumbr is http://plumbr.eu/
On Sunday, November 17, 2013 9:33 PM Jacques Le Roux <ja...@les7arts.com> 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 jleroux@apache.org <jl...@apache.org> 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/%3CAANLkTino=BjP5LsBCwncB2HvNDzyKLr5y-8yWdt15a89@mail.gmail.com%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);
Re: svn commit: r1542795 -
/ofbiz/trunk/framework/catalina/src/org/ofbiz/catalina/container/CatalinaCo
ntainer.java
Posted by Jacques Le Roux <ja...@les7arts.com>.
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 jleroux@apache.org <jl...@apache.org> 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/%3CAANLkTino=BjP5LsBCwncB2HvNDzyKLr5y-8yWdt15a89@mail.gmail.com%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);