@Override public BeforeOperationEvent create(final IValueDeserializer deserializer) { return new BeforeOperationEvent(deserializer); }
/** * {@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() }; } /**
public void addRecord(final BeforeOperationEvent record) { final String classSignature = record.getClassSignature(); final String operationSignature = record.getOperationSignature(); this.addRecord(classSignature, operationSignature); }
/** * Tests the constructor and writeBytes(..) methods of {@link BeforeOperationEvent}. */ @Test public void testSerializeDeserializeBinaryEquals() { final BeforeOperationEvent event1 = new BeforeOperationEvent(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 BeforeOperationEvent event2 = new BeforeOperationEvent(BinaryValueDeserializer.create(buffer, receiver.getReaderRegistry())); Assert.assertEquals(event1, event2); Assert.assertEquals(0, event1.compareTo(event2)); Assert.assertTrue(UtilityClass.refersToSameOperationAs(event1, event2)); } }
private boolean isPrevEventMatchingCall(final BeforeOperationEvent beforeOperationEvent, final AbstractTraceEvent prevEvent, final Class<? extends CallOperationEvent> callClass) { if ((prevEvent != null) && callClass.isAssignableFrom(prevEvent.getClass()) && (prevEvent.getOrderIndex() == (beforeOperationEvent.getOrderIndex() - 1))) { if (this.callsReferencedOperationOf((CallOperationEvent) prevEvent, beforeOperationEvent)) { return true; } else if (this.enhanceCallDetection) { // perhaps we don't find a perfect match, but can guess one! final boolean isConstructor = beforeOperationEvent instanceof BeforeConstructorEvent; final CallOperationEvent callEvent = (CallOperationEvent) prevEvent; final Signature callSignature = ClassOperationSignaturePair.splitOperationSignatureStr(callEvent.getCalleeOperationSignature(), isConstructor && this.enhanceJavaConstructors).getSignature(); final Signature afterSignature = ClassOperationSignaturePair.splitOperationSignatureStr(beforeOperationEvent.getOperationSignature(), isConstructor && this.enhanceJavaConstructors).getSignature(); if (callSignature.equals(afterSignature) && callEvent.getCalleeClassSignature().equals(beforeOperationEvent.getClassSignature())) { TraceEventRecords2ExecutionAndMessageTraceFilter.getLogger().debug("Guessed call of \n\t{}\n\t{}", callEvent, beforeOperationEvent); return true; } } } return false; }
beforeOperationEvent.getOperationSignature(), beforeOperationEvent.getClassSignature(), this.trace.getTraceId(), this.trace.getSessionId(), executionInformation.getEoi(), executionInformation.getEss(), beforeOperationEvent.getTimestamp(), afterOperationEvent.getTimestamp(), !(definiteCall || this.ignoreAssumedCalls),
originalEvent.getThreadId()); final BeforeOperationEvent newEvent = new BeforeOperationEvent(originalEvent.getTimestamp(), monitoredTrace.identifier, originalEvent.getOrderIndex(), originalEvent.getOperationSignature(), originalEvent.getClassSignature()); newEvent.setLoggingTimestamp(originalEvent.getLoggingTimestamp());
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); // } // } // }
public void handleBeforeOperationEventRecord(final BeforeOperationEvent event) { final long traceID = event.getTraceId(); final TraceReconstructionBuffer traceBuffer = this.traceBuffers.get(traceID); if (traceBuffer != null) { traceBuffer.handleBeforeOperationEventRecord(event); } else { this.danglingRecords++; } }
/** * Check if a previous event callee is the present operation. */ private boolean callsReferencedOperationOf(final CallOperationEvent prevEvent, final BeforeOperationEvent presentEvent) { return prevEvent.getCalleeOperationSignature().equals(presentEvent.getOperationSignature()) && prevEvent.getCalleeClassSignature().equals(presentEvent.getClassSignature()); }
private boolean isPrevEventMatchingCall(final BeforeOperationEvent beforeOperationEvent, final AbstractTraceEvent prevEvent, final Class<? extends CallOperationEvent> callClass) { if ((prevEvent != null) && callClass.isAssignableFrom(prevEvent.getClass()) && (prevEvent.getOrderIndex() == (beforeOperationEvent.getOrderIndex() - 1))) { if (this.callsReferencedOperationOf((CallOperationEvent) prevEvent, beforeOperationEvent)) { return true; } else if (this.enhanceCallDetection) { // perhaps we don't find a perfect match, but can guess one! final boolean isConstructor = beforeOperationEvent instanceof BeforeConstructorEvent; final CallOperationEvent callEvent = (CallOperationEvent) prevEvent; final Signature callSignature = ClassOperationSignaturePair.splitOperationSignatureStr(callEvent.getCalleeOperationSignature(), isConstructor && this.enhanceJavaConstructors).getSignature(); final Signature afterSignature = ClassOperationSignaturePair.splitOperationSignatureStr(beforeOperationEvent.getOperationSignature(), isConstructor && this.enhanceJavaConstructors).getSignature(); if (callSignature.equals(afterSignature) && callEvent.getCalleeClassSignature().equals(beforeOperationEvent.getClassSignature())) { if (TraceEventRecords2ExecutionAndMessageTraceFilter.getLOG().isDebugEnabled()) { TraceEventRecords2ExecutionAndMessageTraceFilter.getLOG().debug("Guessed call of \n\t" + callEvent + "\n\t" + beforeOperationEvent); } return true; } } } return false; }
beforeOperationEvent.getOperationSignature(), beforeOperationEvent.getClassSignature(), this.trace.getTraceId(), this.trace.getSessionId(), executionInformation.getEoi(), executionInformation.getEss(), beforeOperationEvent.getTimestamp(), afterOperationEvent.getTimestamp(), !(definiteCall || this.ignoreAssumedCalls),
originalEvent.getThreadId()); final BeforeOperationEvent newEvent = new BeforeOperationEvent(originalEvent.getTimestamp(), monitoredTrace.identifier, originalEvent.getOrderIndex(), originalEvent.getOperationSignature(), originalEvent.getClassSignature()); newEvent.setLoggingTimestamp(originalEvent.getLoggingTimestamp());
public void handleBeforeOperationEvent(final BeforeOperationEvent event) { this.hostnameRepository.inc(event.getTraceId()); this.addRecord(event); }
/** * {@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} */ @Override public void registerStrings(final IRegistry<String> stringRegistry) { // NOPMD (generated code) stringRegistry.get(this.getOperationSignature()); stringRegistry.get(this.getClassSignature()); } /**
@Override public BeforeOperationEvent create(final IValueDeserializer deserializer) throws RecordInstantiationException { return new BeforeOperationEvent(deserializer); }
/** * {@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 BeforeOperationEvent castedRecord = (BeforeOperationEvent) 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; }
/** * Check if a previous event callee is the present operation. */ private boolean callsReferencedOperationOf(final CallOperationEvent prevEvent, final BeforeOperationEvent presentEvent) { return prevEvent.getCalleeOperationSignature().equals(presentEvent.getOperationSignature()) && prevEvent.getCalleeClassSignature().equals(presentEvent.getClassSignature()); }
@Override @Deprecated public BeforeOperationEvent create(final Object[] values) { return new BeforeOperationEvent(values); }