In honor of Mark Drew's visit to the Philly CFUG last night, and Sean Corfield's announcement about the new Railo beta today, I've just posted a new version of ColdFire with a debugging template for Railo. This is a beta release. For more info on installation and what's supported in this release see my blog post on the RIAForge site.
Just a quick post to let folks know I've just uploaded a extension only update for ColdFire which fixes a stored procedure related issue with the DB Queries tab. Check out the RIAForge site for more info.
Here is a interesting bug I ran into today while using CF No Debug. If you use the <cftrace> tag with the _cf_nodebug parameter set to true, the tag will throw the following error:
Variable DEBUGGER is undefined.
In ColdFusion, the <cftrace> tag is implemented in CFML via the pre-complied WEB-INF/cftags/trace.cfm template. Now, this is simply a guess, but I bet that trace.cfm uses the IsDebugMode() function to determine if it should attempt to write trace info to the debugging query. Possibly something like the following:
<cfset factory = CreateObject("java","coldfusion.server.ServiceFactory")>
<cfset debugger = factory.getDebuggingService().getDebugger()>
<!--- add trace data to debugger --->
As I previously noted there is a bug with IsDebugMode() where it returns true when using _cf_nodebug = true, even though the debugging service is disabled. If something like the above code is used in trace.cfm, IsDebugMode() would return a false positive when _cf_nodebug is true and the ColdFusion ServiceFactory would return null for the debugger variable. When a null value is assigned to a ColdFusion variable it can lead to the undefined error we see in this case.
I've logged a bug with Adobe for this, but it is something to look out for if you use CF No Debug and start seeing "Variable DEBUGGER is undefined" errors.
I just uploaded a new version of ColdFire to RIAForge. This release is an extension only update so there is no need to update the server bits.
Here is a quick rundown of what is new/fixed:
- Total execution time is now shown on general tab.
- Users can choose to have the execution times tab show the totals at the top, using the new "Exec Time Totals on Top" option.
- Fixed issue where components with no methods would break variables output.
- Fixed user preferences (selected options) so that they are now persisted.
Also, one thing I noticed while working on this release is that the variables tab does not correctly display child components. If you have a component that extends another component, you will only see the methods defined on the child component and the display will not indicate that the component extends another component. I'll have to look into what can be done to fix this, but in the meantime it is something to be aware of if you depend on ColdFire to give you the API for a component.
As always, keep the bug reports and feature requests coming.