diff --git a/.settings/edu.umd.cs.findbugs.core.prefs b/.settings/edu.umd.cs.findbugs.core.prefs index b3b0f6f36bf67b3128adadb8610cbcc2987c090d..c2826c2959746e0619b56870a6f9e95a2f678349 100644 --- a/.settings/edu.umd.cs.findbugs.core.prefs +++ b/.settings/edu.umd.cs.findbugs.core.prefs @@ -1,5 +1,5 @@ #FindBugs User Preferences -#Wed Oct 22 13:18:41 CEST 2014 +#Thu Oct 23 07:49:05 CEST 2014 detector_threshold=3 effort=max excludefilter0=.fbExcludeFilterFile|true diff --git a/src/main/java/teetime/stage/io/DbReader.java b/src/main/java/teetime/stage/io/DbReader.java index d01fa8f0a53fc890078f4bdd018c3fef77c639b9..82f4a4e76dd6d21bd75fe5c52b6590eddfaba522 100644 --- a/src/main/java/teetime/stage/io/DbReader.java +++ b/src/main/java/teetime/stage/io/DbReader.java @@ -23,6 +23,7 @@ import java.sql.ResultSet; import java.sql.SQLException; import teetime.framework.ProducerStage; +import teetime.framework.signal.OnStartingException; import kieker.common.exception.MonitoringRecordException; import kieker.common.record.AbstractMonitoringRecord; @@ -56,11 +57,11 @@ public class DbReader extends ProducerStage<IMonitoringRecord> { private volatile boolean running = true; @Override - public void onStarting() { + public void onStarting() throws OnStartingException { try { Class.forName(this.driverClassname).newInstance(); } catch (final Exception ex) { // NOPMD NOCS (IllegalCatchCheck) - throw new RuntimeException("DB driver registration failed. Perhaps the driver jar is missing?", ex); + throw new OnStartingException("DB driver registration failed. Perhaps the driver jar is missing?", ex); } } diff --git a/src/main/java/teetime/stage/io/TCPReader.java b/src/main/java/teetime/stage/io/TCPReader.java index ee2d8d5b8f96b9fa009dbce20f623c1852e946a0..3d4931a217c30be4fd2873ad01ba0848ba95ec90 100644 --- a/src/main/java/teetime/stage/io/TCPReader.java +++ b/src/main/java/teetime/stage/io/TCPReader.java @@ -24,6 +24,7 @@ import java.nio.channels.ServerSocketChannel; import java.nio.channels.SocketChannel; import teetime.framework.ProducerStage; +import teetime.framework.signal.OnStartingException; import kieker.common.exception.MonitoringRecordException; import kieker.common.logging.Log; @@ -76,13 +77,13 @@ public class TCPReader extends ProducerStage<IMonitoringRecord> { } @Override - public void onStarting() { + public void onStarting() throws OnStartingException { + super.onStarting(); this.recordFactory = new RecordFactory(); this.register(); this.tcpStringReader = new TCPStringReader(this.port2, this.stringRegistry); this.tcpStringReader.start(); - super.onStarting(); } private void register() { diff --git a/src/main/java/teetime/stage/kieker/TCPReaderSink.java b/src/main/java/teetime/stage/kieker/TCPReaderSink.java index e3e0523aa85017b72da40e79c04708ef07c947d2..0c4e78a16e6fac369a1988585f6f6bfb3f75eb3f 100644 --- a/src/main/java/teetime/stage/kieker/TCPReaderSink.java +++ b/src/main/java/teetime/stage/kieker/TCPReaderSink.java @@ -27,6 +27,8 @@ import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicInteger; import teetime.framework.ProducerStage; +import teetime.framework.signal.OnStartingException; +import teetime.framework.signal.OnTerminatingException; import kieker.common.exception.MonitoringRecordException; import kieker.common.logging.Log; @@ -78,7 +80,7 @@ public class TCPReaderSink extends ProducerStage<IMonitoringRecord> { } @Override - public void onStarting() { + public void onStarting() throws OnStartingException { this.executorService.scheduleAtFixedRate(new Runnable() { @Override public void run() { @@ -149,8 +151,7 @@ public class TCPReaderSink extends ProducerStage<IMonitoringRecord> { } @Override - public void onTerminating() { - super.onTerminating(); + public void onTerminating() throws OnTerminatingException { this.executorService.shutdown(); this.tcpStringReader.interrupt(); super.onTerminating(); diff --git a/src/main/java/teetime/stage/kieker/fileToRecord/BinaryFile2RecordFilter.java b/src/main/java/teetime/stage/kieker/fileToRecord/BinaryFile2RecordFilter.java index c25ebe898c1f1fabe752f4a0c1e07283356a32b8..a6c917f468919c16fa74b52d82c2484cd780b53e 100644 --- a/src/main/java/teetime/stage/kieker/fileToRecord/BinaryFile2RecordFilter.java +++ b/src/main/java/teetime/stage/kieker/fileToRecord/BinaryFile2RecordFilter.java @@ -21,6 +21,7 @@ import java.io.IOException; import teetime.framework.ConsumerStage; import teetime.framework.OutputPort; +import teetime.framework.signal.OnStartingException; import teetime.stage.kieker.className.ClassNameRegistryRepository; import kieker.common.exception.MonitoringRecordException; @@ -29,7 +30,7 @@ import kieker.common.util.filesystem.BinaryCompressionMethod; /** * @author Christian Wulf - * + * * @since 1.10 */ public class BinaryFile2RecordFilter extends ConsumerStage<File> { @@ -58,9 +59,9 @@ public class BinaryFile2RecordFilter extends ConsumerStage<File> { } @Override - public void onStarting() { - this.recordFromBinaryFileCreator = new RecordFromBinaryFileCreator(this.logger, this.classNameRegistryRepository); + public void onStarting() throws OnStartingException { super.onStarting(); + this.recordFromBinaryFileCreator = new RecordFromBinaryFileCreator(this.logger, this.classNameRegistryRepository); } public ClassNameRegistryRepository getClassNameRegistryRepository() { diff --git a/src/main/java/teetime/stage/kieker/traceReconstruction/TraceReconstructionFilter.java b/src/main/java/teetime/stage/kieker/traceReconstruction/TraceReconstructionFilter.java index b9e1d973fedf6dbcaa68b46a6d734e55133632de..51d3752befc04a5c7e13e758ddbd72951a83aa65 100644 --- a/src/main/java/teetime/stage/kieker/traceReconstruction/TraceReconstructionFilter.java +++ b/src/main/java/teetime/stage/kieker/traceReconstruction/TraceReconstructionFilter.java @@ -19,6 +19,7 @@ import java.util.concurrent.TimeUnit; import teetime.framework.ConsumerStage; import teetime.framework.OutputPort; +import teetime.framework.signal.OnTerminatingException; import teetime.util.concurrent.hashmap.ConcurrentHashMapWithDefault; import teetime.util.concurrent.hashmap.TraceBuffer; @@ -94,8 +95,7 @@ public class TraceReconstructionFilter extends ConsumerStage<IFlowRecord> { } @Override - public void onTerminating() { - super.onTerminating(); + public void onTerminating() throws OnTerminatingException { for (Long traceId : this.traceId2trace.keySet()) { this.put(traceId, false); } diff --git a/src/main/java/teetime/stage/kieker/traceReduction/TraceReductionFilter.java b/src/main/java/teetime/stage/kieker/traceReduction/TraceReductionFilter.java index f9a282328367ae32c3396299a0571b6f1c231e86..874b3fd3cccc650bbc90d950393866cc2d942ca5 100644 --- a/src/main/java/teetime/stage/kieker/traceReduction/TraceReductionFilter.java +++ b/src/main/java/teetime/stage/kieker/traceReduction/TraceReductionFilter.java @@ -23,6 +23,7 @@ import java.util.Map.Entry; import teetime.framework.ConsumerStage; import teetime.framework.InputPort; import teetime.framework.OutputPort; +import teetime.framework.signal.OnTerminatingException; import kieker.analysis.plugin.filter.flow.TraceEventRecords; @@ -73,8 +74,7 @@ public class TraceReductionFilter extends ConsumerStage<TraceEventRecords> { } @Override - public void onTerminating() { - super.onTerminating(); + public void onTerminating() throws OnTerminatingException { synchronized (this.trace2buffer) { // BETTER hide and improve synchronization in the buffer for (final Entry<TraceEventRecords, TraceAggregationBuffer> entry : this.trace2buffer.entrySet()) { final TraceAggregationBuffer buffer = entry.getValue(); diff --git a/src/main/java/teetime/stage/stringBuffer/StringBufferFilter.java b/src/main/java/teetime/stage/stringBuffer/StringBufferFilter.java index 2cefc39dd013fb00c160ef34adb223a0439b8b97..8390619bf7a34ba8c1459ad60e23802d3406a1a2 100644 --- a/src/main/java/teetime/stage/stringBuffer/StringBufferFilter.java +++ b/src/main/java/teetime/stage/stringBuffer/StringBufferFilter.java @@ -20,12 +20,13 @@ import java.util.LinkedList; import teetime.framework.ConsumerStage; import teetime.framework.OutputPort; +import teetime.framework.signal.OnStartingException; import teetime.stage.stringBuffer.handler.AbstractDataTypeHandler; import teetime.stage.stringBuffer.util.KiekerHashMap; /** * @author Christian Wulf - * + * * @since 1.10 */ public class StringBufferFilter<T> extends ConsumerStage<T> { @@ -44,7 +45,7 @@ public class StringBufferFilter<T> extends ConsumerStage<T> { } @Override - public void onStarting() { + public void onStarting() throws OnStartingException { for (final AbstractDataTypeHandler<?> handler : this.dataTypeHandlers) { handler.setLogger(this.logger); handler.setStringRepository(this.kiekerHashMap);