Scary little CFFEED Bug

Two days ago I wrote a quick little blog entry on validating RSS feeds with ColdFusion and jQuery. At the end I pointed to a demo but mentioned that I hard to “hobble” it a bit and not allow you to dynamically check any feed. Today I’ll explain why.

Under certain systems (not all - amongst the folks I checked with only about half had this issue), if you use cffeed to request a URL that requires HTTP authentication, the request will never die. It won't kill ColdFusion (by itself), but the request will stay around until the server restarts. You can't even kill it with the Server Monitor. Here is an example of the code I used.

<cftry> <cffeed source="http://twitter.com/statuses/friends_timeline/154910849.rss" query="foo" timeout="10"> <cfdump var="#foo#"> <cfcatch> <cfdump var="#cfcatch#"> </cfcatch> </cftry>

Under some servers, you get a nice error. On some, you will even get a browser prompt for the login. But on a few of mine, it simply hung.

At this time I'm not aware of any workaround. You can, however, use CFHTTP to hit the URL first. It correctly sees the authentication prompt and returns a nice error. You could use CFHTTP to suck down the contents. Unfortunately, CFFEED still does not allow you to parse a generic string. You can use the virtual file system to write the contents out to RAM and than use CFFEED to point to it.

The good news is that I've already logged a bug report for this and it's already been fixed.

Raymond Camden's Picture

About Raymond Camden

Raymond is a developer advocate. He focuses on JavaScript, serverless and enterprise cat demos. If you like this article, please consider visiting my Amazon Wishlist or donating via PayPal to show your support. You can even buy me a coffee!

Lafayette, LA https://www.raymondcamden.com

Comments