tracker issue : CF-4147038

select a category, or use search below
(searches all categories and all time range)

websocket js invoke() function can invoke an older cached or deleted CFC

| View in Tracker

Status/Resolution/Reason: Closed/Fixed/

Reporter/Name(from Bugbase): Henry Ho / Henry Ho (Henry Ho)

Created: 04/29/2016

Components: Web Socket

Versions: 11.0

Failure Type:

Found In Build/Fixed In Build: CF11_Final /

Priority/Frequency: Major / All users will encounter

Locale/System: English / Win All

Vote Count: 0

Listed in the version 2016.0.03.300466 Issues Fixed doc
Problem Description:

Steps to Reproduce:

1, mysocket.invoke("mycfc", "f1"); 
2. delete or rename mycfc.cfc 
3. mysocket.invoke("mycfc", "f1"); 

Actual Result:

returns "Message returned from f1"
returns "Message returned from f1"

Expected Result:

returns "Message returned from f1"
error 4001

Any Workarounds:

restart coldfusion?

----------------------------- Additional Watson Details -----------------------------

Watson Bug ID:	4147038

External Customer Info:
External Company:  
External Customer Name: Henry Ho
External Customer Email:  
External Test Config: My Hardware and Environment details:



I think we need something like ORMRefresh() for refreshing cfc that websocket invokes?
Comment by External U.
2980 | April 29, 2016 06:03:37 PM GMT
fyi mycfc.cfc is from
Comment by External U.
2981 | April 29, 2016 06:08:41 PM GMT
"Clear template cache" works as a workaround
Comment by External U.
2982 | April 29, 2016 06:20:46 PM GMT
Hi, I tried to repro this issue but can't see it in my ColdFusion build. Can you please share your test case? Also, are you using WebSocket proxy, or internal websocket from ColdFusion? Also, is it showing the correct message if you refresh your browser or clear the cache?
Comment by Kailash B.
2983 | May 24, 2016 07:36:46 AM GMT
Hi, I don't know how much more I can share, I already posted the code to the cfc @ with the steps you need to follow. 1, mysocket.invoke("mycfc", "f1") (on browser) 2. delete or rename mycfc.cfc (on server) 3. mysocket.invoke("mycfc", "f1") ((on browser) No, I'm not using WebSocket proxy, just the internal one. It is showing me "Message returned from f1" even if I deleted the method in the CFC on invoke. I do not think browser and clearing cache should be required as this is a response to a websocket call. As I said in subsequent note, the only way to get it to work is "Clear template cache" in order to have CF returns error 4001 as expected.
Comment by External U.
2984 | May 24, 2016 02:00:33 PM GMT