docs: protected void getAndRemoveIbmAlpnChoice(SSLEngine engine, SSLConnectionLink link) {
          if (this.isIbmAlpnActive()) {
              try {
                  // invoke ALPNJSSEExt.get(engine)
                  String[] alpnResult = (String[]) ibmAlpnGet.invoke(null, engine);
  
                  // invoke ALPNJSSEExt.delete(engine)
                  ibmAlpnDelete.invoke(null, engine);
  
                  if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) {
                      StringBuilder sb = new StringBuilder();
                      sb.append("getAndRemoveIbmAlpnChoice");
                      if (alpnResult != null && alpnResult.length > 0) {
                          sb.append(" results:");
                          for (String s : alpnResult) {
                              sb.append(" " + s);
                          }
                          sb.append(" " + engine);
                      } else {
                          sb.append(": ALPN not used for " + engine);
                      }
                      Tr.debug(tc, sb.toString());
                  }
  
                  if (alpnResult != null && alpnResult.length == 1 && h2.equals(alpnResult[0])) {
                      if (link.getAlpnProtocol() == null) {
                          link.setAlpnProtocol(h2);
                      }
                  }
              } catch (InvocationTargetException ie) {
                  if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) {
                      Tr.debug(tc, "getAndRemoveIbmAlpnChoice exception: " + ie.getTargetException());
                  }
              } catch (Exception e) {
  
                  if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) {
                      Tr.debug(tc, "getAndRemoveIbmAlpnChoice exception: " + e);
                  }
              }
          }
      }