You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tapestry.apache.org by hl...@apache.org on 2011/10/07 20:41:19 UTC
svn commit: r1180149 -
/tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/AbstractReloadableObjectCreator.java
Author: hlship
Date: Fri Oct 7 18:41:18 2011
New Revision: 1180149
URL: http://svn.apache.org/viewvc?rev=1180149&view=rev
Log:
Be careful about which inner classes are added to the load list
Without the checks, inner classes (such as java.util.Map$Entry) could be added as loaded by the reloading class loader, rather than delegated to the parent class loader
Modified:
tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/AbstractReloadableObjectCreator.java
Modified: tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/AbstractReloadableObjectCreator.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/AbstractReloadableObjectCreator.java?rev=1180149&r1=1180148&r2=1180149&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/AbstractReloadableObjectCreator.java (original)
+++ tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/AbstractReloadableObjectCreator.java Fri Oct 7 18:41:18 2011
@@ -221,7 +221,12 @@ public abstract class AbstractReloadable
@Override
public void visitInnerClass(String name, String outerName, String innerName, int access)
{
- add(PlasticInternalUtils.toClassName(name));
+ // Anonymous inner classes show the outerName as null. Nested classes show the outer name as
+ // the internal name of the containing class.
+ if (outerName == null || classesToLoad.contains(PlasticInternalUtils.toClassName(outerName)))
+ {
+ add(PlasticInternalUtils.toClassName(name));
+ }
}
};