Skip to main content
May 27, 2016
Answered

The local variable application cannot be declared outside of a function.

  • May 27, 2016
  • 2 replies
  • 5293 views

I was receiving an ORA-936 on an application I support (Oracle 11g, CF 11, Windows Server 2012).  The database went down yesterday, for a reason unknown to me, and when it came up, I am now getting this error message.  The only pointer to the .cfm file is the referrer.  I don't see how to fix this one.  What information can I include that will help you help me?  It seems like the more I learn, something new always comes up.   Here's the error page that was displayed.  I have not changed any declarations, that I know of.   Thank you.

The local variable application cannot be declared outside of a function.

All variables defined with the var keyword must be declared inside a function.

Resources:

    Check the ColdFusion documentation to verify that you are using the correct syntax.

    Search the Knowledge Base to find a solution to your problem.

Browser       Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:46.0) Gecko/20100101 Firefox/46.0

Remote Address       108.44.188.221

Referrer       https://TestServer/secure/Requirement/requirementsum.cfm?frompage=orig&CFID=58847&CFTOKEN=1c45276fd65debf-7F25B5E6-AA99-1268-0B24AB3E54D73594

Date/Time       27-May-16 01:25 PM

Stack Trace

coldfusion.compiler.ASTvariableDefinition$InvalidVarDefinition: The local variable application cannot be declared outside of a function.

    at coldfusion.compiler.ASTvariableDefinition.register(ASTvariableDefinition.java:98)

    at coldfusion.compiler.SemanticAnalyzer.transform(SemanticAnalyzer.java:340)

    at coldfusion.compiler.Treewalker.postorder(Treewalker.java:100)

    at coldfusion.compiler.Treewalker.postorder(Treewalker.java:27)

    at coldfusion.compiler.Treewalker.postorder(Treewalker.java:27)

    at coldfusion.compiler.NeoTranslator.parseAndTransform(NeoTranslator.java:443)

    at coldfusion.compiler.NeoTranslator.translateJava(NeoTranslator.java:370)

    at coldfusion.compiler.NeoTranslator.translateJava(NeoTranslator.java:147)

    at coldfusion.runtime.TemplateClassLoader$TemplateCache$1.fetch(TemplateClassLoader.java:436)

    at coldfusion.util.LruCache.get(LruCache.java:180)

    at coldfusion.runtime.TemplateClassLoader$TemplateCache.fetchSerial(TemplateClassLoader.java:362)

    at coldfusion.util.AbstractCache.fetch(AbstractCache.java:58)

    at coldfusion.util.SoftCache.get_statsOff(SoftCache.java:133)

    at coldfusion.util.SoftCache.get(SoftCache.java:81)

    at coldfusion.runtime.TemplateClassLoader.findClass(TemplateClassLoader.java:609)

    at coldfusion.filter.PathFilter.invoke(PathFilter.java:101)

    at coldfusion.filter.ExceptionFilter.invoke(ExceptionFilter.java:94)

    at coldfusion.filter.BrowserDebugFilter.invoke(BrowserDebugFilter.java:79)

    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:303)

    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)

    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:241)

    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)

    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)

    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)

    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505)

    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)

    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)

    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:956)

    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)

    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:437)

    at org.apache.coyote.ajp.AjpProcessor.process(AjpProcessor.java:197)

    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:625)

    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316)

    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)

    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)

    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)

    at java.lang.Thread.run(Thread.java:722)

This topic has been closed for replies.
Correct answer

Most likely what is happening is that something is breaking within the onError() function, which ends the process before the closing </cffunction> tag is processed.  It might make things a bit confusing, but you could put a CFTRY/CFCATCH in there to email a CFDUMP of the CFCATCH and display a generic error message.  Just remember that all code must be placed after any CFARGUMENT tags.

HTH,

^_^


