docs: private String replaceSubForSpecials(String inString) 
    {
      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
        tc.entry(cclass,
                 "replaceSubForSpecials",
                 "inString: " + inString); 
      
      String outString = null;
      StringBuffer sb = null;
  
      // First deal with ampersands
      int posAmpersand = inString.indexOf("_$AMP$_");
      
      if(posAmpersand >=0)
      {
        // Need to do some work, the string has an attribute char
        sb = new StringBuffer(inString);
      }
  
      // Locate and replace the ampersand substitute
      while(posAmpersand >=0)
      {
        // Replace the "_$AMP$_" with an ampersand
        sb.replace(posAmpersand, posAmpersand + 7, "@");
        int start = posAmpersand + 1;
        posAmpersand = sb.indexOf("_$AMP$_", start);      
      }
  
      // Now deal with slashes
      int posSlash = inString.indexOf("_$SL$_");
      
      if(posSlash >=0 && sb == null)
      {
        // Need to do some work, the string has a slash char
        sb = new StringBuffer(inString);
      }
  
      // Locate and replace the slash substitute
      while(posSlash >=0)
      {
        // Replace the "_$SL$_" with a slash
        sb.replace(posSlash, posSlash + 6, "/");
        int start = posSlash + 1;
        posSlash = sb.indexOf("_$SL$_", start);      
      }    
  
      // Now deal with doubledots
      int posDD = inString.indexOf("_$DD$_");
      
      if(posDD >=0 && sb == null)
      {
        // Need to do some work, the string has a slash char
        sb = new StringBuffer(inString);
      }
  
      // Locate and replace the doubledot substitute
      while(posDD >=0)
      {
        // Replace the "_$DD$_" with a doubledot
        sb.replace(posDD, posDD + 6, "..");
        int start = posDD + 2;
        posDD = sb.indexOf("_$DD$_", start);      
      }        
  
      // Now deal with singledots
      int posSD = inString.indexOf("_$SD$_");
      
      if(posSD >=0 && sb == null)
      {
        // Need to do some work, the string has a slash char
        sb = new StringBuffer(inString);
      }
  
      // Locate and replace the singledot substitute
      while(posSD >=0)
      {
        // Replace the "_$SD$_" with a dot
        sb.replace(posSD, posSD + 6, ".");
        int start = posSD + 1;
        posSD = sb.indexOf("_$SD$_", start);      
      }            
      
      // We're finished
      if (sb != null)
      {
        outString = sb.toString();
      }
      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
        tc.exit(this,cclass, "replaceSubForSpecials", outString); 
      return outString;
    }