In my current GAE project I have setup a BaseBean.cfc class that contains 
the following method:

---------------------------------------------------------------------------------
<cffunction name="toStruct" output="false">
<cfset var result = {} />
<cfset var key = "" />
 <cfloop collection="#variables#" item="key">
<cfif NOT 
listFindNoCase("this,init,onmissingmethod,tostruct,tostring,googlewrite,googledelete,googlekey",
 
key)>
<cfset result[key] = variables[key] />
<cfelseif lCase(key) EQ "googlekey">
<cfset result["__key__"] = googleKey(this).toString() />
</cfif>
</cfloop>
 <cfreturn result />
</cffunction>
---------------------------------------------------------------------------------

I then have created a few components that extend from this CFC, and in the 
previous GAE version I was able to call this to get a struct version of the 
component.  The line "<cfset result["__key__"] = googleKey(this).toString() 
/>" actually used to read "<cfset result["__key__"] = 
this.googleKey().toString() />", but that started to throw errors, so I 
switched in an effort to try to get something to work again.  Either way, 
both methods in the current 1.5b build return this error: "*The page you 
were executing caused an internal BlueDragon server error*". Here is the 
stack trace:

java.lang.NullPointerException
        at 
com.naryx.tagfusion.expression.function.functionBase.getNamedParam(Unknown 
Source)
        at com.naryx.tagfusion.cfm.sql.GoogleKey.execute(Unknown Source)
        at com.naryx.tagfusion.cfm.parser.CFFunctionExpression.Eval(Unknown 
Source)
        at com.naryx.tagfusion.cfm.parser.cfFullVarExpression.evalLHS(Unknown 
Source)
        at 
com.naryx.tagfusion.cfm.parser.cfFullVarExpression.evalNatural(Unknown Source)
        at com.naryx.tagfusion.cfm.parser.cfFullVarExpression.Eval(Unknown 
Source)
        at com.naryx.tagfusion.cfm.parser.CFAssignmentExpression.Eval(Unknown 
Source)
        at com.naryx.tagfusion.cfm.parser.runTime.run(Unknown Source)
        at com.naryx.tagfusion.cfm.parser.runTime.runExpression(Unknown Source)
        at com.naryx.tagfusion.cfm.parser.runTime.runExpression(Unknown Source)
        at com.naryx.tagfusion.cfm.tag.cfSET.render(Unknown Source)
        at com.naryx.tagfusion.cfm.tag.cfIF.render(Unknown Source)
        at com.naryx.tagfusion.cfm.tag.cfTag.coreRender(Unknown Source)
        at com.naryx.tagfusion.cfm.tag.cfTag.render(Unknown Source)
        at com.naryx.tagfusion.cfm.tag.cfLOOP.renderCollection(Unknown Source)
        at com.naryx.tagfusion.cfm.tag.cfLOOP.render(Unknown Source)
        at com.naryx.tagfusion.cfm.tag.cfTag.coreRender(Unknown Source)
        at com.naryx.tagfusion.cfm.tag.cfTag.renderToString(Unknown Source)
        at com.naryx.tagfusion.cfm.tag.cfFUNCTION.realRun(Unknown Source)
        at com.naryx.tagfusion.cfm.tag.cfFUNCTION.run(Unknown Source)
        at com.naryx.tagfusion.cfm.tag.cfFUNCTION.run(Unknown Source)
        at 
com.naryx.tagfusion.cfm.parser.script.userDefinedFunction.execute(Unknown 
Source)
        at 
com.naryx.tagfusion.cfm.engine.cfComponentData.invokeComponentFunction(Unknown 
Source)
        at 
com.naryx.tagfusion.cfm.engine.cfComponentData.invokeComponentFunction(Unknown 
Source)
        at com.naryx.tagfusion.cfm.parser.cfFullVarExpression.Eval(Unknown 
Source)
        at 
com.naryx.tagfusion.cfm.parser.cfFullVarExpression.evalNatural(Unknown Source)
        at com.naryx.tagfusion.cfm.parser.cfFullVarExpression.Eval(Unknown 
Source)
        at com.naryx.tagfusion.cfm.parser.runTime.run(Unknown Source)
        at com.naryx.tagfusion.cfm.parser.runTime.runExpression(Unknown Source)
        at com.naryx.tagfusion.cfm.parser.runTime.runExpression(Unknown Source)
        at com.naryx.tagfusion.cfm.parser.runTime.runExpression(Unknown Source)
        at com.naryx.tagfusion.cfm.tag.cfTag.getDynamicAttribute(Unknown Source)
        at com.naryx.tagfusion.cfm.tag.cfTag.getDynamic(Unknown Source)
        at com.naryx.tagfusion.cfm.tag.cfTag.getDynamic(Unknown Source)
        at com.naryx.tagfusion.cfm.tag.cfDUMP.render(Unknown Source)
        at com.naryx.tagfusion.cfm.tag.cfTag.coreRender(Unknown Source)
        at com.naryx.tagfusion.cfm.tag.cfTag.render(Unknown Source)
        at com.naryx.tagfusion.cfm.tag.cfLOOP.renderIndex(Unknown Source)
        at com.naryx.tagfusion.cfm.tag.cfLOOP.render(Unknown Source)
        at com.naryx.tagfusion.cfm.tag.cfTag.coreRender(Unknown Source)
        at com.naryx.tagfusion.cfm.tag.cfTag.renderToString(Unknown Source)
        at com.naryx.tagfusion.cfm.tag.cfFUNCTION.realRun(Unknown Source)
        at com.naryx.tagfusion.cfm.tag.cfFUNCTION.run(Unknown Source)
        at com.naryx.tagfusion.cfm.tag.cfFUNCTION.run(Unknown Source)
        at 