I had added end marks to all the <cfset tags in the Application.cfc (<cfset ..... />  and it cleared up.  Weird.

So that brings me to another question.  When do you do the end tag like that or use the </cfset> tag?

2 replies

Legend
June 8, 2016

"var application" is not the only possible "local" reference, "local.application" does the same.

Dave Ferguson
Participating Frequently
May 27, 2016

Look for a variable outside a function that has the var keyword in front of it.  It may be in an included file or custom tag that is being called by requirementsum.cfm if you don't find it in there.

HTH,

--Dave

June 2, 2016

I've gone through the CF code numerous times; both the requirementssum.cfm and another .cfm file it includes and don't see anything in CF like that.  However, there is a bunch of Java/Javascript embedded and it has numerous var assignments.

Is there a way I can narrow the error down?   If I didn't mention it earlier, I'm an Oracle DBA and had the CF stuff thrust upon me.   I'm sure it's much simpler than it seems.

June 16, 2016

Different topic. Start a new thread and you'll probably get quicker responses. Plus you might want to add more details as I don't think I could reliably diagnose from that little snippet.


But it was in response to my results from the cfcatch/cftry suggestion from WolfShade on 6/6.  Is that still a new topic?  Here's the full error received.

ErrorCode    2396

Message    [Macromedia][Oracle JDBC Driver][Oracle]ORA-02396: exceeded maximum idle time, please connect again

SQLState    HY000

StackTrace    java.sql.SQLException: [Macromedia][Oracle JDBC Driver][Oracle]ORA-02396: exceeded maximum idle time, please connect again at macromedia.jdbc.oraclebase.ddcr.b(Unknown Source) at macromedia.jdbc.oraclebase.ddcr.a(Unknown Source) at macromedia.jdbc.oraclebase.ddcq.b(Unknown Source) at macromedia.jdbc.oraclebase.ddcq.a(Unknown Source) at macromedia.jdbc.oracle.ddal.a(Unknown Source) at macromedia.jdbc.oracle.ddal.a(Unknown Source) at macromedia.jdbc.oracle.ddam.t(Unknown Source) at macromedia.jdbc.oraclebase.dde3.w(Unknown Source) at macromedia.jdbc.oraclebase.dde3.s(Unknown Source) at macromedia.jdbc.oraclebase.dde3.execute(Unknown Source) at coldfusion.server.j2ee.sql.JRunStatement.execute(JRunStatement.java:359) at coldfusion.sql.Executive.executeQuery(Executive.java:1451) at coldfusion.sql.Executive.executeQuery(Executive.java:1201) at coldfusion.sql.Executive.executeQuery(Executive.java:1131) at coldfusion.sql.SqlImpl.execute(SqlImpl.java:406) at coldfusion.tagext.sql.QueryTag.executeQuery(QueryTag.java:1059) at coldfusion.tagext.sql.QueryTag.doEndTag(QueryTag.java:688) at cfwedtFirst2ecfm1610912140.runPage(\\52tayz-ws-004v\Testdata\Sites\SAF\IE\WEDT\BMT_New\secure\wedtFirst.cfm:76) at coldfusion.runtime.CfJspPage.invoke(CfJspPage.java:244) at coldfusion.tagext.lang.IncludeTag.doStartTag(IncludeTag.java:446) at coldfusion.runtime.CfJspPage._emptyTcfTag(CfJspPage.java:2795) at cfApplication2ecfc158086648$funcONREQUEST.runFunction(\\52tayz-ws-004v\Testdata\Sites\SAF\IE\WEDT\BMT_New\secure\Application.cfc:32) at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:472) 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.AppEventInvoker.invoke(AppEventInvoker.java:108) at coldfusion.runtime.AppEventInvoker.onRequest(AppEventInvoker.java:300) at coldfusion.filter.ApplicationFilter.invoke(ApplicationFilter.java:426) 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.BrowserDebugFilter.invoke(BrowserDebugFilter.java:79) 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:303) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) 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:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:956) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:437) at org.apache.coyote.ajp.AjpProcessor.process(AjpProcessor.java:197) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:625) at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Thread.java:722)

Suppressed    array [empty]

TagContext    array

1    struct

COLUMN    0

ID    CFQUERY

LINE    76

RAW_TRACE    at cfwedtFirst2ecfm1610912140.runPage(\\Testdata\Sites\New\secure\wedtFirst.cfm:76)

TEMPLATE    \\Testdata\Sites\New\secure\wedtFirst.cfm

TYPE    CFML

2    struct

COLUMN    0

ID    CFINCLUDE

LINE    32

RAW_TRACE    at cfApplication2ecfc158086648$funcONREQUEST.runFunction(\\Testdata\Sites\New\secure\Application.cfc:32)

