W3C home > Mailing lists > Public > www-voice@w3.org > April to June 2012

Potential Bug in scxml Interpreter-Algorithm

From: Tim Langner <tim.langner@metralabs.com>
Date: Tue, 05 Jun 2012 13:36:05 +0200
Message-ID: <4FCDEF25.3090203@metralabs.com>
To: www-voice@w3.org
Hi,

I found a potential bug in the pseudo algorithm of the scxml interpreter.

In procedure 
addStatesToEnter(state,root,statesToEnter,statesForDefaultEntry)

there is a if clause for history states:

if historyValue[state.id]:
   for s in historyValue[state.id]:
     addStatesToEnter(s,statesToEnter,statesForDefaultEntry)
       for anc in getProperAncestors(s,state):
         statesToEnter.add(anc)

However calling getProperAncestors(s,state) for state where state is a 
history state will collect all ancestors up to the scxml root element 
because history states have no childs. This results in leaving and 
entering all parent states (up to the scxml root) when going back into a 
history state.
I propose to fix this by calling:
getProperAncestors(s,state.parent):


Best Regards,
Tim Langner

-- 
MetraLabs GmbH
Neue Technologien und Systeme

Dipl.-Inf. Tim Langner
Software-Engineering

E-mail:	Tim.Langner@MetraLabs.com
Phone:	+49 - 36 77 - 667 431 32
Fax: 	+49 - 36 77 - 667 431 99

Internet: http://www.MetraLabs.com
Address: Am Vogelherd 22, D-98693 Ilmenau
Trade register : Amtsgericht Jena, HRB 305694
Managing Director: Dr. Andreas Bley, Matthias Merten
European VAT ID: DE214004108

This e-mail including the attached documents are confidential and
may contain privileged information. The unauthorized use of such
information is illegal. If you are not the intended recipient,
please delete this Email and notify the sender. The content
of the e-mail and its attachments are protected by copyright law.
Received on Tuesday, 5 June 2012 14:23:45 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Tuesday, 5 June 2012 14:24:14 GMT