commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Paul Libbrecht (JIRA)" <commons-...@jakarta.apache.org>
Subject [jira] Commented: (JELLY-85) TagScript doesn't clear its cached tags after run()
Date Thu, 20 Jan 2005 10:02:17 GMT
     [ http://issues.apache.org/jira/browse/JELLY-85?page=comments#action_57828 ]
     
Paul Libbrecht commented on JELLY-85:
-------------------------------------

Is "thread guarantees" the following excerpt of Tag interface javadoc?

> A Tag is only ever used by a single thread so that Tag developers
> do not  need to concern themselves with mutli-threading 
> issues when writing a Tag.

Wouldn't i be simpler to say that Thread safety is guaranteed by the usage of a single context
per thread ? Or do you have situations where a single context is used by several threads ?

My tests and personal usages are fine with the current status of the tags, even with your
memory-leak-test. 

paul

> TagScript doesn't clear its cached tags after run()
> ---------------------------------------------------
>
>          Key: JELLY-85
>          URL: http://issues.apache.org/jira/browse/JELLY-85
>      Project: jelly
>         Type: Bug
>   Components: core / taglib.core
>     Versions: 1.0-beta-4
>     Reporter: Scott Howlett
>  Attachments: StaticTagScript_patch.txt, TagScript_patch.txt, includeAndDefineExample.zip
>
> TagScript caches the tags it generates in a ThreadLocal. At the beginning of run() it
checks to see if the context wants to cache tags - if not, it clears the cache and regenerates
it.
> But there is no corresponding check and cache clearing at the end of run(). So if a tag
holds onto some significant resource, that resource will hang around until the thread goes
away or until the tag is run again.
> I am using Jelly Swing extensively, and various tags end up attached to the AWT Event
thread for the lifetime of my application.
> As a quick fix, I have a patch that simply repeats the check-and-clear-cache behavior
at the end of TagScript.run(). I also have a patch that adds this behavior to StaticTagScript,
whose run() never seems to clear cached tags.
> I am probably just unclear, but it seems to me that there is a deeper issue as well -
the context is being asked whether it wants to cache tags, but the result of this question
affects the TagScript, which is really independent of the context. It seems like if context
wants to cache tags, perhaps the ThreadLocal used for their storage ought to belong to the
context somehow.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
If you want more information on JIRA, or have a bug to report see:
   http://www.atlassian.com/software/jira


---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org


Mime
View raw message