首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >cfdump中奇怪的UnsupportedOperationException java错误

cfdump中奇怪的UnsupportedOperationException java错误
EN

Stack Overflow用户
提问于 2014-01-08 17:05:48
回答 1查看 451关注 0票数 1

当我们记录错误时,我们喜欢收集一些关于应用程序状态的信息,以帮助我们诊断原因。在我们的错误日志代码中,我们有如下所示:

代码语言:javascript
复制
<cfset local.scopeList = "CGI,FORM,URL,APPLICATION,REQUEST,COOKIE,CLIENT" />    
<cfsavecontent variable="local.errorInfo">
  <cfloop list="#local.scopeList#" index="local.scope">
    <cfdump var="#Evaluate(local.scope)#" />
  </cfloop>
</cfsavecontent>

实际上还有更多的内容(我们在尝试转储local.scope之前检查是否定义了它,以及与我们的信息收集相关的其他事情,但这些都是基本的比特)。local.errorInfo是我们保存起来供以后查看的部分内容。

偶尔,我们会看到一个异常,TagContext显示错误发生在代码中的cfdump行上。有趣的是,在TagContext中,我们的代码是第三项。前两个文件位于\WEB\cftag\dump.cfm中,它们的RAW_TRACE信息类似于

at cfdump2ecfm1568701689._factor4({path on server}\WEB-INF\cftags\dump.cfm)

at cfdump2ecfm1568701689._factor1({path on server}\WEB-INF\cftags\dump.cfm)

异常结构中的实际消息项为空字符串,类型为java.lang.UnsupportedOperationException

奇怪的是,如果我们手动运行这个精确的代码,它就会清除问题,并且事情会持续一段时间,但是当它再次发生时,它将继续发生,直到我们再次手动运行代码来“踢”它。就像有些东西不稳定,除非我们帮忙,否则它是无法恢复的。

我们使用的是CF10和AFAIK,在第一次出现这种情况的时候,我们还没有升级CF或Java。

我的问题是是什么导致了这一切?(如果你能解释为什么我们的解决办法能暂时“修复”它,那就更好了。)

Edit这里有一些堆栈跟踪,从顶部开始:

coldfusion.thread.HttpServletRequestWrapper.getLocalPort(HttpServletRequestWrapper.java:446) at coldfusion.runtime.CgiScope.resolve(CgiScope.java:146) at coldfusion.runtime.CgiScope.resolveName(CgiScope.java:328) at coldfusion.runtime.Scope.get(Scope.java:60) coldfusion.runtime.DotResolver.resolve(DotResolver.java:45) at coldfusion.runtime.DotResolver.resolve(DotResolver.java:72) at coldfusion.runtime.DotResolver.resolve(DotResolver.java:88) at coldfusion.runtime.NeoPageContext.SymTab_resolveSplitName(NeoPageContext.java:1033) at coldfusion.runtime.NeoPageContext.SymTab_resolveDottedName(NeoPageContext.java:1011) at coldfusion.runtime.NeoPageContext.findAttribute(NeoPageContext.java:657) at coldfusion.runtime.NeoPageContext.findAttribute(NeoPageContext.java:630) at coldfusion.runtime.CFPage.IsDefined(CFPage.java:925) at cfdump2ecfm1568701689$funcDUMPSTRUCT.runFunction(E:\cf10_final\cfusion\wwwroot\WEB-INF\cftags\dump.cfm:1957) at coldfusion.runtime.UDFMethodcoldfusion.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:518) at coldfusion.runtime.CfJspPage._invokeUDF(CfJspPage.java:2624) at cfdump2ecfm1568701689$funcHANDLESTRUCT.runFunction(E:\cf10_final\在coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:472),coldfusion.filter.SilentFilter.invoke(SilentFilter.java:47),coldfusion.runtime.UDFMethod$ArgumentCollectionFilter.invoke(UDFMethod.java:368),coldfusion.filter.FunctionAccessFilter.invoke(FunctionAccessFilter.java:55),coldfusion.runtime.UDFMethod.runFilterChain(UDFMethod.java:321),coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:518),coldfusion.runtime.CfJspPage )cfdump2ecfm1568701689$funcRENDEROUTPUT.runFunction(E:\cf10_final\cfusion\wwwroot\WEB-INF\cftags\dump.cfm:693),coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:472),coldfusion.filter.SilentFilter.invoke(SilentFilter.java:47),coldfusion.runtime.UDFMethod$ArgumentCollectionFilter.invoke(UDFMethod.java:368),coldfusion.filter.FunctionAccessFilter.invoke(FunctionAccessFilter.java:55),coldfusion.runtime.UDFMethod.runFilterChain(UDFMethod.java:321)在coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:220) at coldfusion.runtime.CfJspPage._invokeUDF(CfJspPage.java:2659) at cfdump2ecfm1568701689._factor18(E:\cf10_final\cfusion\wwwroot\WEB-INF\cftags\dump.cfm:565) at .

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-01-08 18:23:50

我认为不应该以这种方式丢弃范围。打开你的弹弓,你就会没事的。

与变量不同,范围是一种不同的动物。我认为动态引用范围本身是不自然的,因此我并不奇怪Evaluate会被绊倒。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21002025

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档