diff --git a/doc/com.minres.scviewer.doc/pom.xml b/doc/com.minres.scviewer.doc/pom.xml
index 337b296..dd50ee7 100644
--- a/doc/com.minres.scviewer.doc/pom.xml
+++ b/doc/com.minres.scviewer.doc/pom.xml
@@ -7,7 +7,7 @@
com.minres.scviewer
com.minres.scviewer.parent
- 2.19.1
+ 2.19.3
../..
diff --git a/features/com.minres.scviewer.database.feature/pom.xml b/features/com.minres.scviewer.database.feature/pom.xml
index b6a2489..00e6d12 100644
--- a/features/com.minres.scviewer.database.feature/pom.xml
+++ b/features/com.minres.scviewer.database.feature/pom.xml
@@ -5,7 +5,7 @@
com.minres.scviewer
com.minres.scviewer.parent
- 2.19.1
+ 2.19.3
../..
3.0.0-SNAPSHOT
diff --git a/features/com.minres.scviewer.e4.feature/pom.xml b/features/com.minres.scviewer.e4.feature/pom.xml
index e1c0cf3..9b3bde9 100644
--- a/features/com.minres.scviewer.e4.feature/pom.xml
+++ b/features/com.minres.scviewer.e4.feature/pom.xml
@@ -5,7 +5,7 @@
com.minres.scviewer
com.minres.scviewer.parent
- 2.19.1
+ 2.19.3
../..
1.1.0-SNAPSHOT
diff --git a/features/com.minres.scviewer.e4.help.feature/pom.xml b/features/com.minres.scviewer.e4.help.feature/pom.xml
index 58a2925..4ed9256 100644
--- a/features/com.minres.scviewer.e4.help.feature/pom.xml
+++ b/features/com.minres.scviewer.e4.help.feature/pom.xml
@@ -5,7 +5,7 @@
com.minres.scviewer
com.minres.scviewer.parent
- 2.19.1
+ 2.19.3
../..
1.0.0-SNAPSHOT
diff --git a/features/com.minres.scviewer.e4.platform.feature/pom.xml b/features/com.minres.scviewer.e4.platform.feature/pom.xml
index d102ca8..b46989d 100644
--- a/features/com.minres.scviewer.e4.platform.feature/pom.xml
+++ b/features/com.minres.scviewer.e4.platform.feature/pom.xml
@@ -5,7 +5,7 @@
com.minres.scviewer
com.minres.scviewer.parent
- 2.19.1
+ 2.19.3
../..
1.0.0-SNAPSHOT
diff --git a/features/com.minres.scviewer.feature/pom.xml b/features/com.minres.scviewer.feature/pom.xml
index 53095cb..1c9cf6f 100644
--- a/features/com.minres.scviewer.feature/pom.xml
+++ b/features/com.minres.scviewer.feature/pom.xml
@@ -5,7 +5,7 @@
com.minres.scviewer
com.minres.scviewer.parent
- 2.19.1
+ 2.19.3
../..
1.1.0-SNAPSHOT
diff --git a/features/com.minres.scviewer.ui.feature/pom.xml b/features/com.minres.scviewer.ui.feature/pom.xml
index 191984b..fa22e91 100644
--- a/features/com.minres.scviewer.ui.feature/pom.xml
+++ b/features/com.minres.scviewer.ui.feature/pom.xml
@@ -5,7 +5,7 @@
com.minres.scviewer
com.minres.scviewer.parent
- 2.19.1
+ 2.19.3
../..
1.1.0-SNAPSHOT
diff --git a/plugins/com.minres.scviewer.database.fst/pom.xml b/plugins/com.minres.scviewer.database.fst/pom.xml
index 33fec8c..3dea1d9 100644
--- a/plugins/com.minres.scviewer.database.fst/pom.xml
+++ b/plugins/com.minres.scviewer.database.fst/pom.xml
@@ -6,7 +6,7 @@
com.minres.scviewer
com.minres.scviewer.parent
- 2.19.1
+ 2.19.3
../..
eclipse-plugin
diff --git a/plugins/com.minres.scviewer.database.ftr/META-INF/MANIFEST.MF b/plugins/com.minres.scviewer.database.ftr/META-INF/MANIFEST.MF
index 716ed8c..5a11904 100644
--- a/plugins/com.minres.scviewer.database.ftr/META-INF/MANIFEST.MF
+++ b/plugins/com.minres.scviewer.database.ftr/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: CBOR transaction database
Bundle-SymbolicName: com.minres.scviewer.database.ftr
-Bundle-Version: 1.0.1.qualifier
+Bundle-Version: 1.0.2.qualifier
Bundle-Vendor: MINRES Technologies GmbH
Bundle-RequiredExecutionEnvironment: JavaSE-11
Import-Package: org.osgi.framework;version="1.3.0",
diff --git a/plugins/com.minres.scviewer.database.ftr/pom.xml b/plugins/com.minres.scviewer.database.ftr/pom.xml
index 1166209..9ada3d8 100644
--- a/plugins/com.minres.scviewer.database.ftr/pom.xml
+++ b/plugins/com.minres.scviewer.database.ftr/pom.xml
@@ -2,11 +2,11 @@
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
4.0.0
com.minres.scviewer.database.ftr
- 1.0.1-SNAPSHOT
+ 1.0.2-SNAPSHOT
com.minres.scviewer
com.minres.scviewer.parent
- 2.19.1
+ 2.19.3
../..
eclipse-plugin
diff --git a/plugins/com.minres.scviewer.database.ftr/src/com/minres/scviewer/database/ftr/FtrDbLoader.java b/plugins/com.minres.scviewer.database.ftr/src/com/minres/scviewer/database/ftr/FtrDbLoader.java
index c65c702..2735152 100644
--- a/plugins/com.minres.scviewer.database.ftr/src/com/minres/scviewer/database/ftr/FtrDbLoader.java
+++ b/plugins/com.minres.scviewer.database.ftr/src/com/minres/scviewer/database/ftr/FtrDbLoader.java
@@ -297,10 +297,10 @@ public class FtrDbLoader implements IWaveformDbLoader {
case 6: // id/generator/start/end
long len = cborDecoder.readArrayLength();
assert(len==4);
- cborDecoder.readInt();
- cborDecoder.readInt();
- cborDecoder.readInt();
- cborDecoder.readInt();
+ cborDecoder.readInt(); //txid
+ cborDecoder.readInt(); // genId
+ cborDecoder.readInt(); // startTime
+ cborDecoder.readInt(); // endTime
break;
default: { // skip over 7:begin attr, 8:record attr, 9:end attr
long sz = cborDecoder.readArrayLength();
diff --git a/plugins/com.minres.scviewer.database.ftr/src/com/minres/scviewer/database/ftr/FtrTx.java b/plugins/com.minres.scviewer.database.ftr/src/com/minres/scviewer/database/ftr/FtrTx.java
index f7970ab..c227bd3 100644
--- a/plugins/com.minres.scviewer.database.ftr/src/com/minres/scviewer/database/ftr/FtrTx.java
+++ b/plugins/com.minres.scviewer.database.ftr/src/com/minres/scviewer/database/ftr/FtrTx.java
@@ -77,8 +77,8 @@ class FtrTx implements Serializable {
public List getAttributes(FtrDbLoader loader) {
if(attributes.size()==0)
try {
- TxStream stream = loader.txStreams.get(streamId);
- byte[] chunk = stream.getChunks().get((int)blockId);
+ final TxStream stream = loader.txStreams.get(streamId);
+ final byte[] chunk = stream.getChunks().get((int)blockId);
attributes.addAll(loader.parseAtrributes(chunk, blockOffset));
} catch (InputFormatException e) {
// TODO Auto-generated catch block
diff --git a/plugins/com.minres.scviewer.database.ftr/src/com/minres/scviewer/database/ftr/TxGenerator.java b/plugins/com.minres.scviewer.database.ftr/src/com/minres/scviewer/database/ftr/TxGenerator.java
index f755a92..209eb1f 100644
--- a/plugins/com.minres.scviewer.database.ftr/src/com/minres/scviewer/database/ftr/TxGenerator.java
+++ b/plugins/com.minres.scviewer.database.ftr/src/com/minres/scviewer/database/ftr/TxGenerator.java
@@ -70,7 +70,7 @@ class TxGenerator extends AbstractTxStream {
List chunks = stream.getChunks();
int blockid = 0;
for (byte[] bs : chunks) {
- loader.parseTx(stream, blockid, bs);
+ loader.parseTx(stream, blockid++, bs);
}
} catch (InputFormatException e) {
// TODO Auto-generated catch block
diff --git a/plugins/com.minres.scviewer.database.sqlite/pom.xml b/plugins/com.minres.scviewer.database.sqlite/pom.xml
index 8609dfd..78f596a 100644
--- a/plugins/com.minres.scviewer.database.sqlite/pom.xml
+++ b/plugins/com.minres.scviewer.database.sqlite/pom.xml
@@ -4,7 +4,7 @@
com.minres.scviewer
com.minres.scviewer.parent
- 2.19.1
+ 2.19.3
../..
eclipse-plugin
diff --git a/plugins/com.minres.scviewer.database.text/pom.xml b/plugins/com.minres.scviewer.database.text/pom.xml
index 9cbb16a..976ad9c 100644
--- a/plugins/com.minres.scviewer.database.text/pom.xml
+++ b/plugins/com.minres.scviewer.database.text/pom.xml
@@ -6,7 +6,7 @@
com.minres.scviewer
com.minres.scviewer.parent
- 2.19.1
+ 2.19.3
../..
eclipse-plugin
diff --git a/plugins/com.minres.scviewer.database.ui.swt/pom.xml b/plugins/com.minres.scviewer.database.ui.swt/pom.xml
index 2254faa..930b6b3 100644
--- a/plugins/com.minres.scviewer.database.ui.swt/pom.xml
+++ b/plugins/com.minres.scviewer.database.ui.swt/pom.xml
@@ -5,7 +5,7 @@
com.minres.scviewer
com.minres.scviewer.parent
- 2.19.1
+ 2.19.3
../..
4.0.0-SNAPSHOT
diff --git a/plugins/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/ui/swt/internal/ArrowPainter.java b/plugins/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/ui/swt/internal/ArrowPainter.java
index e7f4f27..990c9a2 100644
--- a/plugins/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/ui/swt/internal/ArrowPainter.java
+++ b/plugins/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/ui/swt/internal/ArrowPainter.java
@@ -84,7 +84,10 @@ public class ArrowPainter implements IPainter {
private int getConcurrencyIndex(ITx tx) {
IEvent[] eventList = tx.getStream().getEventsBeforeTime(tx.getBeginTime());
Optional res = Arrays.stream(eventList).map(e -> ((ITxEvent)e).getRowIndex()).findFirst();
- return res.isPresent()? res.get():0;
+ if(res.isPresent() && res.get()>0) {
+ return res.get();
+ } else
+ return 0;
}
protected boolean calculateGeometries() {
@@ -98,8 +101,10 @@ public class ArrowPainter implements IPainter {
return true;
}
int laneHeight = painter.getHeight() / tx.getStream().getRowCount();
+ int laneOffset = laneHeight * getConcurrencyIndex(tx);
+ int rulerHeight = waveCanvas.rulerHeight;
txRectangle = new Rectangle((int) (tx.getBeginTime() / scaleFactor),
- waveCanvas.rulerHeight + painter.getVerticalOffset() + laneHeight * getConcurrencyIndex(tx),
+ rulerHeight + painter.getVerticalOffset() + laneOffset,
(int) ((tx.getEndTime() - tx.getBeginTime()) / scaleFactor), laneHeight);
deriveGeom(tx.getIncomingRelations(), iRect, false);
deriveGeom(tx.getOutgoingRelations(), oRect, true);
@@ -114,12 +119,13 @@ public class ArrowPainter implements IPainter {
if (waveCanvas.wave2painterMap.containsKey(iWaveform)) {
IWaveformPainter painter = waveCanvas.wave2painterMap.get(iWaveform);
if(painter!=null) {
- int height = waveCanvas.styleProvider.getTrackHeight();
+ int laneHeight = waveCanvas.styleProvider.getTrackHeight();
+ int laneOffset = laneHeight * getConcurrencyIndex(tx);
Rectangle bb = new Rectangle(
(int) (otherTx.getBeginTime() / scaleFactor),
- waveCanvas.rulerHeight + painter.getVerticalOffset() + height * getConcurrencyIndex(otherTx),
+ waveCanvas.rulerHeight + painter.getVerticalOffset() + laneOffset,
(int) ((otherTx.getEndTime() - otherTx.getBeginTime()) / scaleFactor),
- height);
+ laneHeight);
res.add(new LinkEntry(bb, iTxRelation.getRelationType()));
}
}
diff --git a/plugins/com.minres.scviewer.database.vcd/pom.xml b/plugins/com.minres.scviewer.database.vcd/pom.xml
index 54d151b..bdc10e3 100644
--- a/plugins/com.minres.scviewer.database.vcd/pom.xml
+++ b/plugins/com.minres.scviewer.database.vcd/pom.xml
@@ -5,7 +5,7 @@
com.minres.scviewer
com.minres.scviewer.parent
- 2.19.1
+ 2.19.3
../..
eclipse-plugin
diff --git a/plugins/com.minres.scviewer.database/pom.xml b/plugins/com.minres.scviewer.database/pom.xml
index 685c136..db400c3 100644
--- a/plugins/com.minres.scviewer.database/pom.xml
+++ b/plugins/com.minres.scviewer.database/pom.xml
@@ -4,7 +4,7 @@
com.minres.scviewer
com.minres.scviewer.parent
- 2.19.1
+ 2.19.3
../..
eclipse-plugin
diff --git a/plugins/com.minres.scviewer.database/src/com/minres/scviewer/database/internal/WaveformDb.java b/plugins/com.minres.scviewer.database/src/com/minres/scviewer/database/internal/WaveformDb.java
index c7f30d2..e395b6a 100644
--- a/plugins/com.minres.scviewer.database/src/com/minres/scviewer/database/internal/WaveformDb.java
+++ b/plugins/com.minres.scviewer.database/src/com/minres/scviewer/database/internal/WaveformDb.java
@@ -15,10 +15,10 @@ import java.beans.PropertyChangeListener;
import java.io.File;
import java.util.ArrayList;
import java.util.Collections;
+import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
-import java.util.concurrent.ConcurrentHashMap;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -44,13 +44,13 @@ public class WaveformDb extends HierNode implements IWaveformDb, PropertyChangeL
private boolean loaded;
/** The relation types. */
- private List relationTypes;
+ private List relationTypes = new ArrayList<>();;
/** The waveforms. */
- private Map waveforms;
+ private Map waveforms = Collections.synchronizedMap(new HashMap<>()) ;;
/** The max time. */
- private long maxTime = -1;
+ private long maxTime = 0L;
private static final Logger LOG = LoggerFactory.getLogger(WaveformDb.class);
@@ -81,16 +81,6 @@ public class WaveformDb extends HierNode implements IWaveformDb, PropertyChangeL
return Collections.unmodifiableList(loaderFactories);
}
- /**
- * Instantiates a new waveform db.
- */
- public WaveformDb() {
- super();
- waveforms = new ConcurrentHashMap<>();
- relationTypes = new ArrayList<>();
- maxTime = 0L;
- }
-
/**
* Gets the max time.
*
diff --git a/plugins/com.minres.scviewer.e4.application.help/META-INF/MANIFEST.MF b/plugins/com.minres.scviewer.e4.application.help/META-INF/MANIFEST.MF
index 5583a45..5df291e 100644
--- a/plugins/com.minres.scviewer.e4.application.help/META-INF/MANIFEST.MF
+++ b/plugins/com.minres.scviewer.e4.application.help/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: SCViewer Help
Bundle-SymbolicName: com.minres.scviewer.e4.application.help;singleton:=true
-Bundle-Version: 2.19.1
+Bundle-Version: 2.19.3
Bundle-Vendor: MINRES Technologies GmbH
Automatic-Module-Name: com.minres.scviewer.e4.application.help
Bundle-RequiredExecutionEnvironment: JavaSE-11
diff --git a/plugins/com.minres.scviewer.e4.application.help/pom.xml b/plugins/com.minres.scviewer.e4.application.help/pom.xml
index 865e301..b7a0ff8 100644
--- a/plugins/com.minres.scviewer.e4.application.help/pom.xml
+++ b/plugins/com.minres.scviewer.e4.application.help/pom.xml
@@ -6,7 +6,7 @@
com.minres.scviewer
com.minres.scviewer.parent
- 2.19.1
+ 2.19.3
../..
eclipse-plugin
diff --git a/plugins/com.minres.scviewer.e4.application/META-INF/MANIFEST.MF b/plugins/com.minres.scviewer.e4.application/META-INF/MANIFEST.MF
index fbe509a..2fca5d6 100644
--- a/plugins/com.minres.scviewer.e4.application/META-INF/MANIFEST.MF
+++ b/plugins/com.minres.scviewer.e4.application/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: %Bundle-Name
Bundle-SymbolicName: com.minres.scviewer.e4.application;singleton:=true
-Bundle-Version: 2.19.1
+Bundle-Version: 2.19.3
Bundle-Vendor: %Bundle-Vendor
Require-Bundle: javax.inject;bundle-version="1.0.0",
org.eclipse.core.runtime;bundle-version="3.11.1",
diff --git a/plugins/com.minres.scviewer.e4.application/pom.xml b/plugins/com.minres.scviewer.e4.application/pom.xml
index 0b8f988..da6142f 100644
--- a/plugins/com.minres.scviewer.e4.application/pom.xml
+++ b/plugins/com.minres.scviewer.e4.application/pom.xml
@@ -6,7 +6,7 @@
com.minres.scviewer
com.minres.scviewer.parent
- 2.19.1
+ 2.19.3
../..
eclipse-plugin
diff --git a/plugins/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/parts/TransactionList.java b/plugins/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/parts/TransactionList.java
index 1bfa169..3461777 100644
--- a/plugins/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/parts/TransactionList.java
+++ b/plugins/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/parts/TransactionList.java
@@ -267,6 +267,7 @@ public class TransactionList extends Composite {
.map(e -> new AttributeNameBean(e.getKey(), e.getValue()))
.collect(Collectors.toList());
getDisplay().asyncExec(() -> {
+ if(tableViewer.getControl().isDisposed()) return;
tableViewer.setInput(txList);
attrNames.clear();
attrNames.addAll(newAttrNames);
diff --git a/plugins/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/parts/WaveformViewer.java b/plugins/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/parts/WaveformViewer.java
index a0e5489..7c6ee2c 100644
--- a/plugins/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/parts/WaveformViewer.java
+++ b/plugins/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/parts/WaveformViewer.java
@@ -828,7 +828,18 @@ public class WaveformViewer implements IFileChangeListener, IPreferenceChangeLis
if(Boolean.parseBoolean(state.get(SHOWN_WAVEFORM + i + WAVEFORM_SELECTED)))
selectedTrackEntries.add(trackEntry);
} else {
- IWaveform waveform = database.getStreamByName(state.get(SHOWN_WAVEFORM + i));
+ String name = state.get(SHOWN_WAVEFORM + i);
+ IWaveform waveform = database.getStreamByName(name);
+ if (waveform == null) {
+ int pos = name.lastIndexOf('.');
+ waveform = database.getStreamByName(name.substring(0, pos));
+ if(waveform!=null) {
+ List childs = waveform.getChildNodes();
+ waveform = (IWaveform) childs.stream().filter(node -> name.substring(pos+1).equals(node.getName()))
+ .findAny()
+ .orElse(null);
+ }
+ }
if (waveform != null) {
TrackEntry trackEntry = waveformPane.addWaveform(waveform, -1);
//check if t is selected
diff --git a/plugins/com.minres.scviewer.ui/pom.xml b/plugins/com.minres.scviewer.ui/pom.xml
index 77cc2b6..63d8c29 100644
--- a/plugins/com.minres.scviewer.ui/pom.xml
+++ b/plugins/com.minres.scviewer.ui/pom.xml
@@ -4,7 +4,7 @@
com.minres.scviewer
com.minres.scviewer.parent
- 2.19.1
+ 2.19.3
../..
eclipse-plugin
diff --git a/pom.xml b/pom.xml
index 6e23e8c..91a6a5c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -4,7 +4,7 @@
4.0.0
com.minres.scviewer
com.minres.scviewer.parent
- 2.19.1
+ 2.19.3
pom
releng/com.minres.scviewer.target
@@ -71,7 +71,7 @@
com.minres.scviewer
com.minres.scviewer.target
- 2.19.1
+ 2.19.3
diff --git a/products/com.minres.scviewer.e4.product/pom.xml b/products/com.minres.scviewer.e4.product/pom.xml
index 254371a..1f51560 100644
--- a/products/com.minres.scviewer.e4.product/pom.xml
+++ b/products/com.minres.scviewer.e4.product/pom.xml
@@ -6,11 +6,11 @@
com.minres.scviewer
com.minres.scviewer.parent
- 2.19.1
+ 2.19.3
../..
com.minres.scviewer.e4.product
- 2.19.1
+ 2.19.3
eclipse-repository
com.minres.scviewer
diff --git a/products/com.minres.scviewer.e4.product/scviewer.product b/products/com.minres.scviewer.e4.product/scviewer.product
index 7ce5205..ae00e15 100644
--- a/products/com.minres.scviewer.e4.product/scviewer.product
+++ b/products/com.minres.scviewer.e4.product/scviewer.product
@@ -1,7 +1,7 @@
-
+
diff --git a/releng/com.minres.scviewer.target/pom.xml b/releng/com.minres.scviewer.target/pom.xml
index a18529c..ea8174f 100644
--- a/releng/com.minres.scviewer.target/pom.xml
+++ b/releng/com.minres.scviewer.target/pom.xml
@@ -12,7 +12,7 @@
com.minres.scviewer
com.minres.scviewer.parent
- 2.19.1
+ 2.19.3
../..
diff --git a/releng/com.minres.scviewer.updateSite/pom.xml b/releng/com.minres.scviewer.updateSite/pom.xml
index f743142..4f084d8 100644
--- a/releng/com.minres.scviewer.updateSite/pom.xml
+++ b/releng/com.minres.scviewer.updateSite/pom.xml
@@ -7,7 +7,7 @@
com.minres.scviewer
com.minres.scviewer.parent
- 2.19.1
+ 2.19.3
../..
diff --git a/tests/com.minres.scviewer.database.test/pom.xml b/tests/com.minres.scviewer.database.test/pom.xml
index 6ef3963..f68afe6 100644
--- a/tests/com.minres.scviewer.database.test/pom.xml
+++ b/tests/com.minres.scviewer.database.test/pom.xml
@@ -6,7 +6,7 @@
com.minres.scviewer
com.minres.scviewer.parent
- 2.19.1
+ 2.19.3
../..
eclipse-test-plugin