@Override protected long getRecordsTraceId(final AbstractTraceEvent record) { return record.getTraceId(); }
/** * {@inheritDoc} */ @Override public int hashCode() { int code = 0; code += ((int)this.getTimestamp()); code += ((int)this.getTraceId()); code += ((int)this.getOrderIndex()); return code; }
/** * {@inheritDoc} */ @Override public boolean equals(final Object obj) { if (obj == null) return false; if (obj == this) return true; if (obj.getClass() != this.getClass()) return false; final AbstractTraceEvent castedRecord = (AbstractTraceEvent) obj; if (this.getLoggingTimestamp() != castedRecord.getLoggingTimestamp()) return false; if (this.getTimestamp() != castedRecord.getTimestamp()) return false; if (this.getTraceId() != castedRecord.getTraceId()) return false; if (this.getOrderIndex() != castedRecord.getOrderIndex()) return false; return true; }
public void insertEvent(final AbstractTraceEvent event) { final long myTraceId = event.getTraceId(); if (this.repairEventBasedTracesEnabled) { if ((event instanceof CallOperationEvent) || (event instanceof ConstructionEvent)
return false; if (this.getTraceId() != castedRecord.getTraceId()) { return false;
public void insertEvent(final AbstractTraceEvent event) { final long myTraceId = event.getTraceId(); if (this.repairEventBasedTracesEnabled) { if ((event instanceof CallOperationEvent) || (event instanceof ConstructionEvent)
continue; // simply ignore wrong event if (event.getTraceId() != traceId) { this.logger.error("Found event with wrong traceId. Found: {} expected: {}", event.getTraceId(), traceId); continue; // simply ignore wrong event
final String classSignature = beforeEvent.getClassSignature(); final long timestamp = event.getTimestamp(); final long traceID = event.getTraceId(); final String classSignature = ((AfterOperationEvent) event).getClassSignature(); final long timestamp = event.getTimestamp(); final long traceID = event.getTraceId();
final String classSignature = beforeEvent.getClassSignature(); final long timestamp = event.getTimestamp(); final long traceID = event.getTraceId(); final String classSignature = ((AfterOperationEvent) event).getClassSignature(); final long timestamp = event.getTimestamp(); final long traceID = event.getTraceId();
loggingTimestamp = -1; } else if (record instanceof AbstractTraceEvent) { traceId = ((AbstractTraceEvent) record).getTraceId(); traceBuffer = this.traceId2trace.get(traceId); if (traceBuffer == null) { // first record for this id!
loggingTimestamp = -1; } else if (record instanceof AbstractTraceEvent) { traceId = ((AbstractTraceEvent) record).getTraceId(); traceBuffer = this.traceId2trace.get(traceId); if (traceBuffer == null) { // first record for this id!
continue; // simply ignore wrong event if (event.getTraceId() != traceId) { this.log.error("Found event with wrong traceId. Found: " + event.getTraceId() + " expected: " + traceId); continue; // simply ignore wrong event
/** * This method represents the input port for the invalid traces. * * @param invalidTrace * The next trace. */ @InputPort(name = INPUT_PORT_NAME_INVALID, eventTypes = { TraceEventRecords.class }, description = "Receives invalid event record traces") public void inputInvalidTrace(final TraceEventRecords invalidTrace) { if (this.logInvalidTraces) { this.logger.error("Invalid trace: {}", invalidTrace); } final TraceMetadata trace = invalidTrace.getTraceMetadata(); if (trace != null) { super.reportError(invalidTrace.getTraceMetadata().getTraceId()); } else { final AbstractTraceEvent[] events = invalidTrace.getTraceEvents(); if ((events != null) && (events.length > 0)) { super.reportError(events[0].getTraceId()); } else { super.reportError(TRACE_ID_IF_NONE); // we can't do any better } } } }
/** * This method represents the input port for the invalid traces. * * @param invalidTrace * The next trace. */ @InputPort(name = INPUT_PORT_NAME_INVALID, eventTypes = { TraceEventRecords.class }, description = "Receives invalid event record traces") public void inputInvalidTrace(final TraceEventRecords invalidTrace) { if (this.logInvalidTraces) { this.log.error("Invalid trace: " + invalidTrace); } final TraceMetadata trace = invalidTrace.getTraceMetadata(); if (trace != null) { super.reportError(invalidTrace.getTraceMetadata().getTraceId()); } else { final AbstractTraceEvent[] events = invalidTrace.getTraceEvents(); if ((events != null) && (events.length > 0)) { super.reportError(events[0].getTraceId()); } else { super.reportError(TRACE_ID_IF_NONE); // we can't do any better } } } }
/** * Given a TraceIdFilter that passes traceIds included in a set * <i>idsToPass</i>, assert that a {@link AbstractTraceEvent} object * <i>event</i> with traceId not element of <i>idsToPass</i> IS passed through * the filter. */ @Test public void testAssertPassTraceId() { final long firstTimestamp = 53222; // any number fits final long traceIdToPass = 11L; // (must be element of idsToPass) final SortedSet<Long> idsToPass = new TreeSet<>(); idsToPass.add(0 + traceIdToPass); idsToPass.add(1 + traceIdToPass); final TraceIdFilter traceidFilter = new TraceIdFilter(false, idsToPass.toArray(new Long[idsToPass.size()])); final AbstractTraceEvent[] traceEvents = BookstoreEventRecordFactory .validSyncTraceBeforeAfterEvents(firstTimestamp, traceIdToPass, TestTraceIdFilter.SESSION_ID, TestTraceIdFilter.HOSTNAME) .getTraceEvents(); for (final AbstractTraceEvent e : traceEvents) { Assert.assertTrue("Testcase invalid", idsToPass.contains(e.getTraceId())); } StageTester.test(traceidFilter).and() .send(traceEvents).to(traceidFilter.getMonitoringRecordsCombinedInputPort()).and() .start(); Assert.assertThat(traceidFilter.getMatchingTraceIdOutputPort(), StageTester.produces(traceEvents)); Assert.assertThat(traceidFilter.getMismatchingTraceIdOutputPort(), StageTester.producesNothing()); }
/** * Given a TraceIdFilter that passes traceIds included in a set * <i>idsToPass</i>, assert that a {@link AbstractTraceEvent} object * <i>event</i> with traceId not element of <i>idsToPass</i> is NOT passed * through the filter. */ @Test public void testAssertIgnoreTraceId() { final long firstTimestamp = 42353; // any number fits final long traceIdNotToPass = 11L; // (must NOT be element of idsToPass) final SortedSet<Long> idsToPass = new TreeSet<>(); idsToPass.add(1 + traceIdNotToPass); idsToPass.add(2 + traceIdNotToPass); final TraceIdFilter traceidFilter = new TraceIdFilter(false, idsToPass.toArray(new Long[idsToPass.size()])); final AbstractTraceEvent[] traceEvents = BookstoreEventRecordFactory .validSyncTraceBeforeAfterEvents(firstTimestamp, traceIdNotToPass, TestTraceIdFilter.SESSION_ID, TestTraceIdFilter.HOSTNAME) .getTraceEvents(); for (final AbstractTraceEvent e : traceEvents) { Assert.assertTrue("Testcase invalid", !idsToPass.contains(e.getTraceId())); } StageTester.test(traceidFilter).and() .send(traceEvents).to(traceidFilter.getMonitoringRecordsCombinedInputPort()).and() .start(); Assert.assertThat(traceidFilter.getMatchingTraceIdOutputPort(), StageTester.producesNothing()); Assert.assertThat(traceidFilter.getMismatchingTraceIdOutputPort(), StageTester.produces(traceEvents)); }
Assert.assertTrue("Testcase invalid", !idsToPass.contains(e.getTraceId())); reader.addObject(e); final long passedId = sinkPlugin.getList().get(0).getTraceId(); Assert.fail("Filter passed trace with ID " + passedId + " although traceId not element of " + idsToPass);
Assert.assertTrue("Testcase invalid", idsToPass.contains(e.getTraceId())); reader.addObject(e);