/** * {@inheritDoc} */ @Override public int hashCode() { int code = 0; code += ((int)this.getTimestamp()); code += ((int)this.getTraceId()); code += ((int)this.getOrderIndex()); code += this.getOperationSignature().hashCode(); code += this.getClassSignature().hashCode(); return code; }
/** * {@inheritDoc} * * @deprecated since 1.13. Use {@link #serialize(IValueSerializer)} with an array serializer instead. */ @Override @Deprecated public Object[] toArray() { return new Object[] { this.getTimestamp(), this.getTraceId(), this.getOrderIndex(), this.getOperationSignature(), this.getClassSignature() }; } /**
/** * {@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 AfterOperationEvent castedRecord = (AfterOperationEvent) 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; if (!this.getOperationSignature().equals(castedRecord.getOperationSignature())) return false; if (!this.getClassSignature().equals(castedRecord.getClassSignature())) return false; return true; }
return false; if (this.getTimestamp() != castedRecord.getTimestamp()) { return false;
executionInformation.getEss(), beforeOperationEvent.getTimestamp(), afterOperationEvent.getTimestamp(), !(definiteCall || this.ignoreAssumedCalls), beforeOperationEvent instanceof BeforeConstructorEvent);
public void handleAfterOperationEventRecord(final AfterOperationEvent record) { final BeforeOperationEvent beforeEvent = this.stack.pop(); final long timestampDifference = record.getTimestamp() - beforeEvent.getTimestamp(); this.current.setDuration(Duration.of(timestampDifference, this.temporalUnit)); if (record instanceof AfterOperationFailedEvent) { final String failedCause = ((AfterOperationFailedEvent) record).getCause(); this.current.setFailed(true); this.current.setFailedCause(failedCause); } this.current = this.current.getParent(); // BETTER handle additional log checks // // if (TraceReconstructor.this.activateAdditionalLogChecks) { // if (!beforeEvent.getOperationSignature().equals(record.getOperationSignature())) { // TraceReconstructor.this.faultyTraceBuffers.add(this); // TraceReconstructor.this.traceBuffers.remove(this.traceID); // } // } // }
final AfterOperationEvent kiekerAfter = (AfterOperationEvent) kiekerRecord; buffer.put(AFTER_OPERATION_CLAZZ_ID); buffer.putLong(kiekerAfter.getTimestamp()); buffer.putLong(kiekerAfter.getTraceId()); buffer.putInt(kiekerAfter.getOrderIndex());
final AfterOperationEvent kiekerAfter = (AfterOperationEvent) kiekerRecord; buffer.put(AFTER_OPERATION_CLAZZ_ID); buffer.putLong(kiekerAfter.getTimestamp()); buffer.putLong(kiekerAfter.getTraceId()); buffer.putInt(kiekerAfter.getOrderIndex());
/** * {@inheritDoc} */ @Override public void serialize(final IValueSerializer serializer) throws BufferOverflowException { serializer.putLong(this.getTimestamp()); serializer.putLong(this.getTraceId()); serializer.putInt(this.getOrderIndex()); serializer.putString(this.getOperationSignature()); serializer.putString(this.getClassSignature()); }
/** * {@inheritDoc} */ @Override public void serialize(final IValueSerializer serializer) throws BufferOverflowException { //super.serialize(serializer); serializer.putLong(this.getTimestamp()); serializer.putLong(this.getTraceId()); serializer.putInt(this.getOrderIndex()); serializer.putString(this.getOperationSignature()); serializer.putString(this.getClassSignature()); } /**
@Test public void testRecordConstructionWithFactory() { final WriterListener receiver = new WriterListener(); final IWriterRegistry<String> writerRegistry = new WriterRegistry(receiver); final String recordClassName = AfterOperationEvent.class.getName(); final IRecordFactory<? extends IMonitoringRecord> recordFactory = this.cachedRecordFactories.get(recordClassName); Assert.assertEquals(AfterOperationEventFactory.class, recordFactory.getClass()); final String operationSignature = "isEmpty()"; final String classSignature = "java.util.List"; final int orderIndex = 333; final long traceId = 666; final long timestamp = 111; final AfterOperationEvent expectedEvent = new AfterOperationEvent(timestamp, traceId, orderIndex, classSignature, operationSignature); expectedEvent.serialize(BinaryValueSerializer.create(this.buffer, writerRegistry)); this.buffer.flip(); final IMonitoringRecord event = recordFactory.create(BinaryValueDeserializer.create(this.buffer, receiver.getReaderRegistry())); Assert.assertEquals(expectedEvent.getClass(), event.getClass()); final AfterOperationEvent castedEvent = (AfterOperationEvent) event; Assert.assertEquals(expectedEvent.getTimestamp(), castedEvent.getTimestamp()); Assert.assertEquals(expectedEvent.getTraceId(), castedEvent.getTraceId()); Assert.assertEquals(expectedEvent.getOrderIndex(), castedEvent.getOrderIndex()); Assert.assertEquals(expectedEvent.getClassSignature(), castedEvent.getClassSignature()); Assert.assertEquals(expectedEvent.getOperationSignature(), castedEvent.getOperationSignature()); }
/** * Tests the constructor and toArray(..) methods of {@link AfterOperationEvent}. * * Assert that a record instance event1 equals an instance event2 created by serializing event1 to an array event1Array * and using event1Array to construct event2. This ignores a set loggingTimestamp! */ @Test public void testSerializeDeserializeEquals() { final AfterOperationEvent event1 = new AfterOperationEvent(TSTAMP, TRACE_ID, ORDER_INDEX, FQ_OPERATION_SIGNATURE, FQ_CLASSNAME); Assert.assertEquals("Unexpected timestamp", TSTAMP, event1.getTimestamp()); Assert.assertEquals("Unexpected trace ID", TRACE_ID, event1.getTraceId()); Assert.assertEquals("Unexpected order index", ORDER_INDEX, event1.getOrderIndex()); Assert.assertEquals("Unexpected class name", FQ_CLASSNAME, event1.getClassSignature()); Assert.assertEquals("Unexpected operation signature", FQ_OPERATION_SIGNATURE, event1.getOperationSignature()); }
/** * Tests the constructor and writeBytes(..) methods of {@link AfterOperationEvent}. */ @Test public void testSerializeDeserializeBinaryEquals() { final AfterOperationEvent event1 = new AfterOperationEvent(TSTAMP, TRACE_ID, ORDER_INDEX, FQ_OPERATION_SIGNATURE, FQ_CLASSNAME); Assert.assertEquals("Unexpected timestamp", TSTAMP, event1.getTimestamp()); Assert.assertEquals("Unexpected trace ID", TRACE_ID, event1.getTraceId()); Assert.assertEquals("Unexpected order index", ORDER_INDEX, event1.getOrderIndex()); Assert.assertEquals("Unexpected class name", FQ_CLASSNAME, event1.getClassSignature()); Assert.assertEquals("Unexpected operation signature", FQ_OPERATION_SIGNATURE, event1.getOperationSignature()); final WriterListener receiver = new WriterListener(); final IWriterRegistry<String> stringRegistry = new WriterRegistry(receiver); final ByteBuffer buffer = ByteBuffer.allocate(event1.getSize()); event1.serialize(BinaryValueSerializer.create(buffer, stringRegistry)); buffer.flip(); final AfterOperationEvent event2 = new AfterOperationEvent(BinaryValueDeserializer.create(buffer, receiver.getReaderRegistry())); Assert.assertEquals(event1, event2); Assert.assertEquals(0, event1.compareTo(event2)); Assert.assertTrue(UtilityClass.refersToSameOperationAs(event1, event2)); }
final CustomAfterOperationEvent receivedRecord = (CustomAfterOperationEvent) eventFromLog; Assert.assertEquals("Unexpected set of records - sent record does not match received record", (sentRecord.getTimestamp() + ", " + sentRecord.getTraceId() + ", " + sentRecord.getOrderIndex()), (receivedRecord.getTimestamp() + ", " + receivedRecord.getTraceId() + ", " + receivedRecord.getOrderIndex()));