
Type: Bug

Status: Resolved (View Workflow)

Priority: Blocker

Resolution: Fixed

Affects Version/s: master, 6.14/02, 6.14/04

Component/s: I/O

Labels:None

Environment:
CC7, devtoolset7, several versions of ROOT
In the attached example the read rule is not executed since ROOT version 6.14.02, this was still working in 6.14.00. The class Data contains an integer that should be stored, an transient integer, and a vector of a splitable class Sub. When reading a Data object, the transient variable should be calculated from the other integer, there is a corresponding read rule. The objects are stored in a TTree. For this test to be (non)working, it seems to be important that in addition to the integer values also the vector of a splitable class is filled. If Sub is not splitable, or if the corresponding vector is empty, the read rule is executed as expected. The read rule is also executed if splitting is entirely switched off.
To compile the test a simply make should be working. The expected output is
tree entry 0 contains 1 entries, the entry number times two is 0

tree entry 1 contains 2 entries, the entry number times two is 2

tree entry 2 contains 3 entries, the entry number times two is 4

tree entry 3 contains 4 entries, the entry number times two is 6

tree entry 4 contains 5 entries, the entry number times two is 8

tree entry 5 contains 6 entries, the entry number times two is 10

tree entry 6 contains 7 entries, the entry number times two is 12

tree entry 7 contains 8 entries, the entry number times two is 14

tree entry 8 contains 9 entries, the entry number times two is 16

tree entry 9 contains 10 entries, the entry number times two is 18

the output from ROOT 6.14.02 and later is
tree entry 0 contains 1 entries, the entry number times two is 0

tree entry 1 contains 2 entries, the entry number times two is 0

tree entry 2 contains 3 entries, the entry number times two is 0

tree entry 3 contains 4 entries, the entry number times two is 0

tree entry 4 contains 5 entries, the entry number times two is 0

tree entry 5 contains 6 entries, the entry number times two is 0

tree entry 6 contains 7 entries, the entry number times two is 0

tree entry 7 contains 8 entries, the entry number times two is 0

tree entry 8 contains 9 entries, the entry number times two is 0

tree entry 9 contains 10 entries, the entry number times two is 0
