Issue 10698: The read_state of a cache object contains some typos (data-distribution-rtf) Source: PrismTech (Mr. Erik Hendriks, erik.hendriks(at)prismtech.com) Nature: Clarification Severity: Summary: If we look at the state diagram of the read_state of the cache object, we can see several typos. With typos we mean transitions that are impossible (when reading other parts of the spec). the specification states that the DLRL works with update rounds, after the start of an update round updates are processed and applied onto objects, this may lead to state changes. Once the update round end, this information is cleared again. This last statement is of important, because if at the end of an update round the 'modification info' is cleared, then the read_state would return to NOT_MODIFIED after the end of updates signal (assuming it was NEW or MODIFIED) or it would be garbage collected if the state was DELETED. But this means there is no state transition between the NEW and MODIFIED state, not between the MODIFIED and DELETED states. There is also no transition from NEW to DELETED. These three transitions should thus be removed. Another 'typo' is that one transition is missing, namely from the start point directly to the DELETED state. Because it might happen that the DLRL detects a new object which is already disposed, and this is not something that can be ignored! This situation happens when a sample is read which has the following states (on DCPS level) view_state = NEW, sample_state = NOT_READ, instance_state = NOT_ALIVE_DISPOSED. In this case the DLRL cannot give this sample the state NEW, as it is disposed this update round and thus should not be shown as new, as that an incorrect view on things, the only way to go is to show it as DELETED, since ignoring such information is not a choice the DLRL can make. So this transition must be added. These changes produce the following diagram: The things said for the read_state of a cache object can also be said for the read_state of a cacheaccess object. An additional item missing is that the read_state of a cache access object in read_write mode can also go from start to void and then to end, in case of a local creation and then destruction through a write. This was not correctly mentioned, this also means the read_state diagram is valid for any usage of the cache access, the accompying text must be changed for this as well. The read_state of the cache access object is thus basically the same as the cache object, except the void state and it's transitions are added and some transitions have different descriptions Resolution: Revised Text: Actions taken: February 12, 2007: received issue Discussion: End of Annotations:===== s is issue # 10698 The read_state of a cache object contains some typos If we look at the state diagram of the read_state of the cache object, we can see several typos. With typos we mean transitions that are impossible (when reading other parts of the spec). the specification states that the DLRL works with update rounds, after the start of an update round updates are processed and applied onto objects, this may lead to state changes. Once the update round end, this information is cleared again. This last statement is of important, because if at the end of an update round the 'modification info' is cleared, then the read_state would return to NOT_MODIFIED after the end of updates signal (assuming it was NEW or MODIFIED) or it would be garbage collected if the state was DELETED. But this means there is no state transition between the NEW and MODIFIED state, not between the MODIFIED and DELETED states. There is also no transition from NEW to DELETED. These three transitions should thus be removed. Another 'typo' is that one transition is missing, namely from the start point directly to the DELETED state. Because it might happen that the DLRL detects a new object which is already disposed, and this is not something that can be ignored! This situation happens when a sample is read which has the following states (on DCPS level) view_state = NEW, sample_state = NOT_READ, instance_state = NOT_ALIVE_DISPOSED. In this case the DLRL cannot give this sample the state NEW, as it is disposed this update round and thus should not be shown as new, as that an incorrect view on things, the only way to go is to show it as DELETED, since ignoring such information is not a choice the DLRL can make. So this transition must be added. These changes produce the following diagram: The things said for the read_state of a cache object can also be said for the read_state of a cacheaccess object. An additional item missing is that the read_state of a cache access object in read_write mode can also go from start to void and then to end, in case of a local creation and then destruction through a write. This was not correctly mentioned, this also means the read_state diagram is valid for any usage of the cache access, the accompying text must be changed for this as well. The read_state of the cache access object is thus basically the same as the cache object, except the void state and it's transitions are added and some transitions have different descriptions