CFThread after join logs implicit error that is not fixable

Description

The Lucee debugging log reports Implicit Variable Access when I do cfthread["threadname"] after a join.

There is no such thing as thread.cfthread, so what are you expecting us to type so that UndefinedImpl.java is not triggered?

It seems like this is an inconsistency or bug with the implicit checker since I don't think I can "fix" this in CFML code alone.

It looks simple to fix by preventing this line from running UndefinedImpl.java below pc.getThreadScope:
if (debug) debugCascadedAccess(pc, "thread", key);

It is probably better performance to do it there then have a true top level scope everywhere.

I made a commit with my suggested solution.

Environment

None

Activity

Show:

Michael Offner 12 August 2019 at 17:45

we cannot do it that way, that would no longer log implicit thread access

Example:

thread name="mythread" { sleep(1000); } dump(mythread);

 

Pothys - MitrahSoft 29 November 2018 at 13:43

I've checked this ticket with your commit & After joining the threads, debugging logs doesn't show the cfthread under implicit variables. will confirm about this.

Bruce Kirkpatrick 21 November 2018 at 21:45

Sorry, I managed to do the change wrong several times. But I think you'll understand what I'm doing.
https://github.com/brucekirkpatrick/Lucee/commit/25d62a2efd0db2831ca3453b45d04e4bef36a776

Fixed

Details

Assignee

Reporter

Priority

Fix versions

New Issue warning screen

Before you create a new Issue, please post to the mailing list first https://dev.lucee.org

Once the issue has been verified, one of the Lucee team will ask you to file an issue

Sprint

Affects versions

Created 21 November 2018 at 20:52
Updated 8 May 2020 at 19:15
Resolved 13 August 2019 at 07:54

Flag notifications