private void traceDone(final T value) { _shallowTraceBuilder.setResultType(ResultType.SUCCESS); final Function<T, String> traceValueProvider = _traceValueProvider; if (traceValueProvider != null) { try { _shallowTraceBuilder.setValue(traceValueProvider.apply(value)); } catch (Exception e) { _shallowTraceBuilder.setValue(Exceptions.failureToString(e)); } } }
protected void traceFailure(final Throwable reason) { if (Exceptions.isEarlyFinish(reason)) { _shallowTraceBuilder.setResultType(ResultType.EARLY_FINISH); } else { _shallowTraceBuilder.setResultType(ResultType.ERROR); _shallowTraceBuilder.setValue(Exceptions.failureToString(reason)); } }
shallowBuilder.setValue(getTextField(traceNode, JsonTraceCodec.TRACE_VALUE));
public ShallowTraceBuilder(final ShallowTrace shallowTrace) { this(shallowTrace.getId()); setResultType(shallowTrace.getResultType()); setName(shallowTrace.getName()); setValue(shallowTrace.getValue()); setStartNanos(shallowTrace.getStartNanos()); setPendingNanos(shallowTrace.getPendingNanos()); setEndNanos(shallowTrace.getEndNanos()); setHidden(shallowTrace.getHidden()); setSystemHidden(shallowTrace.getSystemHidden()); Map<String, String> attributes = shallowTrace.getAttributes(); if (!attributes.isEmpty()) { _attributes = new HashMap<String, String>(); _attributes.putAll(attributes); } setTaskType(shallowTrace.getTaskType()); }
@Test public void testUninishedWithValue() { final ShallowTraceBuilder builder = new ShallowTraceBuilder(IdGenerator.getNextId()); builder.setName("test"); builder.setResultType(ResultType.UNFINISHED); builder.setValue("non-null-value"); try { builder.build(); fail("Expected IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected case } }
@Test public void testEarlyFinishWithValue() { final ShallowTraceBuilder builder = new ShallowTraceBuilder(IdGenerator.getNextId()); builder.setName("test"); builder.setResultType(ResultType.EARLY_FINISH); builder.setValue("non-null-value"); try { builder.build(); fail("Expected IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected case } }
@Test public void testReversibleSuccessfulTrace() throws IOException { final ShallowTraceBuilder test = new ShallowTraceBuilder(IdGenerator.getNextId()).setName("test").setResultType(ResultType.SUCCESS) .setValue("test value").setStartNanos(0L).setPendingNanos(50L).setEndNanos(100L); final Trace trace = Trace.single(test.build(), "test", 0L); assertReversible(trace); }
@Test public void testReversibleErrorTrace() throws IOException { // If we have started a task we also must set the end time final ShallowTraceBuilder test = new ShallowTraceBuilder(IdGenerator.getNextId()).setName("test").setResultType(ResultType.ERROR) .setValue("error value").setStartNanos(0L).setPendingNanos(50L).setEndNanos(100L); final Trace trace = Trace.single(test.build(), "test", 0L); assertReversible(trace); }
@Test public void testReversibleTraceWithChild() throws IOException { final ShallowTraceBuilder parent = new ShallowTraceBuilder(IdGenerator.getNextId()).setName("parent").setResultType(ResultType.SUCCESS) .setValue("parent value").setStartNanos(0L).setPendingNanos(100L).setEndNanos(200L); final ShallowTraceBuilder child = new ShallowTraceBuilder(IdGenerator.getNextId()).setName("child").setResultType(ResultType.SUCCESS) .setValue("child value").setStartNanos(50L).setPendingNanos(75L).setEndNanos(100L); final TraceBuilder builder = new TraceBuilder(1024, "test", 0L); builder.addRelationship(Relationship.PARENT_OF, parent, child); Trace trace = builder.build(); assertReversible(trace); }
@Test public void testReversibleWithHiddenTrace() throws IOException { final ShallowTraceBuilder test = new ShallowTraceBuilder(IdGenerator.getNextId()).setName("test").setResultType(ResultType.SUCCESS) .setValue("test value").setStartNanos(0L).setPendingNanos(50L).setHidden(true).setEndNanos(100L); final Trace trace = Trace.single(test.build(), "test", 0L); assertReversible(trace); }
@Test public void testReversibleTraceWithPredecessor() throws IOException { final ShallowTraceBuilder predecessor = new ShallowTraceBuilder(IdGenerator.getNextId()).setName("predecessor").setResultType(ResultType.SUCCESS) .setValue("predecessor value").setStartNanos(0L).setPendingNanos(100L).setEndNanos(200L); final ShallowTraceBuilder successor = new ShallowTraceBuilder(IdGenerator.getNextId()).setName("successor").setResultType(ResultType.SUCCESS) .setValue("successor value").setStartNanos(50L).setPendingNanos(75L).setEndNanos(100L); final TraceBuilder builder = new TraceBuilder(1024, "test", 0L); builder.addRelationship(Relationship.SUCCESSOR_OF, successor, predecessor); Trace trace = builder.build(); assertReversible(trace); }
@Test public void testCopyconstructor() { final ShallowTraceBuilder builder = new ShallowTraceBuilder(IdGenerator.getNextId()); builder.setName("test"); builder.setResultType(ResultType.SUCCESS); builder.setValue("value"); builder.setStartNanos(123L); builder.setPendingNanos(234L); builder.setEndNanos(345L); builder.addAttribute("test", "value"); final ShallowTraceBuilder copied = new ShallowTraceBuilder(builder.build()); assertEquals(builder.build(), copied.build()); }
@Test public void testReversibleTraceWithDiamond() throws IOException { final ShallowTraceBuilder source = new ShallowTraceBuilder(IdGenerator.getNextId()).setName("source").setResultType(ResultType.SUCCESS) .setValue("source value").setStartNanos(0L).setPendingNanos(25L).setEndNanos(50L); final ShallowTraceBuilder left = new ShallowTraceBuilder(IdGenerator.getNextId()).setName("left").setResultType(ResultType.SUCCESS) .setValue("left value").setStartNanos(50L).setPendingNanos(75L).setEndNanos(100L); final ShallowTraceBuilder right = new ShallowTraceBuilder(IdGenerator.getNextId()).setName("right").setResultType(ResultType.SUCCESS) .setValue("right value").setStartNanos(50L).setPendingNanos(75L).setEndNanos(100L); final ShallowTraceBuilder sink = new ShallowTraceBuilder(IdGenerator.getNextId()).setName("sink").setResultType(ResultType.SUCCESS) .setValue("sink value").setStartNanos(100L).setPendingNanos(125L).setEndNanos(150L); final TraceBuilder builder = new TraceBuilder(1024, "test", 0L); builder.addRelationship(Relationship.SUCCESSOR_OF, left, source); builder.addRelationship(Relationship.SUCCESSOR_OF, right, source); builder.addRelationship(Relationship.SUCCESSOR_OF, sink, left); builder.addRelationship(Relationship.SUCCESSOR_OF, sink, right); Trace trace = builder.build(); assertReversible(trace); }
builder.setName("test"); builder.setResultType(ResultType.SUCCESS); builder.setValue("value"); builder.setStartNanos(123L); builder.setPendingNanos(234L); builderCopy.setName("test"); builderCopy.setResultType(ResultType.SUCCESS); builderCopy.setValue("value"); builderCopy.setStartNanos(123L); builderCopy.setPendingNanos(234L); builderCopy.setName("no-test"); builderCopy.setResultType(ResultType.SUCCESS); builderCopy.setValue("value"); builderCopy.setStartNanos(123L); builderCopy.setPendingNanos(234L); builderCopy.setName("no-test"); builderCopy.setResultType(ResultType.SUCCESS); builderCopy.setValue("value"); builderCopy.setStartNanos(123L); builderCopy.setPendingNanos(234L);
private void traceDone(final T value) { _shallowTraceBuilder.setResultType(ResultType.SUCCESS); final Function<T, String> traceValueProvider = _traceValueProvider; if (traceValueProvider != null) { try { _shallowTraceBuilder.setValue(traceValueProvider.apply(value)); } catch (Exception e) { _shallowTraceBuilder.setValue(Exceptions.failureToString(e)); } } }
protected void traceFailure(final Throwable reason) { if (Exceptions.isEarlyFinish(reason)) { _shallowTraceBuilder.setResultType(ResultType.EARLY_FINISH); } else { _shallowTraceBuilder.setResultType(ResultType.ERROR); _shallowTraceBuilder.setValue(Exceptions.failureToString(reason)); } }
shallowBuilder.setValue(getTextField(traceNode, JsonTraceCodec.TRACE_VALUE));
public ShallowTraceBuilder(final ShallowTrace shallowTrace) { this(shallowTrace.getId()); setResultType(shallowTrace.getResultType()); setName(shallowTrace.getName()); setValue(shallowTrace.getValue()); setStartNanos(shallowTrace.getStartNanos()); setPendingNanos(shallowTrace.getPendingNanos()); setEndNanos(shallowTrace.getEndNanos()); setHidden(shallowTrace.getHidden()); setSystemHidden(shallowTrace.getSystemHidden()); Map<String, String> attributes = shallowTrace.getAttributes(); if (!attributes.isEmpty()) { _attributes = new HashMap<String, String>(); _attributes.putAll(attributes); } setTaskType(shallowTrace.getTaskType()); }