modelglue/modelglue-framework

Element [eventhandler] is undefined in a CFML structure referenced as part of an expression.

Opened this issue · 2 comments

Running latest 3.2 NewScaffolding branch and encountered this error this morning (which had not happened on 3.1.299. The error is on the cfreturn line 94 where the eventhandler being requested does not exist in this.eventHandlers.

    <cfif structKeyExists( this.eventHandlers, arguments.eventHandlerName ) IS false>
        <cflock type="exclusive" name="EventHandlerWasDefined_EventHandlerLock_#arguments.eventHandlerName#" timeout="10" throwontimeout="true">
            <cfif structKeyExists( this.eventHandlers, arguments.eventHandlerName ) IS false AND eventHandlerWasDefined( arguments.eventHandlerName ) IS true>
                <cflock type="exclusive" name="EventHandlerCreationLock_#arguments.eventHandlerName#" timeout="10" throwontimeout="true">
                    <cfif structKeyExists( this.eventHandlers, arguments.eventHandlerName ) IS false AND eventHandlerWasDefined( arguments.eventHandlerName ) IS true>
                        <cfloop from="1" to="#arrayLen( variables.ModuleLoaderArray )#" index="i">
                            <cfset variables.ModuleLoaderArray[ i ].locateAndMakeEventHandler( this, arguments.eventHandlerName ) />
                        </cfloop>
                    </cfif>
                </cflock>
            </cfif>
        </cflock>
    </cfif>

    <cfreturn this.eventHandlers[arguments.eventHandlerName] />
    /var/www/pukka/shared-prod2/ModelGlue/gesture/MemoizedModelGlue.cfc (94, ??)
    /var/www/pukka/shared-prod2/ModelGlue/gesture/eventrequest/phase/Invocation.cfc (78, CF_TEMPLATEPROXY)
    /var/www/pukka/shared-prod2/model/framework/EventContextWithOnQueueComplete.cfc (43, CF_TEMPLATEPROXY)
    /var/www/pukka/shared-prod2/ModelGlue/gesture/ModelGlue.cfc (297, CF_TEMPLATEPROXY)
    /var/www/pukka/shared-prod2/ModelGlue/gesture/ModelGlue.cfm (98, CF_TEMPLATEPROXY)
    /var/www/pukka/main-prod2/em360/index.cfm (29, CFINCLUDE)

Full Stack Trace

coldfusion.runtime.UndefinedElementException: Element preview.receiptemail.html is undefined in a CFML structure referenced as part of an expression. at coldfusion.runtime.CfJspPage.ArrayGetAt(CfJspPage.java:974) at coldfusion.runtime.CfJspPage._arrayGetAt(CfJspPage.java:985) at coldfusion.runtime.CfJspPage._arrayGetAt(CfJspPage.java:980) at cfMemoizedModelGlue2ecfc357265723$funcGETEVENTHANDLER.runFunction(/var/www/pukka/shared-prod2/ModelGlue/gesture/MemoizedModelGlue.cfc:94) at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:472) at coldfusion.filter.SilentFilter.invoke(SilentFilter.java:47) at coldfusion.runtime.UDFMethod$ArgumentCollectionFilter.invoke(UDFMethod.java:368) at coldfusion.filter.FunctionAccessFilter.invoke(FunctionAccessFilter.java:55) at coldfusion.runtime.UDFMethod.runFilterChain(UDFMethod.java:321) at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:220) at coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:655) at coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:444) at coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:414) at coldfusion.runtime.CfJspPage._invoke(CfJspPage.java:2432) at cfInvocation2ecfc1871782161$funcEXECUTE.runFunction(/var/www/pukka/shared-prod2/ModelGlue/gesture/eventrequest/phase/Invocation.cfc:78) at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:472) at coldfusion.filter.SilentFilter.invoke(SilentFilter.java:47) at coldfusion.runtime.UDFMethod$ReturnTypeFilter.invoke(UDFMethod.java:405) at coldfusion.runtime.UDFMethod$ArgumentCollectionFilter.invoke(UDFMethod.java:368) at coldfusion.filter.FunctionAccessFilter.invoke(FunctionAccessFilter.java:55) at coldfusion.runtime.UDFMethod.runFilterChain(UDFMethod.java:321) at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:220) at coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:655) at coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:444) at coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:414) at coldfusion.runtime.CfJspPage._invoke(CfJspPage.java:2432) at cfEventContextWithOnQueueComplete2ecfc1776779872$funcEXECUTE.runFunction(/var/www/pukka/shared-prod2/model/framework/EventContextWithOnQueueComplete.cfc:43) at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:472) at coldfusion.filter.SilentFilter.invoke(SilentFilter.java:47) at coldfusion.runtime.UDFMethod$ArgumentCollectionFilter.invoke(UDFMethod.java:368) at coldfusion.filter.FunctionAccessFilter.invoke(FunctionAccessFilter.java:55) at coldfusion.runtime.UDFMethod.runFilterChain(UDFMethod.java:321) at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:220) at coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:655) at coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:444) at coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:414) at coldfusion.runtime.CfJspPage._invoke(CfJspPage.java:2432) at cfModelGlue2ecfc1882734190$funcHANDLEREQUEST.runFunction(/var/www/pukka/shared-prod2/ModelGlue/gesture/ModelGlue.cfc:297) at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:472) at coldfusion.filter.SilentFilter.invoke(SilentFilter.java:47) at coldfusion.runtime.UDFMethod$ArgumentCollectionFilter.invoke(UDFMethod.java:368) at coldfusion.filter.FunctionAccessFilter.invoke(FunctionAccessFilter.java:55) at coldfusion.runtime.UDFMethod.runFilterChain(UDFMethod.java:321) at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:220) at coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:655) at coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:444) at coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:414) at coldfusion.runtime.CfJspPage._invoke(CfJspPage.java:2432) at cfModelGlue2ecfm1882732952.runPage(/var/www/pukka/shared-prod2/ModelGlue/gesture/ModelGlue.cfm:98) at coldfusion.runtime.CfJspPage.invoke(CfJspPage.java:244) at coldfusion.tagext.lang.IncludeTag.doStartTag(IncludeTag.java:444) at coldfusion.runtime.CfJspPage._emptyTcfTag(CfJspPage.java:2799) at cfindex2ecfm893482512.runPage(/var/www/pukka/main-prod2/em360/index.cfm:29) at coldfusion.runtime.CfJspPage.invoke(CfJspPage.java:244) at coldfusion.tagext.lang.IncludeTag.doStartTag(IncludeTag.java:444) at coldfusion.filter.CfincludeFilter.invoke(CfincludeFilter.java:65) at coldfusion.filter.IpFilter.invoke(IpFilter.java:64) at coldfusion.filter.ApplicationFilter.invoke(ApplicationFilter.java:428) at coldfusion.filter.RequestMonitorFilter.invoke(RequestMonitorFilter.java:48) at coldfusion.filter.MonitoringFilter.invoke(MonitoringFilter.java:40) at coldfusion.filter.PathFilter.invoke(PathFilter.java:112) at coldfusion.filter.ExceptionFilter.invoke(ExceptionFilter.java:94) at coldfusion.filter.ClientScopePersistenceFilter.invoke(ClientScopePersistenceFilter.java:28) at coldfusion.filter.BrowserFilter.invoke(BrowserFilter.java:38) at coldfusion.filter.NoCacheFilter.invoke(NoCacheFilter.java:58) at coldfusion.filter.GlobalsFilter.invoke(GlobalsFilter.java:38) at coldfusion.filter.DatasourceFilter.invoke(DatasourceFilter.java:22) at coldfusion.filter.CachingFilter.invoke(CachingFilter.java:62) at coldfusion.CfmServlet.service(CfmServlet.java:219) at coldfusion.bootstrap.BootstrapServlet.service(BootstrapServlet.java:89) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at coldfusion.monitor.event.MonitoringServletFilter.doFilter(MonitoringServletFilter.java:42) at coldfusion.bootstrap.BootstrapFilter.doFilter(BootstrapFilter.java:46) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at com.intergral.fusionreactor.filter.FusionReactorCoreFilter.doHttpServletRequest(FusionReactorCoreFilter.java:503) at com.intergral.fusionreactor.filter.FusionReactorCoreFilter.doFusionRequest(FusionReactorCoreFilter.java:337) at com.intergral.fusionreactor.filter.FusionReactorCoreFilter.doFilter(FusionReactorCoreFilter.java:246) at com.intergral.fusionreactor.filter.FusionReactorFilter.doFilter(FusionReactorFilter.java:121) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98) at org.apache.catalina.valves.CrawlerSessionManagerValve.invoke(CrawlerSessionManagerValve.java:180) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:928) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:414) at org.apache.coyote.ajp.AjpProcessor.process(AjpProcessor.java:204) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:539) at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:298) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918) at java.lang.Thread.run(Thread.java:662) 

