code: protected void processValues(Trace trace, Node node, Direction direction,
              Map<String, ?> headers, Object[] values) {
  
          if (node.interactionNode()) {
              Message m = null;
  
              if (direction == Direction.In) {
                  m = ((InteractionNode) node).getIn();
                  if (m == null) {
                      m = new Message();
                      ((InteractionNode) node).setIn(m);
                  }
              } else {
                  m = ((InteractionNode) node).getOut();
                  if (m == null) {
                      m = new Message();
                      ((InteractionNode) node).setOut(m);
                  }
              }
  
              if (headers != null && m.getHeaders().isEmpty()) {
                  // TODO: Need to have config to determine whether headers should be logged
                  for (Map.Entry<String, ?> stringEntry : headers.entrySet()) {
                      String value = getHeaderValueText(stringEntry.getValue());
  
                      if (value != null) {
                          m.getHeaders().put(stringEntry.getKey(), value);
                      }
                  }
              }
          }
  
          if (processorManager != null) {
              processorManager.process(trace, node, direction, headers, values);
          }
      }
docs: This method processes the values associated with the start or end of a scoped
  activity.
  
  @param trace The trace
  @param node The node
  @param direction The direction
  @param headers The optional headers
  @param values The values