Upon shutdown, the HsqlTimer.TaskRunner needs to nullify the thread
"taskRunnerThread" contextClassLoader property via a
setContextClassloader(null) on shutdown()
By not doing this, if hsql is used in a hot-deployed environment, such as
in Tomcat. When the context is destroyed and if shutdown() is called on the
database, this thread retains a reference to the WebappClassloader, which
will never be cleaned up out of the heap because a JVM thread group retains
a reference to this thread. Over time this will lead to a permgen out of
memory exception
[jvm thread group] -> [hsqltimer.taskRunner thread].contextClassLoader ->
WebappClassloader -> [entire application]
Nobody/Anonymous
engine
current-release
Public
|
Date: 2009-09-15 00:40 Has been applied to both 1.8 and 1.9 |
|
Date: 2008-03-21 20:23
|
|
Date: 2008-03-21 20:23
|
|
Date: 2008-03-21 17:35
|
| Filename | Description | Download |
|---|---|---|
| HsqlThreadFactory.java | Download |
| Field | Old Value | Date | By |
|---|---|---|---|
| status_id | Open | 2009-09-15 00:40 | fredt |
| close_date | - | 2009-09-15 00:40 | fredt |
| allow_comments | 1 | 2009-09-15 00:40 | fredt |
| resolution_id | None | 2009-09-15 00:40 | fredt |
| File Added | 271355: HsqlThreadFactory.java | 2008-03-21 20:23 | interz12 |
| File Deleted | 271340: | 2008-03-21 20:22 | interz12 |
| File Added | 271340: HsqlThreadFactory.java | 2008-03-21 17:35 | interz12 |
Copyright © 2010 Geeknet, Inc. All rights reserved. Terms of Use