- 
    Bug 
- 
    Resolution: Done
- 
    P2: Important 
- 
    5.4.1
- 
    None
- 
    Any
- 
        e616bd2641b9cf6a18cabeae3f9c425f91bfc4b3
Consider this state machine:
    <parallel id="a">
        <history id="ha" type="deep"/>
        <parallel id="b">
            <parallel id="c">
                <parallel id="d">
                    <parallel id="e">
                        <state id="i" initial="i1">
                            <state id="i1">
                                <transition target="i2" event="t1"/>
                            </state>
                            <state id="i2">
                                <transition target="l" event="t2"/>
                            </state>
                        </state>
                        <state id="j"/>
                    </parallel>
                    <state id="h"/>
                </parallel>
                <state id="g"/>
            </parallel>
        </parallel>
        <state id="k"/>
    </parallel>
    <state id="l">
        <transition target="ha" event="t3"/>
    </state>
Then send it the events t1, t2, and t3. The following happens:
initial configuration: i1, j, h, g, k send event t1 next configuration: i2, j, h, g, k send event t2 next configuration: l send event t3 expected configuration: i2, j, h, g, k actual configuration: g, h, i1, i2, j, k
The history state will restore i2, then see that it has to activate compound state i and enters those too. The problem is that it then decides that it needs to activate the default sub state for the compound state, which results in a conflict: both i1 and i2 are active.
| For Gerrit Dashboard: QTBUG-44963 | ||||||
|---|---|---|---|---|---|---|
| # | Subject | Branch | Project | Status | CR | V | 
| 108642,5 | QStateMachine: fix history state restoration. | 5.5 | qt/qtbase | Status: MERGED | +2 | 0 |