 |
Vijilante SubAdmin

Joined: 18 Nov 2001 Posts: 5182
|
Posted: Sat Jun 21, 2008 12:22 pm
[2.28] Lockup on invalid COM property |
Procedure
1. Launch CMud
2. Close Sessions Window (ESC)
3. Enter at the command line
Interestingly replacing step 3 with "a=%session;#SHOW @a.abc" properly displays the error box. |
|
_________________ The only good questions are the ones we have never answered before.
Search the Forums |
|
|
 |
Vijilante SubAdmin

Joined: 18 Nov 2001 Posts: 5182
|
Posted: Sun Jun 22, 2008 3:53 pm |
I am also seeing another lockup caused by COM usage. The particulars are that I make an invalid database query by using an invalid field name causing a lockup. The procedure is quite a bit longer, and I haven't quite found a way to shorten it. I will post it if you think it is needed. Query strings that are invalid in other ways cause an error box to display.
There is also another lockup I have found by using an invalid property name. As I stated above changing step 3 of my original procedure to use a variable does not cause a lock up. However it seems that if the name is very close to a valid method then a lockup does occur.
Procedure
1. Launch CMud
2. Close Sessions Window (ESC)
3. Enter at the command line
Code: |
a=%session;#SHOW @a.NumVar |
Note the proper method name is NumVars, the 's' was left off and this creates a lockup with a variable.
Edit: Fixed the statements about the unposted procedure to properly reflect the actual lockup. |
|
_________________ The only good questions are the ones we have never answered before.
Search the Forums |
|
|
 |
Zugg MASTER

Joined: 25 Sep 2000 Posts: 23379 Location: Colorado, USA
|
Posted: Mon Jun 23, 2008 4:57 pm |
Sounds like a typical problem of not being able to display any UI error message while in a background thread. Added to bug list.
|
|
|
 |
Zugg MASTER

Joined: 25 Sep 2000 Posts: 23379 Location: Colorado, USA
|
Posted: Tue Jun 24, 2008 9:36 pm |
Well, I couldn't reproduce the lockup directly here. But I investigated the source of the message that is supposed to be displayed (no such property) and confirmed that it was calling ShowMessage from the Execute routine. And sometimes Execute is called from another thread. In those cases, the ShowMessage would cause a lockup. So I have fixed this to use my standard error reporting system for the thread instead of calling ShowMessage directly. I also searched for other ShowMessage calls to make sure this was the only one violating my thread error reporting rules.
Should be fixed in 2.29 then, but let me know. |
|
|
 |
Tech GURU

Joined: 18 Oct 2000 Posts: 2733 Location: Atlanta, USA
|
Posted: Tue Jul 01, 2008 7:26 am |
Confirmed fixed. This now properly displays the error dialog.
|
|
_________________ Asati di tempari! |
|
|
 |
|
|