fixes various NPE related to selection while reloading database

This commit is contained in:
2026-04-10 08:11:38 +02:00
parent e4ba753f82
commit 17015f1bbc
6 changed files with 19 additions and 8 deletions

View File

@@ -153,8 +153,11 @@ abstract class AbstractTxStream extends HierNode implements IWaveform {
switch(evt.getKind()) {
case END: //TODO: might throw NPE in concurrent execution
Long txId = txEvt.getTransaction().getId();
txEvt.setConcurrencyIndex(rowByTxId.get(txId));
rowByTxId.remove(txId);
Integer row = rowByTxId.get(txId);
if(row!=null) {
txEvt.setConcurrencyIndex(row);
rowByTxId.remove(txId);
}
break;
case SINGLE:
for (; rowIdx < rowEndTime.size() && rowEndTime.get(rowIdx)>tx.getBeginTime(); rowIdx++);

View File

@@ -238,6 +238,8 @@ public class FtrDbLoader implements IWaveformDbLoader {
genId = cborDecoder.readInt();
long startTime = cborDecoder.readInt()*time_scale_factor;
long endTime = cborDecoder.readInt()*time_scale_factor;
if(endTime<startTime) // fix buggy recording, end time needs to be later or equal start time
endTime=startTime;
TxGenerator gen = txGenerators.get(genId);
TxStream stream = gen.stream;
FtrTx scvTx = new FtrTx(txId, stream.getId(), genId, startTime, endTime, blockId, blockOffset);