searchImplicitScopes Test Page
jvm arg -Dcoldfusion.searchimplicitscopes: is not set
applicationMetaData arg SEARCHIMPLICITSCOPES found and is set to NO
| getapplicationmetadata(), in /searchimplicitparamtest.cfm - struct |
| APPLICATIONROOT |
\\podimainst.file.core.windows.net\web\SOLR_PING\htdocs\
|
| APPLICATIONTIMEOUT |
3600
|
| AUTHCOOKIE |
| getapplicationmetadata(), in /searchimplicitparamtest.cfm - struct |
| DISABLEUPDATE |
YES
|
| TIMEOUT |
-1
|
|
| CLIENTMANAGEMENT |
NO
|
| CLIENTSTORAGE |
Cookie
|
| COMPILEEXTFORINCLUDE |
CFC,CFM,CFML,HTML,SQL,TXT
|
| CONFIGPATH |
\\podimainst.file.core.windows.net\web\SOLR_PING\htdocs\..\config\
|
| DEVDOMAINS |
localhost,127.0.0.1
|
| DEVMODE |
0
|
| ENABLENULLSUPPORT |
NO
|
| LOGINSTORAGE |
cookie
|
| MAPPINGS |
| getapplicationmetadata(), in /searchimplicitparamtest.cfm - struct |
| /PODI_SOLR_PING_PROD |
\\podimainst.file.core.windows.net\web\SOLR_PING\htdocs\org
|
|
| NAME |
PODI_SOLR_PING_PROD
|
| PASSARRAYBYREFERENCE |
NO
|
| SAMEFORMFIELDSASARRAY |
NO
|
| SCRIPTPROTECT |
| getapplicationmetadata(), in /searchimplicitparamtest.cfm - array
|
| 1 |
FORM |
| 2 |
URL |
| 3 |
CGI |
| 4 |
COOKIE |
|
| SEARCHIMPLICITSCOPES |
NO
|
| SECUREJSON |
NO
|
| SECUREJSONPREFIX |
//
|
| SERVERSIDEFORMVALIDATION |
YES
|
| SESSIONCOOKIE |
| getapplicationmetadata(), in /searchimplicitparamtest.cfm - struct |
| DISABLEUPDATE |
YES
|
| HTTPONLY |
YES
|
| SECURE |
NO
|
| TIMEOUT |
-60
|
|
| SESSIONMANAGEMENT |
YES
|
| SESSIONTIMEOUT |
1800
|
| SETCLIENTCOOKIES |
YES
|
| SETDOMAINCOOKIES |
NO
|
| SITEABBR |
PODI PING
|
| SITEACRONYM |
PODI_SOLR_PING
|
| SITENAME |
PODI PING and TEST MODULE
|
| STRICTNUMBERVALIDATION |
YES
|
| url - struct |
| URLONLY |
start
|
| includemetoo |
changed
|
| init |
true
|
| inurlonly |
changed
|
| url2local |
changed
|
| url2url |
changed
|
| variables - struct |
| INCLUDEME |
start
|
| INCLUDEMETOO |
start
|
| LOCALME |
start
|
| URL2LOCAL |
start
|
All default values for a param is start| PARAM TYPE | CALL | DEFAULT VAL | CURRENT VAL | ERRORS |
|---|
| URL PARAM NOT USED | #url.urlonly# | start | start | [empty string] |
| URL PARAM IN URL ONLY | #url.inurlonly# | | changed | [empty string] |
| URL PARAM WITH SCOPE | #url.url2url# | start | changed | [empty string] |
| URL PARAM WITHOUT SCOPE*** | #url2url# | start | Variable URL2URL is undefined. |
| er - struct |
| Detail |
[empty string]
|
| ErrNumber |
0
|
| Message |
Variable URL2URL is undefined.
|
| StackTrace |
coldfusion.runtime.UndefinedVariableException: Variable URL2URL is undefined.
at coldfusion.runtime.CfJspPage._get(CfJspPage.java:456)
at coldfusion.runtime.CfJspPage._get(CfJspPage.java:411)
at coldfusion.runtime.CfJspPage._get(CfJspPage.java:390)
at coldfusion.runtime.CfJspPage._autoscalarize(CfJspPage.java:2364)
at cfsearchImplicitParamTest2ecfm2123050804.runPage(\\podimainst.file.core.windows.net\web\SOLR_PING\htdocs\searchImplicitParamTest.cfm:108)
at coldfusion.runtime.CfJspPage.invoke(CfJspPage.java:251)
at coldfusion.tagext.lang.IncludeTag.handlePageInvoke(IncludeTag.java:749)
at coldfusion.tagext.lang.IncludeTag.doStartTag(IncludeTag.java:578)
at coldfusion.filter.CfincludeFilter.invoke(CfincludeFilter.java:65)
at coldfusion.filter.ApplicationFilter.invoke(ApplicationFilter.java:573)
at coldfusion.filter.RequestMonitorFilter.invoke(RequestMonitorFilter.java:43)
at coldfusion.filter.MonitoringFilter.invoke(MonitoringFilter.java:40)
at coldfusion.filter.PathFilter.invoke(PathFilter.java:162)
at coldfusion.filter.IpFilter.invoke(IpFilter.java:45)
at coldfusion.filter.ExceptionFilter.invoke(ExceptionFilter.java:97)
at coldfusion.filter.ClientScopePersistenceFilter.invoke(ClientScopePersistenceFilter.java:28)
at coldfusion.filter.BrowserFilter.invoke(BrowserFilter.java:38)
at coldfusion.filter.NoCacheFilter.invoke(NoCacheFilter.java:60)
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:231)
at coldfusion.bootstrap.BootstrapServlet.service(BootstrapServlet.java:311)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:199)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144)
at coldfusion.monitor.event.MonitoringServletFilter.doFilter(MonitoringServletFilter.java:46)
at coldfusion.bootstrap.BootstrapFilter.doFilter(BootstrapFilter.java:47)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144)
at coldfusion.inspect.weinre.MobileDeviceDomInspectionFilter.doFilter(MobileDeviceDomInspectionFilter.java:57)
at coldfusion.bootstrap.BootstrapFilter.doFilter(BootstrapFilter.java:47)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144)
at jdk.internal.reflect.GeneratedMethodAccessor119.invoke(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at com.intergral.fusionreactor.j2ee.filterchain.WrappedFilterChain.doFilter(WrappedFilterChain.java:134)
at com.intergral.fusionreactor.j2ee.filter.FusionReactorRequestHandler.doNext(FusionReactorRequestHandler.java:698)
at com.intergral.fusionreactor.j2ee.filter.FusionReactorRequestHandler.doHttpServletRequest(FusionReactorRequestHandler.java:256)
at com.intergral.fusionreactor.j2ee.filter.FusionReactorRequestHandler.doFusionRequest(FusionReactorRequestHandler.java:119)
at com.intergral.fusionreactor.j2ee.filter.FusionReactorRequestHandler.handle(FusionReactorRequestHandler.java:736)
at com.intergral.fusionreactor.j2ee.filter.FusionReactorCoreFilter.doFilter(FusionReactorCoreFilter.java:36)
at jdk.internal.reflect.GeneratedMethodAccessor118.invoke(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at com.intergral.fusionreactor.j2ee.filterchain.WrappedFilterChain.doFilter(WrappedFilterChain.java:71)
at jdk.internal.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at com.intergral.fusionreactor.agent.filter.FusionReactorStaticFilter.doFilter(FusionReactorStaticFilter.java:54)
at com.intergral.fusionreactor.agent.pointcuts.NewFilterChainPointCut$1.invoke(NewFilterChainPointCut.java:50)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:359)
at org.apache.coyote.ajp.AjpProcessor.service(AjpProcessor.java:447)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:935)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1826)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)
at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1189)
at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:658)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63)
at java.base/java.lang.Thread.run(Thread.java:833)
|
| Suppressed |
|
| TagContext |
| er - array
|
| 1 |
| er - struct |
| COLUMN |
0
|
| ID |
??
|
| LINE |
108
|
| RAW_TRACE |
at cfsearchImplicitParamTest2ecfm2123050804.runPage(\\podimainst.file.core.windows.net\web\SOLR_PING\htdocs\searchImplicitParamTest.cfm:108)
|
| TEMPLATE |
\\podimainst.file.core.windows.net\web\SOLR_PING\htdocs\searchImplicitParamTest.cfm
|
| TYPE |
CFML
|
|
|
| Type |
Expression
|
| name |
URL2URL
|
|
| URL TO LOCAL PARAM | #url2local# | start | start | [empty string] |
| LOCAL PARAM | #localme# | start | start | [empty string] |
| INCLUDE PARAM | #includeme# | start | changed | [empty string] |
| INCLUDE URL PARAM | #includemetoo# | start | start | [empty string] |
Test must account for 2 different ways that url params are used
* param is scoped to the url, but used without scope when called
* param is scoped locally, but then uses url to change value
When using a param that can be either form or url, general use was to not scope it, and let CF figure it out, but that will break
Solutions
* create form variable, and if found in url, set form to url, and scope rest of code to use 'form':
<cfparam name="form.myvar" default="" />
<cfif structKeyExists( url, "myvar")>
<cfset form[ "myvar" ] = url[ "myvar" ] />
</cfif>
* set param to form/url scope if found:
<cfparam name="myvar" default="#(( structKeyExists(form,"myvar"))? form.myvar : ((structKeyExists(url,"myvar") ) ? url.myvar : "" ) )#" />