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