[ 
https://issues.apache.org/jira/browse/SLING-1891?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Carsten Ziegeler updated SLING-1891:
------------------------------------

    Summary: Replace Class.forName uses by ClassLoader.loadClass  (was: Replace 
Cass.forName uses by ClassLoader.loadClass)

> Replace Class.forName uses by ClassLoader.loadClass
> ---------------------------------------------------
>
>                 Key: SLING-1891
>                 URL: https://issues.apache.org/jira/browse/SLING-1891
>             Project: Sling
>          Issue Type: Bug
>          Components: Extensions, JCR, Launchpad, Scripting
>    Affects Versions: Scripting JSP 2.0.10, Scripting JavaScript 2.0.8, 
> Scripting API 2.1.0,  Launchpad Base 2.2.0, JCR Resource 2.0.6, Extensions 
> Event 2.4.2
>            Reporter: Felix Meschberger
>            Assignee: Carsten Ziegeler
>             Fix For: Scripting JSP 2.0.12, Scripting JavaScript 2.0.10, 
> Scripting API 2.1.2, Launchpad Base 2.2.2, JCR Resource 2.0.8, Extensions 
> Event 3.0.0
>
>
> Class.forName has a nasty problem in that it caches returned classes in the 
> class load first asked (the initiator) in addition to the class loader 
> actually defining the class. The ClassLoader.loadClass methods do not have 
> this problem and only caches the loaded class in the defining class loader.
> Looking for uses in the Sling code base (using find . -name "*.java" -exec 
> fgrep -l Class.forName {} \;) I found the following nice occurrences:
>     
> launchpad/base/src/main/java/org/apache/sling/launchpad/base/impl/Sling.java
>     
> bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/jcr/JCRHelper.java
>     
> bundles/scripting/javascript/src/main/java/org/apache/sling/scripting/javascript/wrapper/ScriptableResource.java
>     
> bundles/scripting/jsp/src/main/java/org/apache/sling/scripting/jsp/jasper/compiler/JspUtil.java
>     
> bundles/scripting/jsp/src/main/java/org/apache/sling/scripting/jsp/jasper/compiler/TagPluginManager.java
>     
> bundles/scripting/jsp/src/main/java/org/apache/sling/scripting/jsp/jasper/JspCompilationContext.java
>     bundles/scripting/api/src/main/java/sun/misc/Service.java
>     
> bundles/jcr/resource/src/main/java/org/apache/sling/jcr/resource/JcrPropertyMap.java
>     
> contrib/explorers/gwt/src/main/java/org/apache/sling/explorer/client/widgets/tree/resource/ResourceTree.java
> For more information on this problem, I suggest reading the blog series by BJ 
> Hargrave, probably starting with 
> http://blog.bjhargrave.com/2007/09/classforname-caches-defined-class-in.html.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to