groovy-notifications mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "John Wagenleitner (JIRA)" <>
Subject [jira] [Commented] (GROOVY-7621) Memory Leak (metaClassRegistry) unable to remove metaClass based on instances
Date Wed, 15 Jun 2016 18:24:09 GMT


John Wagenleitner commented on GROOVY-7621:

Are you using version 2.4.6?  If so are you able to test with 2.4.7, a fix was put in that
version in order to guard against this stackoverflow.

> Memory Leak (metaClassRegistry) unable to remove metaClass based on instances
> -----------------------------------------------------------------------------
>                 Key: GROOVY-7621
>                 URL:
>             Project: Groovy
>          Issue Type: Bug
>          Components: groovy-runtime
>    Affects Versions: 2.3.7
>         Environment: Running from Eclipse, JBoss with jdk 1.6
>            Reporter: Kimball C Sampson
>            Assignee: John Wagenleitner
>             Fix For: 2.4.6
> I'm using the GroovyScriptEngine in a web server environment where the scripts are provided
properties on-the-fly from database objects.  This is done by implementing script.metaClass.propertyMissing.
 When I return a value, I set the metaClass to give the returned value even more sub-properties.
 After processing 100k records or so, I run out of memory.  I tried to write code to remove
entries from the metaClassRepository, but there's no way to do it for an object instanced
based metaClass.  Also, I've outputed the GroovySystem.metaClassRepository.iterator().size()
and it kept growing.  The values are out of scope so they should get garbage collected, but
the metaClasses aren't getting cleaned up.
> The workaround to this problem was to implement a groovy Proxy, though, I liked the metaClass
solution better.

This message was sent by Atlassian JIRA

View raw message