Grails
  1. Grails
  2. GRAILS-7378

ReloadAwareAutowireCapableBeanFactory - Memory leak

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Minor Minor
    • Resolution: Duplicate
    • Affects Version/s: 1.3.7
    • Fix Version/s: 2.0-M1
    • Component/s: None
    • Labels:
      None
    • Environment:
      tomcat 6.0.29, grails 1.3.7, and java 1.5 version

      Description

      I am using tomcat 6.0.29, grails 1.3.7, and java 1.5 version. But when I undeploy or stop the tomcat server then i am getting below error in the catalina.log file of tomcat...

      SEVERE: The web application [/application] created a ThreadLocal with key of type [null] (value [org.codehaus.groovy.grails.commons.spring.ReloadAwareAutowireCapableBeanFactory$2@1115340]) and a value of type [java.lang.Boolean] (value [false]) but failed to remove it when the web application was stopped. This is very likely to create a memory leak.

      How to resolve this issue? Do you think there is a memory leak in ReloadAwareAutowireCapableBeanFactory class?
      Or am i doing something wrong?

        Activity

        Hide
        Markus Schwarz added a comment -

        Different configuration/environment --> same problem

        Grails 1.3.7
        Apache Tomcat/7.0.12
        Java(TM) SE Runtime Environment (build 1.6.0_24-b07)
        Java HotSpot(TM) 64-Bit Server VM (build 19.1-b02, mixed mode)

        The problem (unfortunately) is very easy to reproduce.

        > grails create-app testApp
        > cd testApp
        > grails create-domain-class Sample
        > // edit the domain class to contain at least one property
        > grails generate-all testapp.Sample
        > grails war

        1. copy war to Tomcat webapps directory
        2. start Tomcat
        3. Access the sample controller in the browser and create an instance
        4. Open the Tomcat manager application and stop or undeploy the sample application

        org.apache.catalina.loader.WebappClassLoader clearReferencesJdbc
        The web application [/sample] registered the JDBC driver [org.hsqldb.jdbcDriver] but failed to unregister it when the web application was stopped. To prevent a memory leak, the JDBC Driver has been forcibly unregistered.
        org.apache.catalina.loader.WebappClassLoader checkThreadLocalMapForLeaks
        The web application [/sample] created a ThreadLocal with key of type [org.codehaus.groovy.grails.commons.spring.ReloadAwareAutowireCapableBeanFactory$2] (value [org.codehaus.groovy.grails.commons.spring.ReloadAwareAutowireCapableBeanFactory$2@7ab8584d]) and a value of type [java.lang.Boolean] (value [false]) but failed to remove it when the web application was stopped. Threads are going to be renewed over time to try and avoid a probable memory leak.
        org.apache.catalina.loader.WebappClassLoader checkThreadLocalMapForLeaks
        The web application [/sample] created a ThreadLocal with key of type [org.codehaus.groovy.reflection.ClassInfo.ThreadLocalMapHandler] (value [org.codehaus.groovy.reflection.ClassInfo$ThreadLocalMapHandler@3d5bf0c5]) and a value of type [java.lang.ref.SoftReference] (value [java.lang.ref.SoftReference@5f1c34fb]) but failed to remove it when the web application was stopped. Threads are going to be renewed over time to try and avoid a probable memory leak.
        org.apache.catalina.loader.WebappClassLoader checkThreadLocalMapForLeaks
        The web application [/sample] created a ThreadLocal with key of type [org.codehaus.groovy.reflection.ClassInfo.ThreadLocalMapHandler] (value [org.codehaus.groovy.reflection.ClassInfo$ThreadLocalMapHandler@3d5bf0c5]) and a value of type [java.lang.ref.SoftReference] (value [java.lang.ref.SoftReference@59cc2f42]) but failed to remove it when the web application was stopped. Threads are going to be renewed over time to try and avoid a probable memory leak.
        org.apache.catalina.loader.WebappClassLoader checkThreadLocalMapForLeaks
        The web application [/sample] created a ThreadLocal with key of type [org.codehaus.groovy.reflection.ClassInfo.ThreadLocalMapHandler] (value [org.codehaus.groovy.reflection.ClassInfo$ThreadLocalMapHandler@3d5bf0c5]) and a value of type [java.lang.ref.SoftReference] (value [java.lang.ref.SoftReference@6c32c41c]) but failed to remove it when the web application was stopped. Threads are going to be renewed over time to try and avoid a probable memory leak.
        org.apache.catalina.loader.WebappClassLoader checkThreadLocalMapForLeaks
        The web application [/sample] created a ThreadLocal with key of type [org.codehaus.groovy.grails.orm.hibernate.support.HibernatePersistenceContextInterceptor$1] (value [org.codehaus.groovy.grails.orm.hibernate.support.HibernatePersistenceContextInterceptor$1@78e941c2]) and a value of type [java.lang.Boolean] (value [false]) but failed to remove it when the web application was stopped. Threads are going to be renewed over time to try and avoid a probable memory leak.
        org.apache.catalina.loader.WebappClassLoader checkThreadLocalMapForLeaks
        The web application [/sample] created a ThreadLocal with key of type [org.codehaus.groovy.grails.orm.hibernate.support.HibernatePersistenceContextInterceptor$2] (value [org.codehaus.groovy.grails.orm.hibernate.support.HibernatePersistenceContextInterceptor$2@19dc6592]) and a value of type [java.lang.Integer] (value [0]) but failed to remove it when the web application was stopped. Threads are going to be renewed over time to try and avoid a probable memory leak.
        org.apache.catalina.loader.WebappClassLoader checkThreadLocalMapForLeaks
        The web application [/sample] created a ThreadLocal with key of type [org.codehaus.groovy.reflection.ClassInfo.ThreadLocalMapHandler] (value [org.codehaus.groovy.reflection.ClassInfo$ThreadLocalMapHandler@3d5bf0c5]) and a value of type [java.lang.ref.SoftReference] (value [java.lang.ref.SoftReference@54906181]) but failed to remove it when the web application was stopped. Threads are going to be renewed over time to try and avoid a probable memory leak.
        org.apache.catalina.loader.WebappClassLoader checkThreadLocalMapForLeaks
        The web application [/sample] created a ThreadLocal with key of type [org.codehaus.groovy.reflection.ClassInfo.ThreadLocalMapHandler] (value [org.codehaus.groovy.reflection.ClassInfo$ThreadLocalMapHandler@3d5bf0c5]) and a value of type [java.lang.ref.SoftReference] (value [java.lang.ref.SoftReference@52f18786]) but failed to remove it when the web application was stopped. Threads are going to be renewed over time to try and avoid a probable memory leak.
        org.apache.catalina.loader.WebappClassLoader checkThreadLocalMapForLeaks
        The web application [/sample] created a ThreadLocal with key of type [org.codehaus.groovy.reflection.ClassInfo.ThreadLocalMapHandler] (value [org.codehaus.groovy.reflection.ClassInfo$ThreadLocalMapHandler@3d5bf0c5]) and a value of type [java.lang.ref.SoftReference] (value [java.lang.ref.SoftReference@6ef898f4]) but failed to remove it when the web application was stopped. Threads are going to be renewed over time to try and avoid a probable memory leak.
        org.apache.catalina.loader.WebappClassLoader checkThreadLocalMapForLeaks
        The web application [/sample] created a ThreadLocal with key of type [org.codehaus.groovy.reflection.ClassInfo.ThreadLocalMapHandler] (value [org.codehaus.groovy.reflection.ClassInfo$ThreadLocalMapHandler@3d5bf0c5]) and a value of type [java.lang.ref.SoftReference] (value [java.lang.ref.SoftReference@301f417]) but failed to remove it when the web application was stopped. Threads are going to be renewed over time to try and avoid a probable memory leak.
        org.apache.catalina.loader.WebappClassLoader checkThreadLocalMapForLeaks
        The web application [/sample] created a ThreadLocal with key of type [org.codehaus.groovy.reflection.ClassInfo.ThreadLocalMapHandler] (value [org.codehaus.groovy.reflection.ClassInfo$ThreadLocalMapHandler@3d5bf0c5]) and a value of type [java.lang.ref.SoftReference] (value [java.lang.ref.SoftReference@7540138b]) but failed to remove it when the web application was stopped. Threads are going to be renewed over time to try and avoid a probable memory leak.
        org.apache.catalina.loader.WebappClassLoader checkThreadLocalMapForLeaks
        The web application [/sample] created a ThreadLocal with key of type [org.codehaus.groovy.grails.orm.hibernate.support.HibernatePersistenceContextInterceptor$1] (value [org.codehaus.groovy.grails.orm.hibernate.support.HibernatePersistenceContextInterceptor$1@78e941c2]) and a value of type [java.lang.Boolean] (value [false]) but failed to remove it when the web application was stopped. Threads are going to be renewed over time to try and avoid a probable memory leak.
        org.apache.catalina.loader.WebappClassLoader checkThreadLocalMapForLeaks
        The web application [/sample] created a ThreadLocal with key of type [org.codehaus.groovy.grails.orm.hibernate.support.HibernatePersistenceContextInterceptor$2] (value [org.codehaus.groovy.grails.orm.hibernate.support.HibernatePersistenceContextInterceptor$2@19dc6592]) and a value of type [java.lang.Integer] (value [0]) but failed to remove it when the web application was stopped. Threads are going to be renewed over time to try and avoid a probable memory leak.
        org.apache.catalina.loader.WebappClassLoader checkThreadLocalMapForLeaks
        The web application [/sample] created a ThreadLocal with key of type [org.codehaus.groovy.reflection.ClassInfo.ThreadLocalMapHandler] (value [org.codehaus.groovy.reflection.ClassInfo$ThreadLocalMapHandler@3d5bf0c5]) and a value of type [java.lang.ref.SoftReference] (value [java.lang.ref.SoftReference@41c346d0]) but failed to remove it when the web application was stopped. Threads are going to be renewed over time to try and avoid a probable memory leak.
        org.apache.catalina.loader.WebappClassLoader checkThreadLocalMapForLeaks
        The web application [/sample] created a ThreadLocal with key of type [org.codehaus.groovy.grails.orm.hibernate.support.HibernatePersistenceContextInterceptor$1] (value [org.codehaus.groovy.grails.orm.hibernate.support.HibernatePersistenceContextInterceptor$1@78e941c2]) and a value of type [java.lang.Boolean] (value [false]) but failed to remove it when the web application was stopped. Threads are going to be renewed over time to try and avoid a probable memory leak.
        org.apache.catalina.loader.WebappClassLoader checkThreadLocalMapForLeaks
        The web application [/sample] created a ThreadLocal with key of type [org.codehaus.groovy.grails.commons.spring.ReloadAwareAutowireCapableBeanFactory$2] (value [org.codehaus.groovy.grails.commons.spring.ReloadAwareAutowireCapableBeanFactory$2@7ab8584d]) and a value of type [java.lang.Boolean] (value [false]) but failed to remove it when the web application was stopped. Threads are going to be renewed over time to try and avoid a probable memory leak.
        org.apache.catalina.loader.WebappClassLoader checkThreadLocalMapForLeaks
        The web application [/sample] created a ThreadLocal with key of type [org.codehaus.groovy.grails.orm.hibernate.support.HibernatePersistenceContextInterceptor$2] (value [org.codehaus.groovy.grails.orm.hibernate.support.HibernatePersistenceContextInterceptor$2@19dc6592]) and a value of type [java.lang.Integer] (value [0]) but failed to remove it when the web application was stopped. Threads are going to be renewed over time to try and avoid a probable memory leak.
        org.apache.catalina.loader.WebappClassLoader checkThreadLocalMapForLeaks
        The web application [/sample] created a ThreadLocal with key of type [org.codehaus.groovy.reflection.ClassInfo.ThreadLocalMapHandler] (value [org.codehaus.groovy.reflection.ClassInfo$ThreadLocalMapHandler@3d5bf0c5]) and a value of type [java.lang.ref.SoftReference] (value [java.lang.ref.SoftReference@7b5e236a]) but failed to remove it when the web application was stopped. Threads are going to be renewed over time to try and avoid a probable memory leak.
        org.apache.catalina.loader.WebappClassLoader checkThreadLocalMapForLeaks
        The web application [/sample] created a ThreadLocal with key of type [org.codehaus.groovy.grails.orm.hibernate.validation.HibernateDomainClassValidator$1] (value [org.codehaus.groovy.grails.orm.hibernate.validation.HibernateDomainClassValidator$1@6167436c]) and a value of type [java.util.ArrayList] (value [[]]) but failed to remove it when the web application was stopped. Threads are going to be renewed over time to try and avoid a probable memory leak.

        Using VisualVM to monitor the tomcat shows that even after undeploy and manual garbage collection the heap dump contains an instance of DefaultGrailsApplication.

        Is there a workaround? This issue prevents redeployment without a server restart.

        Show
        Markus Schwarz added a comment - Different configuration/environment --> same problem Grails 1.3.7 Apache Tomcat/7.0.12 Java(TM) SE Runtime Environment (build 1.6.0_24-b07) Java HotSpot(TM) 64-Bit Server VM (build 19.1-b02, mixed mode) The problem (unfortunately) is very easy to reproduce. > grails create-app testApp > cd testApp > grails create-domain-class Sample > // edit the domain class to contain at least one property > grails generate-all testapp.Sample > grails war copy war to Tomcat webapps directory start Tomcat Access the sample controller in the browser and create an instance Open the Tomcat manager application and stop or undeploy the sample application org.apache.catalina.loader.WebappClassLoader clearReferencesJdbc The web application [/sample] registered the JDBC driver [org.hsqldb.jdbcDriver] but failed to unregister it when the web application was stopped. To prevent a memory leak, the JDBC Driver has been forcibly unregistered. org.apache.catalina.loader.WebappClassLoader checkThreadLocalMapForLeaks The web application [/sample] created a ThreadLocal with key of type [org.codehaus.groovy.grails.commons.spring.ReloadAwareAutowireCapableBeanFactory$2] (value [org.codehaus.groovy.grails.commons.spring.ReloadAwareAutowireCapableBeanFactory$2@7ab8584d] ) and a value of type [java.lang.Boolean] (value [false] ) but failed to remove it when the web application was stopped. Threads are going to be renewed over time to try and avoid a probable memory leak. org.apache.catalina.loader.WebappClassLoader checkThreadLocalMapForLeaks The web application [/sample] created a ThreadLocal with key of type [org.codehaus.groovy.reflection.ClassInfo.ThreadLocalMapHandler] (value [org.codehaus.groovy.reflection.ClassInfo$ThreadLocalMapHandler@3d5bf0c5] ) and a value of type [java.lang.ref.SoftReference] (value [java.lang.ref.SoftReference@5f1c34fb] ) but failed to remove it when the web application was stopped. Threads are going to be renewed over time to try and avoid a probable memory leak. org.apache.catalina.loader.WebappClassLoader checkThreadLocalMapForLeaks The web application [/sample] created a ThreadLocal with key of type [org.codehaus.groovy.reflection.ClassInfo.ThreadLocalMapHandler] (value [org.codehaus.groovy.reflection.ClassInfo$ThreadLocalMapHandler@3d5bf0c5] ) and a value of type [java.lang.ref.SoftReference] (value [java.lang.ref.SoftReference@59cc2f42] ) but failed to remove it when the web application was stopped. Threads are going to be renewed over time to try and avoid a probable memory leak. org.apache.catalina.loader.WebappClassLoader checkThreadLocalMapForLeaks The web application [/sample] created a ThreadLocal with key of type [org.codehaus.groovy.reflection.ClassInfo.ThreadLocalMapHandler] (value [org.codehaus.groovy.reflection.ClassInfo$ThreadLocalMapHandler@3d5bf0c5] ) and a value of type [java.lang.ref.SoftReference] (value [java.lang.ref.SoftReference@6c32c41c] ) but failed to remove it when the web application was stopped. Threads are going to be renewed over time to try and avoid a probable memory leak. org.apache.catalina.loader.WebappClassLoader checkThreadLocalMapForLeaks The web application [/sample] created a ThreadLocal with key of type [org.codehaus.groovy.grails.orm.hibernate.support.HibernatePersistenceContextInterceptor$1] (value [org.codehaus.groovy.grails.orm.hibernate.support.HibernatePersistenceContextInterceptor$1@78e941c2] ) and a value of type [java.lang.Boolean] (value [false] ) but failed to remove it when the web application was stopped. Threads are going to be renewed over time to try and avoid a probable memory leak. org.apache.catalina.loader.WebappClassLoader checkThreadLocalMapForLeaks The web application [/sample] created a ThreadLocal with key of type [org.codehaus.groovy.grails.orm.hibernate.support.HibernatePersistenceContextInterceptor$2] (value [org.codehaus.groovy.grails.orm.hibernate.support.HibernatePersistenceContextInterceptor$2@19dc6592] ) and a value of type [java.lang.Integer] (value [0] ) but failed to remove it when the web application was stopped. Threads are going to be renewed over time to try and avoid a probable memory leak. org.apache.catalina.loader.WebappClassLoader checkThreadLocalMapForLeaks The web application [/sample] created a ThreadLocal with key of type [org.codehaus.groovy.reflection.ClassInfo.ThreadLocalMapHandler] (value [org.codehaus.groovy.reflection.ClassInfo$ThreadLocalMapHandler@3d5bf0c5] ) and a value of type [java.lang.ref.SoftReference] (value [java.lang.ref.SoftReference@54906181] ) but failed to remove it when the web application was stopped. Threads are going to be renewed over time to try and avoid a probable memory leak. org.apache.catalina.loader.WebappClassLoader checkThreadLocalMapForLeaks The web application [/sample] created a ThreadLocal with key of type [org.codehaus.groovy.reflection.ClassInfo.ThreadLocalMapHandler] (value [org.codehaus.groovy.reflection.ClassInfo$ThreadLocalMapHandler@3d5bf0c5] ) and a value of type [java.lang.ref.SoftReference] (value [java.lang.ref.SoftReference@52f18786] ) but failed to remove it when the web application was stopped. Threads are going to be renewed over time to try and avoid a probable memory leak. org.apache.catalina.loader.WebappClassLoader checkThreadLocalMapForLeaks The web application [/sample] created a ThreadLocal with key of type [org.codehaus.groovy.reflection.ClassInfo.ThreadLocalMapHandler] (value [org.codehaus.groovy.reflection.ClassInfo$ThreadLocalMapHandler@3d5bf0c5] ) and a value of type [java.lang.ref.SoftReference] (value [java.lang.ref.SoftReference@6ef898f4] ) but failed to remove it when the web application was stopped. Threads are going to be renewed over time to try and avoid a probable memory leak. org.apache.catalina.loader.WebappClassLoader checkThreadLocalMapForLeaks The web application [/sample] created a ThreadLocal with key of type [org.codehaus.groovy.reflection.ClassInfo.ThreadLocalMapHandler] (value [org.codehaus.groovy.reflection.ClassInfo$ThreadLocalMapHandler@3d5bf0c5] ) and a value of type [java.lang.ref.SoftReference] (value [java.lang.ref.SoftReference@301f417] ) but failed to remove it when the web application was stopped. Threads are going to be renewed over time to try and avoid a probable memory leak. org.apache.catalina.loader.WebappClassLoader checkThreadLocalMapForLeaks The web application [/sample] created a ThreadLocal with key of type [org.codehaus.groovy.reflection.ClassInfo.ThreadLocalMapHandler] (value [org.codehaus.groovy.reflection.ClassInfo$ThreadLocalMapHandler@3d5bf0c5] ) and a value of type [java.lang.ref.SoftReference] (value [java.lang.ref.SoftReference@7540138b] ) but failed to remove it when the web application was stopped. Threads are going to be renewed over time to try and avoid a probable memory leak. org.apache.catalina.loader.WebappClassLoader checkThreadLocalMapForLeaks The web application [/sample] created a ThreadLocal with key of type [org.codehaus.groovy.grails.orm.hibernate.support.HibernatePersistenceContextInterceptor$1] (value [org.codehaus.groovy.grails.orm.hibernate.support.HibernatePersistenceContextInterceptor$1@78e941c2] ) and a value of type [java.lang.Boolean] (value [false] ) but failed to remove it when the web application was stopped. Threads are going to be renewed over time to try and avoid a probable memory leak. org.apache.catalina.loader.WebappClassLoader checkThreadLocalMapForLeaks The web application [/sample] created a ThreadLocal with key of type [org.codehaus.groovy.grails.orm.hibernate.support.HibernatePersistenceContextInterceptor$2] (value [org.codehaus.groovy.grails.orm.hibernate.support.HibernatePersistenceContextInterceptor$2@19dc6592] ) and a value of type [java.lang.Integer] (value [0] ) but failed to remove it when the web application was stopped. Threads are going to be renewed over time to try and avoid a probable memory leak. org.apache.catalina.loader.WebappClassLoader checkThreadLocalMapForLeaks The web application [/sample] created a ThreadLocal with key of type [org.codehaus.groovy.reflection.ClassInfo.ThreadLocalMapHandler] (value [org.codehaus.groovy.reflection.ClassInfo$ThreadLocalMapHandler@3d5bf0c5] ) and a value of type [java.lang.ref.SoftReference] (value [java.lang.ref.SoftReference@41c346d0] ) but failed to remove it when the web application was stopped. Threads are going to be renewed over time to try and avoid a probable memory leak. org.apache.catalina.loader.WebappClassLoader checkThreadLocalMapForLeaks The web application [/sample] created a ThreadLocal with key of type [org.codehaus.groovy.grails.orm.hibernate.support.HibernatePersistenceContextInterceptor$1] (value [org.codehaus.groovy.grails.orm.hibernate.support.HibernatePersistenceContextInterceptor$1@78e941c2] ) and a value of type [java.lang.Boolean] (value [false] ) but failed to remove it when the web application was stopped. Threads are going to be renewed over time to try and avoid a probable memory leak. org.apache.catalina.loader.WebappClassLoader checkThreadLocalMapForLeaks The web application [/sample] created a ThreadLocal with key of type [org.codehaus.groovy.grails.commons.spring.ReloadAwareAutowireCapableBeanFactory$2] (value [org.codehaus.groovy.grails.commons.spring.ReloadAwareAutowireCapableBeanFactory$2@7ab8584d] ) and a value of type [java.lang.Boolean] (value [false] ) but failed to remove it when the web application was stopped. Threads are going to be renewed over time to try and avoid a probable memory leak. org.apache.catalina.loader.WebappClassLoader checkThreadLocalMapForLeaks The web application [/sample] created a ThreadLocal with key of type [org.codehaus.groovy.grails.orm.hibernate.support.HibernatePersistenceContextInterceptor$2] (value [org.codehaus.groovy.grails.orm.hibernate.support.HibernatePersistenceContextInterceptor$2@19dc6592] ) and a value of type [java.lang.Integer] (value [0] ) but failed to remove it when the web application was stopped. Threads are going to be renewed over time to try and avoid a probable memory leak. org.apache.catalina.loader.WebappClassLoader checkThreadLocalMapForLeaks The web application [/sample] created a ThreadLocal with key of type [org.codehaus.groovy.reflection.ClassInfo.ThreadLocalMapHandler] (value [org.codehaus.groovy.reflection.ClassInfo$ThreadLocalMapHandler@3d5bf0c5] ) and a value of type [java.lang.ref.SoftReference] (value [java.lang.ref.SoftReference@7b5e236a] ) but failed to remove it when the web application was stopped. Threads are going to be renewed over time to try and avoid a probable memory leak. org.apache.catalina.loader.WebappClassLoader checkThreadLocalMapForLeaks The web application [/sample] created a ThreadLocal with key of type [org.codehaus.groovy.grails.orm.hibernate.validation.HibernateDomainClassValidator$1] (value [org.codehaus.groovy.grails.orm.hibernate.validation.HibernateDomainClassValidator$1@6167436c] ) and a value of type [java.util.ArrayList] (value [[]]) but failed to remove it when the web application was stopped. Threads are going to be renewed over time to try and avoid a probable memory leak. Using VisualVM to monitor the tomcat shows that even after undeploy and manual garbage collection the heap dump contains an instance of DefaultGrailsApplication. Is there a workaround? This issue prevents redeployment without a server restart.
        Hide
        Felipe Nascimento added a comment -

        I am using apache-tomcat-6.0.32 , grails 1.3.7, Java jdk1.6.0_24 on a CentoOS 5.5.
        My application just stops responding at some point and I can see the following logs:
        Any workaround?

        SEVERE: The web application [/nu] created a ThreadLocal with key of type [org.codehaus.groovy.grails.orm.hibernate.support.HibernatePersistenceContextInterceptor$2] (value [org.codehaus.groovy.grails.orm.hibernate.support.HibernatePersistenceContextInterceptor$2@7649a07e]) and a value of type [java.lang.Integer] (value [0]) but failed to remove it when the web application was stopped. This is very likely to create a memory leak.
        Jun 3, 2011 4:23:13 PM org.apache.catalina.loader.WebappClassLoader clearThreadLocalMap
        SEVERE: The web application [/nu] created a ThreadLocal with key of type [org.codehaus.groovy.grails.orm.hibernate.validation.HibernateDomainClassValidator$1] (value [org.codehaus.groovy.grails.orm.hibernate.validation.HibernateDomainClassValidator$1@fb0a82c]) and a value of type [java.util.ArrayList] (value [[]]) but failed to remove it when the web application was stopped. This is very likely to create a memory leak.

        Is this issue the same as http://jira.grails.org/browse/GRAILS-5823 ?

        Show
        Felipe Nascimento added a comment - I am using apache-tomcat-6.0.32 , grails 1.3.7, Java jdk1.6.0_24 on a CentoOS 5.5. My application just stops responding at some point and I can see the following logs: Any workaround? SEVERE: The web application [/nu] created a ThreadLocal with key of type [org.codehaus.groovy.grails.orm.hibernate.support.HibernatePersistenceContextInterceptor$2] (value [org.codehaus.groovy.grails.orm.hibernate.support.HibernatePersistenceContextInterceptor$2@7649a07e] ) and a value of type [java.lang.Integer] (value [0] ) but failed to remove it when the web application was stopped. This is very likely to create a memory leak. Jun 3, 2011 4:23:13 PM org.apache.catalina.loader.WebappClassLoader clearThreadLocalMap SEVERE: The web application [/nu] created a ThreadLocal with key of type [org.codehaus.groovy.grails.orm.hibernate.validation.HibernateDomainClassValidator$1] (value [org.codehaus.groovy.grails.orm.hibernate.validation.HibernateDomainClassValidator$1@fb0a82c] ) and a value of type [java.util.ArrayList] (value [[]]) but failed to remove it when the web application was stopped. This is very likely to create a memory leak. Is this issue the same as http://jira.grails.org/browse/GRAILS-5823 ?
        Hide
        Chaitanya Kulkarni added a comment -

        Hi, Any update on this. Do we have to use any other version to resolve this?
        Please let me know how to resolve this issue?

        Show
        Chaitanya Kulkarni added a comment - Hi, Any update on this. Do we have to use any other version to resolve this? Please let me know how to resolve this issue?
        Hide
        Graeme Rocher added a comment -

        Already fixed

        Show
        Graeme Rocher added a comment - Already fixed
        Hide
        Chaitanya Kulkarni added a comment -

        When Grails 2.0 M1 is going to release? Any update?
        http://grails.org/2.0.M1+Release+Notes

        Show
        Chaitanya Kulkarni added a comment - When Grails 2.0 M1 is going to release? Any update? http://grails.org/2.0.M1+Release+Notes
        Hide
        Graeme Rocher added a comment -

        end of the month

        Show
        Graeme Rocher added a comment - end of the month

          People

          • Assignee:
            Graeme Rocher
            Reporter:
            Chaitanya Kulkarni
          • Votes:
            4 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development