code: private SSLHandshakeErrorTracker createSSLHandshakeErrorTracker(ChannelData inputData) {
          Map<Object, Object> bag = inputData.getPropertyBag();
          // Even though they are of type Boolean and Long in the metatype, they are
          // going to be a String in the property bag (not sure why though).
          boolean suppressHandshakeError = SSLChannelConstants.DEFAULT_HANDSHAKE_FAILURE;
          Object value = bag.get(SSLChannelProvider.SSL_CFG_SUPPRESS_HANDSHAKE_ERRORS);
          if (value != null) {
              suppressHandshakeError = convertBooleanValue(value);
          }
  
          long maxLogEntries = SSLChannelConstants.DEFAULT_HANDSHAKE_FAILURE_STOP_LOGGING;
          value = bag.get(SSLChannelProvider.SSL_CFG_SUPPRESS_HANDSHAKE_ERRORS_COUNT);
          if (value != null) {
              maxLogEntries = convertLongValue(value);
          }
          return new SSLHandshakeErrorTracker(!suppressHandshakeError, maxLogEntries);
      }
docs: Create an SSLHandshakeErrorTracker using the properties in the property
  bag. These properties may or may not be there if the channel is created
  programmatically, and as such this provides defaults which the map will
  be created with. These defaults should match the defaults from metatype.
  
  @param inputData