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 ; }
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 .