com.naryx.tagfusion.cfm.parser.script.userDefinedFunction.execute(Unknown 
Source)
        at 
com.naryx.tagfusion.cfm.engine.cfComponentData.invokeComponentFunction(Unknown 
Source)
        at 
com.naryx.tagfusion.cfm.engine.cfComponentData.invokeComponentFunction(Unknown 
Source)
        at 
com.naryx.tagfusion.cfm.tag.cfINVOKECommon.invokeComponentMethod(Unknown Source)
        at com.naryx.tagfusion.cfm.tag.cfINVOKECommon.renderComponent(Unknown 
Source)
        at com.naryx.tagfusion.cfm.tag.cfINVOKECommon.render(Unknown Source)
        at com.naryx.tagfusion.cfm.tag.cfTag.coreRender(Unknown Source)
        at com.naryx.tagfusion.cfm.tag.cfTag.renderToString(Unknown Source)
        at com.naryx.tagfusion.cfm.tag.cfFUNCTION.realRun(Unknown Source)
        at com.naryx.tagfusion.cfm.tag.cfFUNCTION.run(Unknown Source)
        at com.naryx.tagfusion.cfm.tag.cfFUNCTION.run(Unknown Source)
        at 
com.naryx.tagfusion.cfm.parser.script.userDefinedFunction.execute(Unknown 
Source)
        at com.naryx.tagfusion.cfm.parser.CFFunctionExpression.Eval(Unknown 
Source)
        at com.naryx.tagfusion.cfm.parser.runTime.run(Unknown Source)
        at com.naryx.tagfusion.cfm.parser.runTime.runExpression(Unknown Source)
        at com.naryx.tagfusion.cfm.parser.runTime.runExpression(Unknown Source)
        at com.naryx.tagfusion.cfm.tag.cfSET.render(Unknown Source)
        at com.naryx.tagfusion.cfm.tag.cfIF.render(Unknown Source)
        at com.naryx.tagfusion.cfm.tag.cfTag.coreRender(Unknown Source)
        at com.naryx.tagfusion.cfm.tag.cfTag.renderToString(Unknown Source)
        at com.naryx.tagfusion.cfm.tag.cfFUNCTION.realRun(Unknown Source)
        at com.naryx.tagfusion.cfm.tag.cfFUNCTION.run(Unknown Source)
        at com.naryx.tagfusion.cfm.tag.cfFUNCTION.run(Unknown Source)
        at 
com.naryx.tagfusion.cfm.parser.script.userDefinedFunction.execute(Unknown 
Source)
        at 
com.naryx.tagfusion.cfm.engine.cfComponentData.invokeComponentFunction(Unknown 
Source)
        at 
com.naryx.tagfusion.cfm.engine.cfComponentData.invokeApplicationFunction(Unknown
 Source)
        at com.naryx.tagfusion.cfm.engine.cfSession.onRequestStart(Unknown 
Source)
        at com.naryx.tagfusion.cfm.engine.cfSession.onRequestStart(Unknown 
Source)
        at com.naryx.tagfusion.cfm.engine.cfEngine.service(Unknown Source)
        at com.naryx.tagfusion.cfm.cfServlet.service(Unknown Source)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
        at 
org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
        at 
org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:390)
        at 
org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
        at 
org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
        at 
org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
        at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418)
        at 
com.google.apphosting.utils.jetty.DevAppEngineWebAppContext.handle(DevAppEngineWebAppContext.java:70)
        at org.mortbay.jetty.servlet.Dispatcher.forward(Dispatcher.java:327)
        at org.mortbay.jetty.servlet.Dispatcher.forward(Dispatcher.java:126)
        at 
com.google.appengine.tools.development.StaticFileUtils.serveWelcomeFileAsForward(StaticFileUtils.java:80)
        at 
com.google.appengine.tools.development.LocalResourceFileServlet.maybeServeWelcomeFile(LocalResourceFileServlet.java:247)
        at 
com.google.appengine.tools.development.LocalResourceFileServlet.doGet(LocalResourceFileServlet.java:120)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
        at 
org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
        at 
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1166)
        at 
com.google.appengine.api.blobstore.dev.ServeBlobFilter.doFilter(ServeBlobFilter.java:58)
        at 
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
        at 
com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(TransactionCleanupFilter.java:43)
        at 
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
        at 
com.google.appengine.tools.development.StaticFileFilter.doFilter(StaticFileFilter.java:122)
        at 
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
        at 
org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388)
        at 
org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
        at 
org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
        at 
org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
        at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418)
        at 
com.google.apphosting.utils.jetty.DevAppEngineWebAppContext.handle(DevAppEngineWebAppContext.java:70)
        at 
org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
        at 
com.google.appengine.tools.development.JettyContainerService$ApiProxyHandler.handle(JettyContainerService.java:351)
        at 
org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
        at org.mortbay.jetty.Server.handle(Server.java:326)
        at 
org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
        at 
org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:923)
        at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:547)
        at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212)
        at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
        at 
org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409)
        at 
org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)


Any ideas? Thanks!

-- 
official tag/function reference: http://openbd.org/manual/
 mailing list - http://groups.google.com/group/openbd?hl=en

Reply via email to