Any chance the underlying call here is an xmlSearch() under load? If so, this bug would definitely cause it: https://bugbase.adobe.com/index.cfm?event=bug&id=3739102

The solution is to wrap the xmlParse() in a duplicate() to eliminate the thread contention. This issue caused me literally years of pulling my hair out with Transfer ORM. See the fix there: TransferORM/transfer#1

Interesting point. I'm headed out today for an out-of-town Funeral. I'll
find some time to get into this Monday or Tuesday.

DW

Brian mailto:notifications@github.com
Tuesday, February 10, 2015 8:55 PM

Any chance the underlying call here is an xmlSearch() under load? If
so, this bug would definitely cause it:
https://bugbase.adobe.com/index.cfm?event=bug&id=3739102
https://bugbase.adobe.com/index.cfm?event=bug&id=3739102

The solution is to wrap the xmlParse() in a duplicate() to eliminate
the thread contention. This issue caused me literally years of pulling
my hair out with Transfer ORM. See the fix there:
TransferORM/transfer#1 TransferORM/transfer#1


Reply to this email directly or view it on GitHub
#7 (comment).

Brian mailto:notifications@github.com
Tuesday, May 20, 2014 3:25 PM

Running latest 3.2 NewScaffolding branch and encountered this error
this morning (which had not happened on 3.1.299. The error is on the
cfreturn line 94 where the eventhandler being requested does not exist
in this.eventHandlers.

|<cfif structKeyExists( this.eventHandlers, arguments.eventHandlerName
) IS false>

<cfif structKeyExists( this.eventHandlers, arguments.eventHandlerName
) IS false AND eventHandlerWasDefined( arguments.eventHandlerName ) IS
true>

<cfif structKeyExists( this.eventHandlers, arguments.eventHandlerName
) IS false AND eventHandlerWasDefined( arguments.eventHandlerName ) IS
true>

<cfset variables.ModuleLoaderArray[ i ].locateAndMakeEventHandler(
this, arguments.eventHandlerName ) />





<cfreturn this.eventHandlers[arguments.eventHandlerName] />
|
|/var/www/pukka/shared-prod2/ModelGlue/gesture/MemoizedModelGlue.cfc
(94, ??)
/var/www/pukka/shared-prod2/ModelGlue/gesture/eventrequest/phase/Invocation.cfc
(78, CF_TEMPLATEPROXY)
/var/www/pukka/shared-prod2/model/framework/EventContextWithOnQueueComplete.cfc
(43, CF_TEMPLATEPROXY)
/var/www/pukka/shared-prod2/ModelGlue/gesture/ModelGlue.cfc (297,
CF_TEMPLATEPROXY)
/var/www/pukka/shared-prod2/ModelGlue/gesture/ModelGlue.cfm (98,
CF_TEMPLATEPROXY)
/var/www/pukka/main-prod2/em360/index.cfm (29, CFINCLUDE)
|

Full Stack Trace

|coldfusion.runtime.UndefinedElementException: Element
preview.receiptemail.html is undefined in a CFML structure referenced
as part of an expression. at
coldfusion.runtime.CfJspPage.ArrayGetAt(CfJspPage.java:974) at
coldfusion.runtime.CfJspPage._arrayGetAt(CfJspPage.java:985) at
coldfusion.runtime.CfJspPage._arrayGetAt(CfJspPage.java:980) at
cfMemoizedModelGlue2ecfc357265723$funcGETEVENTHANDLER.runFunction(/var/www/pukka/shared-prod2/ModelGlue/gesture/MemoizedModelGlue.cfc:94)
at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:472) at
coldfusion.filter.SilentFilter.invoke(SilentFilter.java:47) at
coldfusion.runtime.UDFMethod$ArgumentCollectionFilter.invoke(UDFMethod.java:368)
at
coldfusion.filter.FunctionAccessFilter.invoke(FunctionAccessFilter.java:55)
at coldfusion.runtime.UDFMethod.runFilterChain(UDFMethod.java:321) at
coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:220) at
coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:655) at
coldfusion.runtime.Templ
ateProxy.invoke(TemplateProxy.java:444) at
coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:414) at
coldfusion.runtime.CfJspPage._invoke(CfJspPage.java:2432) at
cfInvocation2ecfc1871782161$funcEXECUTE.runFunction(/var/www/pukka/shared-prod2/ModelGlue/gesture/eventrequest/phase/Invocation.cfc:78)
at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:472) at
coldfusion.filter.SilentFilter.invoke(SilentFilter.java:47) at
coldfusion.runtime.UDFMethod$ReturnTypeFilter.invoke(UDFMethod.java:405)
at
coldfusion.runtime.UDFMethod$ArgumentCollectionFilter.invoke(UDFMethod.java:368)
at
coldfusion.filter.FunctionAccessFilter.invoke(FunctionAccessFilter.java:55)
at coldfusion.runtime.UDFMethod.runFilterChain(UDFMethod.java:321) at
coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:220) at
coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:655) at
coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:444) at
coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:414) at
coldfusion.runtime.CfJspPage._invoke(CfJspPage.java:2432) at
cfEventContextWithOnQueueComplete2ecfc1776779872$funcEXECUTE.runFunction(/var/www/pukka/shared-prod2/model/framework/EventContextWithOnQueueComplete.cfc:43)
at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:472) at
coldfusion.filter.SilentFilter.invoke(SilentFilter.java:47) at
coldfusion.runtime.UDFMethod$ArgumentCollectionFilter.invoke(UDFMethod.java:368)
at
coldfusion.filter.FunctionAccessFilter.invoke(FunctionAccessFilter.java:55)
at coldfusion.runtime.UDFMethod.runFilterChain(UDFMethod.java:321) at
coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:220) at
coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:655) at
coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:444) at
coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:414) at
coldfusion.runtime.CfJspPage._invoke(CfJspPage.java:2432) at
cfModelGlue2ecfc1882734190$funcHANDLEREQUEST.runFunction(/var/www/pukka/shared-prod2/ModelGlue/gesture
/ModelGlue.cfc:297) at
coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:472) at
coldfusion.filter.SilentFilter.invoke(SilentFilter.java:47) at
coldfusion.runtime.UDFMethod$ArgumentCollectionFilter.invoke(UDFMethod.java:368)
at
coldfusion.filter.FunctionAccessFilter.invoke(FunctionAccessFilter.java:55)
at coldfusion.runtime.UDFMethod.runFilterChain(UDFMethod.java:321) at
coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:220) at
coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:655) at
coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:444) at
coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:414) at
coldfusion.runtime.CfJspPage._invoke(CfJspPage.java:2432) at
cfModelGlue2ecfm1882732952.runPage(/var/www/pukka/shared-prod2/ModelGlue/gesture/ModelGlue.cfm:98)
at coldfusion.runtime.CfJspPage.invoke(CfJspPage.java:244) at
coldfusion.tagext.lang.IncludeTag.doStartTag(IncludeTag.java:444) at
coldfusion.runtime.CfJspPage._emptyTcfTag(CfJspPage.java:2799) at cfind
ex2ecfm893482512.runPage(/var/www/pukka/main-prod2/em360/index.cfm:29)
at coldfusion.runtime.CfJspPage.invoke(CfJspPage.java:244) at
coldfusion.tagext.lang.IncludeTag.doStartTag(IncludeTag.java:444) at
coldfusion.filter.CfincludeFilter.invoke(CfincludeFilter.java:65) at
coldfusion.filter.IpFilter.invoke(IpFilter.java:64) at
coldfusion.filter.ApplicationFilter.invoke(ApplicationFilter.java:428)
at
coldfusion.filter.RequestMonitorFilter.invoke(RequestMonitorFilter.java:48)
at coldfusion.filter.MonitoringFilter.invoke(MonitoringFilter.java:40)
at coldfusion.filter.PathFilter.invoke(PathFilter.java:112) at
coldfusion.filter.ExceptionFilter.invoke(ExceptionFilter.java:94) at
coldfusion.filter.ClientScopePersistenceFilter.invoke(ClientScopePersistenceFilter.java:28)
at coldfusion.filter.BrowserFilter.invoke(BrowserFilter.java:38) at
coldfusion.filter.NoCacheFilter.invoke(NoCacheFilter.java:58) at
coldfusion.filter.GlobalsFilter.invoke(GlobalsFilter.java:38) at
coldfusion.filter.Datasource
Filter.invoke(DatasourceFilter.java:22) at
coldfusion.filter.CachingFilter.invoke(CachingFilter.java:62) at
coldfusion.CfmServlet.service(CfmServlet.java:219) at
coldfusion.bootstrap.BootstrapServlet.service(BootstrapServlet.java:89) at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at
coldfusion.monitor.event.MonitoringServletFilter.doFilter(MonitoringServletFilter.java:42)
at
coldfusion.bootstrap.BootstrapFilter.doFilter(BootstrapFilter.java:46)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at
com.intergral.fusionreactor.filter.FusionReactorCoreFilter.doHttpServletRequest(FusionReactorCoreFilter.java:503)
at
com.intergral.fusionreactor.filter.FusionReactorCoreFilter.doFusionRequest(FusionReacto
rCoreFilter.java:337) at
com.intergral.fusionreactor.filter.FusionReactorCoreFilter.doFilter(FusionReactorCoreFilter.java:246)
at
com.intergral.fusionreactor.filter.FusionReactorFilter.doFilter(FusionReactorFilter.java:121)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
at
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
at
org.apache.catalina.valves.CrawlerSessionManagerValve.invoke(CrawlerSessionManagerValve.java:180)
at org.apache.catalina.valves.AccessLogValve.invoke(A
ccessLogValve.java:928) at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:414)
at org.apache.coyote.ajp.AjpProcessor.process(AjpProcessor.java:204)
at
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:539)
at
org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:298)
at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
at java.lang.Thread.run(Thread.java:662)
|


Reply to this email directly or view it on GitHub
#7.