Figured out why it's happening. Any page that has a form on it and a method 
called getOrg() will crash. Details in JIRA: 
https://issues.apache.org/jira/browse/TAPESTRY-1415.

Robert J. Walker

-----Original Message-----
From: Robert J. Walker [mailto:[EMAIL PROTECTED]
Sent: Monday, April 16, 2007 1:33 PM
To: Tapestry users
Subject: Tap 4.1.1: Unable to add clientId() method

I've just created a new page and was trying it out and I got a bizarre error 
when calling cycle.getPage() to get a reference to the new page:

org.apache.hivemind.ApplicationRuntimeException: Error at 
context:/WEB-INF/PasswordUpdate.page, line 3, column 69: Error adding property 
clientId to class mshare.web.tapestry.page.PasswordUpdate: Unable to add method 
java.lang.String getClientId() to class $PasswordUpdate_34: [source error] no 
such field: apache [context:/WEB-INF/PasswordUpdate.page, line 3, column 69]
        at 
org.apache.hivemind.impl.StrictErrorHandler.error(StrictErrorHandler.java:39)
        at org.apache.hivemind.impl.ErrorLogImpl.error(ErrorLogImpl.java:40)
        at 
org.apache.tapestry.enhance.ClientIdPropertyWorker.performEnhancement(ClientIdPropertyWorker.java:54)
        at 
$EnhancementWorker_111fbcab83a.performEnhancement($EnhancementWorker_111fbcab83a.java)
        at 
$EnhancementWorker_111fbcab84e.performEnhancement($EnhancementWorker_111fbcab84e.java)
        at 
$EnhancementWorker_111fbcab822.performEnhancement($EnhancementWorker_111fbcab822.java)
        at 
org.apache.tapestry.services.impl.ComponentConstructorFactoryImpl.getComponentConstructor(ComponentConstructorFactoryImpl.java:103)
        at 
$ComponentConstructorFactory_111fbcab80f.getComponentConstructor($ComponentConstructorFactory_111fbcab80f.java)
        at 
org.apache.tapestry.pageload.PageLoader.instantiatePage(PageLoader.java:564)
        at org.apache.tapestry.pageload.PageLoader.loadPage(PageLoader.java:591)
        at $IPageLoader_111fbcab7ff.loadPage($IPageLoader_111fbcab7ff.java)
        at $IPageLoader_111fbcab800.loadPage($IPageLoader_111fbcab800.java)
        at org.apache.tapestry.pageload.PageSource.getPage(PageSource.java:119)
        at $IPageSource_111fbcab75f.getPage($IPageSource_111fbcab75f.java)
        at 
org.apache.tapestry.engine.RequestCycle.loadPage(RequestCycle.java:248)
        at 
org.apache.tapestry.engine.RequestCycle.getPage(RequestCycle.java:235)
...
Caused by: org.apache.hivemind.ApplicationRuntimeException: Unable to add 
method java.lang.String getClientId() to class $PasswordUpdate_34: [source 
error] no such field: apache
        at 
org.apache.hivemind.service.impl.ClassFabImpl.addMethod(ClassFabImpl.java:295)
        at 
org.apache.tapestry.enhance.EnhancementOperationImpl.addMethod(EnhancementOperationImpl.java:397)
        at 
org.apache.tapestry.enhance.ClientIdPropertyWorker.createProperty(ClientIdPropertyWorker.java:99)
        at 
org.apache.tapestry.enhance.ClientIdPropertyWorker.performEnhancement(ClientIdPropertyWorker.java:50)
        ... 69 more
Caused by: javassist.CannotCompileException: [source error] no such field: 
apache
        at javassist.CtBehavior.setBody(CtBehavior.java:347)
        at javassist.CtBehavior.setBody(CtBehavior.java:316)
        at 
org.apache.hivemind.service.impl.ClassFabImpl.addMethod(ClassFabImpl.java:288)
        ... 72 more
Caused by: compile error: no such field: apache
        at 
javassist.compiler.MemberResolver.lookupField(MemberResolver.java:302)
        at 
javassist.compiler.MemberResolver.lookupFieldByJvmName(MemberResolver.java:288)
        at javassist.compiler.TypeChecker.fieldAccess(TypeChecker.java:829)
        at javassist.compiler.TypeChecker.atFieldRead(TypeChecker.java:770)
        at javassist.compiler.TypeChecker.atExpr(TypeChecker.java:571)
        at javassist.compiler.ast.Expr.accept(Expr.java:67)
        at javassist.compiler.TypeChecker.fieldAccess(TypeChecker.java:827)
        at javassist.compiler.TypeChecker.atFieldRead(TypeChecker.java:770)
        at javassist.compiler.TypeChecker.atExpr(TypeChecker.java:571)
        at javassist.compiler.ast.Expr.accept(Expr.java:67)
        at javassist.compiler.TypeChecker.fieldAccess(TypeChecker.java:827)
        at javassist.compiler.TypeChecker.atFieldRead(TypeChecker.java:770)
        at javassist.compiler.TypeChecker.atExpr(TypeChecker.java:571)
        at javassist.compiler.ast.Expr.accept(Expr.java:67)
        at javassist.compiler.TypeChecker.atCallExpr(TypeChecker.java:653)
        at 
javassist.compiler.JvstTypeChecker.atCallExpr(JvstTypeChecker.java:156)
        at javassist.compiler.ast.CallExpr.accept(CallExpr.java:45)
        at 
javassist.compiler.JvstTypeChecker.atMethodArgs(JvstTypeChecker.java:220)
        at javassist.compiler.TypeChecker.atMethodCallCore(TypeChecker.java:702)
        at javassist.compiler.TypeChecker.atCallExpr(TypeChecker.java:681)
        at 
javassist.compiler.JvstTypeChecker.atCallExpr(JvstTypeChecker.java:156)
        at javassist.compiler.ast.CallExpr.accept(CallExpr.java:45)
        at javassist.compiler.CodeGen.doTypeCheck(CodeGen.java:235)
        at javassist.compiler.CodeGen.compileExpr(CodeGen.java:222)
        at javassist.compiler.CodeGen.atReturnStmnt2(CodeGen.java:591)
        at javassist.compiler.JvstCodeGen.atReturnStmnt(JvstCodeGen.java:424)
        at javassist.compiler.CodeGen.atStmnt(CodeGen.java:356)
        at javassist.compiler.ast.Stmnt.accept(Stmnt.java:49)
        at javassist.compiler.CodeGen.atStmnt(CodeGen.java:344)
        at javassist.compiler.ast.Stmnt.accept(Stmnt.java:49)
        at javassist.compiler.CodeGen.atIfStmnt(CodeGen.java:384)
        at javassist.compiler.CodeGen.atStmnt(CodeGen.java:348)
        at javassist.compiler.ast.Stmnt.accept(Stmnt.java:49)
        at javassist.compiler.CodeGen.atMethodBody(CodeGen.java:285)
        at javassist.compiler.Javac.compileBody(Javac.java:212)
        at javassist.CtBehavior.setBody(CtBehavior.java:341)
        ... 74 more

---

PasswordUpdate.page:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE page-specification PUBLIC "-//Apache Software Foundation//Tapestry 
Specification 4.0//EN" 
"http://jakarta.apache.org/tapestry/dtd/Tapestry_4_0.dtd";>
<page-specification class="mshare.web.tapestry.page.PasswordUpdate">
        <property name="invalid"/>
        <property name="expired"/>
        <property name="password"/>
        <property name="confirm"/>
        <property name="callback"/>

        <component id="password" type="TextField">
                <binding name="displayName" value="literal:Password"/>
                <binding name="value" value="password"/>
                <binding name="hidden" value="true"/>
        </component>

        <component id="confirm" type="TextField">
                <binding name="displayName" value="literal:Confirm"/>
                <binding name="value" value="confirm"/>
                <binding name="hidden" value="true"/>
        </component>

        <asset name="loginButton" 
path="/image/template/login/login-button.gif"/>
</page-specification>

---

The PasswordUpdate class itself is an abstract class extending BasePage. It 
does not already contain a clientId property, and it appears that Tapestry is 
trying to enhance the page to add a clientId property and encountering an error 
in the attempt. I have no idea why it's looking for a field named apache. The 
only place the word "apache" is even referenced is in the .page file's doctype. 
Any ideas?

Robert J. Walker


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to