TEMPLATE    \\Testdata\Sites\New\secure\Application.cfc

TYPE    CFML

Type    java.sql.SQLException

SQLState    HY000

Sql    SELECT count(*) as count FROM admin_loginmessage WHERE messagegroup = 'Tool Administrator' AND trunc(sysdate) >= startdate AND trunc(sysdate) <= expirationdate

StackTrace    coldfusion.tagext.sql.QueryTag$DatabaseQueryException: Error Executing Database Query. at coldfusion.tagext.sql.QueryTag.doEndTag(QueryTag.java:739) at cfwedtFirst2ecfm1610912140.runPage(\\52tayz-ws-004v\Testdata\Sites\SAF\IE\WEDT\BMT_New\secure\wedtFirst.cfm:76) at coldfusion.runtime.CfJspPage.invoke(CfJspPage.java:244) at coldfusion.tagext.lang.IncludeTag.doStartTag(IncludeTag.java:446) at coldfusion.runtime.CfJspPage._emptyTcfTag(CfJspPage.java:2795) at cfApplication2ecfc158086648$funcONREQUEST.runFunction(\\52tayz-ws-004v\Testdata\Sites\SAF\IE\WEDT\BMT_New\secure\Application.cfc:32) at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:472) 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.AppEventInvoker.invoke(AppEventInvoker.java:108) at coldfusion.runtime.AppEventInvoker.onRequest(AppEventInvoker.java:300) at coldfusion.filter.ApplicationFilter.invoke(ApplicationFilter.java:426) 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.BrowserDebugFilter.invoke(BrowserDebugFilter.java:79) 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:303) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) 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:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:956) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:437) at org.apache.coyote.ajp.AjpProcessor.process(AjpProcessor.java:197) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:625) at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Thread.java:722) Caused by: java.sql.SQLException: [Macromedia][Oracle JDBC Driver][Oracle]ORA-02396: exceeded maximum idle time, please connect again at macromedia.jdbc.oraclebase.ddcr.b(Unknown Source) at macromedia.jdbc.oraclebase.ddcr.a(Unknown Source) at macromedia.jdbc.oraclebase.ddcq.b(Unknown Source) at macromedia.jdbc.oraclebase.ddcq.a(Unknown Source) at macromedia.jdbc.oracle.ddal.a(Unknown Source) at macromedia.jdbc.oracle.ddal.a(Unknown Source) at macromedia.jdbc.oracle.ddam.t(Unknown Source) at macromedia.jdbc.oraclebase.dde3.w(Unknown Source) at macromedia.jdbc.oraclebase.dde3.s(Unknown Source) at macromedia.jdbc.oraclebase.dde3.execute(Unknown Source) at coldfusion.server.j2ee.sql.JRunStatement.execute(JRunStatement.java:359) at coldfusion.sql.Executive.executeQuery(Executive.java:1451) at coldfusion.sql.Executive.executeQuery(Executive.java:1201) at coldfusion.sql.Executive.executeQuery(Executive.java:1131) at coldfusion.sql.SqlImpl.execute(SqlImpl.java:406) at coldfusion.tagext.sql.QueryTag.executeQuery(QueryTag.java:1059) at coldfusion.tagext.sql.QueryTag.doEndTag(QueryTag.java:688) ... 50 more

Suppressed    array [empty]

TagContext    array

1    struct

COLUMN    0

ID    CFQUERY

LINE    76

RAW_TRACE    at cfwedtFirst2ecfm1610912140.runPage(\\Testdata\Sites\New\secure\wedtFirst.cfm:76)

TEMPLATE    \\Testdata\Sites\New\secure\wedtFirst.cfm

TYPE    CFML

2    struct

COLUMN    0

ID    CFINCLUDE

LINE    32

RAW_TRACE    at cfApplication2ecfc158086648$funcONREQUEST.runFunction(\\Testdata\Sites\New\secure\Application.cfc:32)

TEMPLATE    \\Testdata\Sites\New\secure\Application.cfc

TYPE    CFML

Type    Database

queryError    [Macromedia][Oracle JDBC Driver][Oracle]ORA-02396: exceeded maximum idle time, please connect again

where    [empty string]