docs: protected void handleRequestOut(T message) throws Fault {
          String flowId = FlowIdHelper.getFlowId(message);
          if (flowId == null
                  && message.containsKey(PhaseInterceptorChain.PREVIOUS_MESSAGE)) {
              // Web Service consumer is acting as an intermediary
              @SuppressWarnings("unchecked")
              WeakReference<Message> wrPreviousMessage = (WeakReference<Message>) message
                      .get(PhaseInterceptorChain.PREVIOUS_MESSAGE);
              Message previousMessage = (Message) wrPreviousMessage.get();
              flowId = FlowIdHelper.getFlowId(previousMessage);
              if (flowId != null && LOG.isLoggable(Level.FINE)) {
                  LOG.fine("flowId '" + flowId + "' found in previous message");
              }
          }
  
          if (flowId == null) {
              // No flowId found. Generate one.
              flowId = ContextUtils.generateUUID();
              if (LOG.isLoggable(Level.FINE)) {
                  LOG.fine("Generate new flowId '" + flowId + "'");
              }
          }
  
          FlowIdHelper.setFlowId(message, flowId);
      }