You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tapestry.apache.org by "Howard M. Lewis Ship (JIRA)" <ji...@apache.org> on 2010/05/24 20:04:23 UTC
[jira] Created: (TAP5-1163) ClassTransformation Javassist Compile
error accessing public field of non-component class
ClassTransformation Javassist Compile error accessing public field of non-component class
-----------------------------------------------------------------------------------------
Key: TAP5-1163
URL: https://issues.apache.org/jira/browse/TAP5-1163
Project: Tapestry 5
Issue Type: Bug
Components: tapestry-core
Affects Versions: 5.2.0
Reporter: Howard M. Lewis Ship
Priority: Minor
javassist.compiler.CompileError
_$get_category() not found in com.xxxx.data.CategoryTreeNode
Hide uninteresting stack frames Stack trace
javassist.compiler.TypeChecker.atMethodCallCore(TypeChecker.java:716)
javassist.compiler.TypeChecker.atCallExpr(TypeChecker.java:681)
javassist.compiler.JvstTypeChecker.atCallExpr(JvstTypeChecker.java:156)
javassist.compiler.ast.CallExpr.accept(CallExpr.java:45)
javassist.compiler.TypeChecker.atVariableAssign(TypeChecker.java:248)
javassist.compiler.TypeChecker.atAssignExpr(TypeChecker.java:217)
javassist.compiler.ast.AssignExpr.accept(AssignExpr.java:38)
javassist.compiler.CodeGen.doTypeCheck(CodeGen.java:241)
javassist.compiler.CodeGen.atStmnt(CodeGen.java:329)
javassist.compiler.ast.Stmnt.accept(Stmnt.java:49)
javassist.compiler.Javac.compileStmnt(Javac.java:568)
javassist.expr.FieldAccess.replace(FieldAccess.java:209)
org.apache.tapestry5.internal.services.InternalClassTransformationImpl$8.edit(InternalClassTransformationImpl.java:2141)
javassist.expr.ExprEditor.loopBody(ExprEditor.java:197)
javassist.expr.ExprEditor.doit(ExprEditor.java:90)
javassist.CtClassType.instrument(CtClassType.java:1289)
org.apache.tapestry5.internal.services.InternalClassTransformationImpl.replaceFieldAccess(InternalClassTransformationImpl.java:2147)
org.apache.tapestry5.internal.services.InternalClassTransformationImpl.performFieldTransformations(InternalClassTransformationImpl.java:2079)
org.apache.tapestry5.internal.services.InternalClassTransformationImpl.finish(InternalClassTransformationImpl.java:1811)
org.apache.tapestry5.internal.services.ComponentClassTransformerImpl.transformComponentClass(ComponentClassTransformerImpl.java:185)
org.apache.tapestry5.internal.services.ComponentInstantiatorSourceImpl.onLoad(ComponentInstantiatorSourceImpl.java:204)
javassist.Loader.findClass(Loader.java:340)
org.apache.tapestry5.internal.services.ComponentInstantiatorSourceImpl$PackageAwareLoader.findClass(ComponentInstantiatorSourceImpl.java:94)
javassist.Loader.loadClass(Loader.java:311)
java.lang.ClassLoader.loadClass(ClassLoader.java:250)
org.apache.tapestry5.internal.services.ComponentInstantiatorSourceImpl.findClass(ComponentInstantiatorSourceImpl.java:297)
org.apache.tapestry5.internal.services.ComponentInstantiatorSourceImpl.getInstantiator(ComponentInstantiatorSourceImpl.java:277)
org.apache.tapestry5.internal.pageload.PageLoaderImpl.createAssembler(PageLoaderImpl.java:193)
org.apache.tapestry5.internal.pageload.PageLoaderImpl.getAssembler(PageLoaderImpl.java:183)
org.apache.tapestry5.internal.pageload.PageLoaderImpl.loadPage(PageLoaderImpl.java:157)
org.apache.tapestry5.internal.services.PagePoolCache.checkout(PagePoolCache.java:210)
org.apache.tapestry5.internal.services.PagePoolImpl.checkout(PagePoolImpl.java:99)
org.apache.tapestry5.internal.services.RequestPageCacheImpl.get(RequestPageCacheImpl.java:51)
org.apache.tapestry5.internal.services.ComponentSourceImpl.getPage(ComponentSourceImpl.java:79)
I believe this is triggered by this code:
@Cached(watch = "currentNode")
public List<CategoryTreeNode> getSubNodesForCurrentNode() {
if (currentNode.category == null)
return Collections.emptyList();
return buildNodesForCategory(currentNode.category);
}
CategoryTreeNode has a public field, category. This seems to be getting confused with the component field also named category.
Workaround: replace public fields with accessor methods.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Closed: (TAP5-1163) ClassTransformation Javassist Compile
error accessing public field of non-component class
Posted by "Howard M. Lewis Ship (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/TAP5-1163?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Howard M. Lewis Ship closed TAP5-1163.
--------------------------------------
Resolution: Duplicate
> ClassTransformation Javassist Compile error accessing public field of non-component class
> -----------------------------------------------------------------------------------------
>
> Key: TAP5-1163
> URL: https://issues.apache.org/jira/browse/TAP5-1163
> Project: Tapestry 5
> Issue Type: Bug
> Components: tapestry-core
> Affects Versions: 5.2.0
> Reporter: Howard M. Lewis Ship
> Priority: Minor
>
> javassist.compiler.CompileError
> _$get_category() not found in com.xxxx.data.CategoryTreeNode
> Hide uninteresting stack frames Stack trace
> javassist.compiler.TypeChecker.atMethodCallCore(TypeChecker.java:716)
> javassist.compiler.TypeChecker.atCallExpr(TypeChecker.java:681)
> javassist.compiler.JvstTypeChecker.atCallExpr(JvstTypeChecker.java:156)
> javassist.compiler.ast.CallExpr.accept(CallExpr.java:45)
> javassist.compiler.TypeChecker.atVariableAssign(TypeChecker.java:248)
> javassist.compiler.TypeChecker.atAssignExpr(TypeChecker.java:217)
> javassist.compiler.ast.AssignExpr.accept(AssignExpr.java:38)
> javassist.compiler.CodeGen.doTypeCheck(CodeGen.java:241)
> javassist.compiler.CodeGen.atStmnt(CodeGen.java:329)
> javassist.compiler.ast.Stmnt.accept(Stmnt.java:49)
> javassist.compiler.Javac.compileStmnt(Javac.java:568)
> javassist.expr.FieldAccess.replace(FieldAccess.java:209)
> org.apache.tapestry5.internal.services.InternalClassTransformationImpl$8.edit(InternalClassTransformationImpl.java:2141)
> javassist.expr.ExprEditor.loopBody(ExprEditor.java:197)
> javassist.expr.ExprEditor.doit(ExprEditor.java:90)
> javassist.CtClassType.instrument(CtClassType.java:1289)
> org.apache.tapestry5.internal.services.InternalClassTransformationImpl.replaceFieldAccess(InternalClassTransformationImpl.java:2147)
> org.apache.tapestry5.internal.services.InternalClassTransformationImpl.performFieldTransformations(InternalClassTransformationImpl.java:2079)
> org.apache.tapestry5.internal.services.InternalClassTransformationImpl.finish(InternalClassTransformationImpl.java:1811)
> org.apache.tapestry5.internal.services.ComponentClassTransformerImpl.transformComponentClass(ComponentClassTransformerImpl.java:185)
> org.apache.tapestry5.internal.services.ComponentInstantiatorSourceImpl.onLoad(ComponentInstantiatorSourceImpl.java:204)
> javassist.Loader.findClass(Loader.java:340)
> org.apache.tapestry5.internal.services.ComponentInstantiatorSourceImpl$PackageAwareLoader.findClass(ComponentInstantiatorSourceImpl.java:94)
> javassist.Loader.loadClass(Loader.java:311)
> java.lang.ClassLoader.loadClass(ClassLoader.java:250)
> org.apache.tapestry5.internal.services.ComponentInstantiatorSourceImpl.findClass(ComponentInstantiatorSourceImpl.java:297)
> org.apache.tapestry5.internal.services.ComponentInstantiatorSourceImpl.getInstantiator(ComponentInstantiatorSourceImpl.java:277)
> org.apache.tapestry5.internal.pageload.PageLoaderImpl.createAssembler(PageLoaderImpl.java:193)
> org.apache.tapestry5.internal.pageload.PageLoaderImpl.getAssembler(PageLoaderImpl.java:183)
> org.apache.tapestry5.internal.pageload.PageLoaderImpl.loadPage(PageLoaderImpl.java:157)
> org.apache.tapestry5.internal.services.PagePoolCache.checkout(PagePoolCache.java:210)
> org.apache.tapestry5.internal.services.PagePoolImpl.checkout(PagePoolImpl.java:99)
> org.apache.tapestry5.internal.services.RequestPageCacheImpl.get(RequestPageCacheImpl.java:51)
> org.apache.tapestry5.internal.services.ComponentSourceImpl.getPage(ComponentSourceImpl.java:79)
> I believe this is triggered by this code:
> @Cached(watch = "currentNode")
> public List<CategoryTreeNode> getSubNodesForCurrentNode() {
> if (currentNode.category == null)
> return Collections.emptyList();
> return buildNodesForCategory(currentNode.category);
> }
> CategoryTreeNode has a public field, category. This seems to be getting confused with the component field also named category.
> Workaround: replace public fields with accessor methods.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Closed: (TAP5-1163) ClassTransformation Javassist Compile
error accessing public field of non-component class
Posted by "Howard M. Lewis Ship (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/TAP5-1163?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Howard M. Lewis Ship closed TAP5-1163.
--------------------------------------
Resolution: Duplicate
> ClassTransformation Javassist Compile error accessing public field of non-component class
> -----------------------------------------------------------------------------------------
>
> Key: TAP5-1163
> URL: https://issues.apache.org/jira/browse/TAP5-1163
> Project: Tapestry 5
> Issue Type: Bug
> Components: tapestry-core
> Affects Versions: 5.2.0
> Reporter: Howard M. Lewis Ship
> Priority: Minor
>
> javassist.compiler.CompileError
> _$get_category() not found in com.xxxx.data.CategoryTreeNode
> Hide uninteresting stack frames Stack trace
> javassist.compiler.TypeChecker.atMethodCallCore(TypeChecker.java:716)
> javassist.compiler.TypeChecker.atCallExpr(TypeChecker.java:681)
> javassist.compiler.JvstTypeChecker.atCallExpr(JvstTypeChecker.java:156)
> javassist.compiler.ast.CallExpr.accept(CallExpr.java:45)
> javassist.compiler.TypeChecker.atVariableAssign(TypeChecker.java:248)
> javassist.compiler.TypeChecker.atAssignExpr(TypeChecker.java:217)
> javassist.compiler.ast.AssignExpr.accept(AssignExpr.java:38)
> javassist.compiler.CodeGen.doTypeCheck(CodeGen.java:241)
> javassist.compiler.CodeGen.atStmnt(CodeGen.java:329)
> javassist.compiler.ast.Stmnt.accept(Stmnt.java:49)
> javassist.compiler.Javac.compileStmnt(Javac.java:568)
> javassist.expr.FieldAccess.replace(FieldAccess.java:209)
> org.apache.tapestry5.internal.services.InternalClassTransformationImpl$8.edit(InternalClassTransformationImpl.java:2141)
> javassist.expr.ExprEditor.loopBody(ExprEditor.java:197)
> javassist.expr.ExprEditor.doit(ExprEditor.java:90)
> javassist.CtClassType.instrument(CtClassType.java:1289)
> org.apache.tapestry5.internal.services.InternalClassTransformationImpl.replaceFieldAccess(InternalClassTransformationImpl.java:2147)
> org.apache.tapestry5.internal.services.InternalClassTransformationImpl.performFieldTransformations(InternalClassTransformationImpl.java:2079)
> org.apache.tapestry5.internal.services.InternalClassTransformationImpl.finish(InternalClassTransformationImpl.java:1811)
> org.apache.tapestry5.internal.services.ComponentClassTransformerImpl.transformComponentClass(ComponentClassTransformerImpl.java:185)
> org.apache.tapestry5.internal.services.ComponentInstantiatorSourceImpl.onLoad(ComponentInstantiatorSourceImpl.java:204)
> javassist.Loader.findClass(Loader.java:340)
> org.apache.tapestry5.internal.services.ComponentInstantiatorSourceImpl$PackageAwareLoader.findClass(ComponentInstantiatorSourceImpl.java:94)
> javassist.Loader.loadClass(Loader.java:311)
> java.lang.ClassLoader.loadClass(ClassLoader.java:250)
> org.apache.tapestry5.internal.services.ComponentInstantiatorSourceImpl.findClass(ComponentInstantiatorSourceImpl.java:297)
> org.apache.tapestry5.internal.services.ComponentInstantiatorSourceImpl.getInstantiator(ComponentInstantiatorSourceImpl.java:277)
> org.apache.tapestry5.internal.pageload.PageLoaderImpl.createAssembler(PageLoaderImpl.java:193)
> org.apache.tapestry5.internal.pageload.PageLoaderImpl.getAssembler(PageLoaderImpl.java:183)
> org.apache.tapestry5.internal.pageload.PageLoaderImpl.loadPage(PageLoaderImpl.java:157)
> org.apache.tapestry5.internal.services.PagePoolCache.checkout(PagePoolCache.java:210)
> org.apache.tapestry5.internal.services.PagePoolImpl.checkout(PagePoolImpl.java:99)
> org.apache.tapestry5.internal.services.RequestPageCacheImpl.get(RequestPageCacheImpl.java:51)
> org.apache.tapestry5.internal.services.ComponentSourceImpl.getPage(ComponentSourceImpl.java:79)
> I believe this is triggered by this code:
> @Cached(watch = "currentNode")
> public List<CategoryTreeNode> getSubNodesForCurrentNode() {
> if (currentNode.category == null)
> return Collections.emptyList();
> return buildNodesForCategory(currentNode.category);
> }
> CategoryTreeNode has a public field, category. This seems to be getting confused with the component field also named category.
> Workaround: replace public fields with accessor methods.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.