Я использую CF 9.0.1 Developer и Coldbox 3.0.0 на моем локальном компьютере (64-битная Windows Vista с 32-битным CF9 на Apache). Я работаю над приложением, которое я получил из SVN и развернул локально. Кажется, все работает правильно, но мой журнал приложений заполняется такими записями:
Apr 18, 2011 12:41 PM Error jrpp-7
exception.log имеет очень длинную трассировку стека для каждого исключения, может быть, около 150 строк. Это начинается с этого:
"Error","jrpp-4","04/18/11","11:07:30",,""
java.lang.NullPointerException
at coldfusion.util.Utils.getServletPath(Utils.java:86)
at coldfusion.util.Utils.getServletPath(Utils.java:76)
at coldfusion.util.Utils.getBaseTemplatePath(Utils.java:405)
at coldfusion.runtime.TemplateProxyFactory.getTemplateFileHelper
(TemplateProxyFactory.java:1522)
at coldfusion.runtime.MetadataUtils.getComponentMetadata
(MetadataUtils.java:112)
at coldfusion.runtime.CfJspPage.GetComponentMetaData(CfJspPage.java:2667)
at coldfusion.runtime.TemplateProxy.getRuntimeComponentMetadata
(TemplateProxy.java:1756)
at coldfusion.runtime.TemplateProxy.getRuntimeMetadata
(TemplateProxy.java:1617)
at coldfusion.runtime.MetadataUtils.getMetaData(MetadataUtils.java:54)
at coldfusion.runtime.CfJspPage.GetMetaData(CfJspPage.java:2640)
at cfEventHandler2ecfc862260423$funcPOSTLOAD.runFunction
(C:\ColdFusion9\wwwroot\ybocv5\coldbox\system\orm\hibernate
\EventHandler.cfc:30)
Это версия приложения, которая работала в производственной среде, и что заставляет меня думать, что это только моя локальная версия, так это появление этого в трассировке стека:
at cfdump2ecfm471394032$funcRENDEROUTPUT.runFunction
(E:\cf9_updates_rc\cfusion\wwwroot\WEB-INF\cftags\dump.cfm:704)
...
at cfCollectionPanel2ecfm961210602.runPage
(C:\ColdFusion9\wwwroot\ybocv5\coldbox\system\includes
\panels\CollectionPanel.cfm:40)
Мы не используем cfdump в продакшене; похоже, что ColdBox пытается отобразить сложный объект на панели отладчика и терпит неудачу.
Единственное, что я нашел в Интернете, это this thread в группе transfer-dev Google ... кто-то, кто видел кучу похожих ошибок и подумал, может быть, это ошибка CF9. Единственный ответ, предлагавший какое-либо решение, был this, предлагая исправление, которое, похоже, зависит от передачи.
Кто-нибудь знает, что может вызывать эти ошибки? Для меня не так важно исправлять их, как это было бы в производственном приложении, но если я спамлю свои журналы с этими ошибками, мне будет трудно найти допустимые ошибки, когда они действительно возникают.
Обновление: я работал с шаблоном CollectionPanel.cfm, чтобы определить основную причину, и здесь постоянно возникает исключение:
<cfelseif isObject(varVal)>
<!--- this cfdump is the guilty party ... --->
<cfdump var="#varVal#" expand="false" top="2">
<cfelse>
Я пробовал обернуть cfdump
в try-catch, но исключение все равно генерируется, всегда из той же строки кода. Думаю, это имеет смысл, учитывая, что эти ошибки не оказывают видимого влияния на страницы, на которых они возникают.