Sadie noticed that the code which would append two datasets didn't handle the case where the two datasets are BufferDataSets but one is long (TT2000) and other other is double (cdfEpoch). The two datasets were of the same type.
The append method would properly append the two datasets using NIO, but then it assumed that timetags would be of the same type as well.
I did a quick fix of this last night but we saw this morning that this was incorrectly done.
I'm putting in validate on the inputs and outputs of append.
This demos where the FILL_VALUE property is lost during append:
https://github.com/autoplot/dev/blob/master/bugs/2021/20211110/demoBugFillAppend.jy
Special handling in append is discussed here: https://sourceforge.net/p/autoplot/bugs/825/
This is fixed. Also different fill values are handled as well, by using NaNs with float and double types, and WEIGHTS with other types.
We noticed what might be a new bug, where BufferDataSet.append ignores the offset into the NIO buffer when appending. See https://github.com/autoplot/dev/blob/master/bugs/2021/20211117/demoBugConcatBuffer.jy
Actually I believe this bug has been there for a while, at least before the production version v2021a_10.
the non-static append(ds) version appears to handle this properly.
See https://sourceforge.net/p/autoplot/bugs/2414/ where the NIO offset problem got its own ticket.
Also, when a dataset without timetags has a dataset with timetags appended to it, a runtime error occurs. This is now to be treated by dropping the second dataset's timetags. Note joinProperties should be commutative, and this is necessary anyway.