@Test public void shouldLowerSixBytesWithTruncation() { long startTime = 123456123456789123L; String lowerSixBytes = Transaction.lowerSixBytesHex(startTime); assertThat(lowerSixBytes).isEqualTo("9ab0affd1a83"); }
@VisibleForTesting static String lowerSixBytesHex(long startTime) { long mask = 1L << 48; return Long.toHexString(mask | (startTime & (mask - 1))).substring(1); }
Transaction { @VisibleForTesting static String lowerSixBytesHex(long startTime) { long mask = 1L << 48; return Long.toHexString(mask | (startTime & (mask - 1))).substring(1); } }
Transaction { @VisibleForTesting static String lowerSixBytesHex(long startTime) { long mask = 1L << 48; return Long.toHexString(mask | (startTime & (mask - 1))).substring(1); } Transaction(long startTime, long startTick, String transactionType, String transactionName,
            MessageSupplier messageSupplier, TimerName timerName, boolean captureThreadStats,
            int maxTraceEntries, int maxQueryAggregates, int maxServiceCallAggregates,
            int maxProfileSamples, @Nullable ThreadAllocatedBytes threadAllocatedBytes,
            CompletionCallback completionCallback, Ticker ticker,
            TransactionRegistry transactionRegistry, TransactionService transactionService,
            ConfigService configService, UserProfileScheduler userProfileScheduler,
            ThreadContextThreadLocal.Holder threadContextHolder); }
Transaction { @VisibleForTesting static String lowerSixBytesHex(long startTime) { long mask = 1L << 48; return Long.toHexString(mask | (startTime & (mask - 1))).substring(1); } Transaction(long startTime, long startTick, String transactionType, String transactionName,
            MessageSupplier messageSupplier, TimerName timerName, boolean captureThreadStats,
            int maxTraceEntries, int maxQueryAggregates, int maxServiceCallAggregates,
            int maxProfileSamples, @Nullable ThreadAllocatedBytes threadAllocatedBytes,
            CompletionCallback completionCallback, Ticker ticker,
            TransactionRegistry transactionRegistry, TransactionService transactionService,
            ConfigService configService, UserProfileScheduler userProfileScheduler,
            ThreadContextThreadLocal.Holder threadContextHolder); String getTraceId(); long getStartTick(); boolean isCompleted(); long getDurationNanos(); String getTransactionType(); String getTransactionName(); String getHeadline(); String getUser(); SetMultimap<String, String> getAttributes(); @Nullable ErrorMessage getErrorMessage(); long getTotalCpuNanos(); List<Aggregate.Query> getQueries(); List<String> getSharedQueryTexts(); void visitEntries(long captureTick, EntryVisitor entryVisitor); @Nullable Profile getMainThreadProfileProtobuf(); @Nullable Profile getAuxThreadProfileProtobuf(); @Nullable Cancellable getImmedateTraceStoreRunnable(); boolean isPartiallyStored(); ThreadContextImpl getMainThreadContext(); List<ThreadContextImpl> getActiveAuxThreadContexts(); void setImmediateTraceStoreRunnable(Cancellable immedateTraceStoreRunnable); }
Transaction { @VisibleForTesting static String lowerSixBytesHex(long startTime) { long mask = 1L << 48; return Long.toHexString(mask | (startTime & (mask - 1))).substring(1); } Transaction(long startTime, long startTick, String transactionType, String transactionName,
            MessageSupplier messageSupplier, TimerName timerName, boolean captureThreadStats,
            int maxTraceEntries, int maxQueryAggregates, int maxServiceCallAggregates,
            int maxProfileSamples, @Nullable ThreadAllocatedBytes threadAllocatedBytes,
            CompletionCallback completionCallback, Ticker ticker,
            TransactionRegistry transactionRegistry, TransactionService transactionService,
            ConfigService configService, UserProfileScheduler userProfileScheduler,
            ThreadContextThreadLocal.Holder threadContextHolder); String getTraceId(); long getStartTick(); boolean isCompleted(); long getDurationNanos(); String getTransactionType(); String getTransactionName(); String getHeadline(); String getUser(); SetMultimap<String, String> getAttributes(); @Nullable ErrorMessage getErrorMessage(); long getTotalCpuNanos(); List<Aggregate.Query> getQueries(); List<String> getSharedQueryTexts(); void visitEntries(long captureTick, EntryVisitor entryVisitor); @Nullable Profile getMainThreadProfileProtobuf(); @Nullable Profile getAuxThreadProfileProtobuf(); @Nullable Cancellable getImmedateTraceStoreRunnable(); boolean isPartiallyStored(); ThreadContextImpl getMainThreadContext(); List<ThreadContextImpl> getActiveAuxThreadContexts(); void setImmediateTraceStoreRunnable(Cancellable immedateTraceStoreRunnable);  }