code: private static DecimalFormatSymbols setSymbolAndCode(DecimalFormat numberFormat, String symbol, String code) {
          checkState(Thread.holdsLock(numberFormat));
          DecimalFormatSymbols fs = numberFormat.getDecimalFormatSymbols();
          DecimalFormatSymbols ante = (DecimalFormatSymbols)fs.clone();
          fs.setInternationalCurrencySymbol(code);
          fs.setCurrencySymbol(symbol);
          numberFormat.setDecimalFormatSymbols(fs);
          return ante;
      }
docs: Set the currency symbol and international code of the underlying {@link
  java.text.NumberFormat} object to the values of the last two arguments, respectively.
  This method is invoked in the process of parsing, not formatting.
  
  Only invoke this from code synchronized on value of the first argument, and don't
  forget to put the symbols back otherwise equals(), hashCode() and immutability will
  break.