code: private String unescapeBackslash(String input) throws JMSException {
      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) SibTr.entry(this, tc, "unescapeBackslash", input);
      String result = input;
  
      // If there are no backslashes then don't bother creating the buffer etc.
      if (input.indexOf("\\") != -1) {
  
        int startValue = 0;
        StringBuffer tmp = new StringBuffer(input);
        while ((startValue = tmp.indexOf("\\", startValue)) != -1) {
          // check that the next character is also a \
          if (startValue + 1 < tmp.length() && tmp.charAt(startValue + 1) == '\\') {
            // remove the first slash
            tmp.deleteCharAt(startValue);
            // increment startValue so that the next indexOf begins after the second slash
            startValue++;
          }
          else {
            // we've found a single \, so throw an exception
            throw (JMSException) JmsErrorUtils.newThrowable(
              JMSException.class,
              "BAD_ESCAPE_CHAR_CWSIA0387",
              new Object[] { input },
              tc);
          }
        }
        result = tmp.toString();
      }
  
      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) SibTr.exit(this, tc, "unescapeBackslash",  result);
      return result;
    }
docs: Convert escaped backslash to single backslash.
  This method de-escapes double backslashes whilst at the same time
  checking that there are no single backslahes in the input string.
  
  @param input The string to be processed
  @return The modified String
  @throws JMSException if an unescaped backslash is found