code: @Override
      public void setID(String id){
          if (isFrozen()) {
              throw new UnsupportedOperationException("Attempt to modify a frozen OlsonTimeZone instance.");
          }
  
          // Before updating the ID, preserve the original ID's canonical ID.
          if (canonicalID == null) {
              canonicalID = getCanonicalID(getID());
              assert(canonicalID != null);
              if (canonicalID == null) {
                  // This should never happen...
                  canonicalID = getID();
              }
          }
  
          if (finalZone != null){
              finalZone.setID(id);
          }
          super.setID(id);
          transitionRulesInitialized = false;
      }
docs: /* (non-Javadoc)
  @see android.icu.util.TimeZone#setID(java.lang.String)