code: public final TimeZone getTimeZone(final String id) {
          Validate.notBlank(id, "Invalid TimeZone ID: [%s]", id);
  
          TimeZone timezone = timezones.get(id);
          if (timezone == null) {
              timezone = DEFAULT_TIMEZONES.get(id);
              if (timezone == null) {
                  // if timezone not found with identifier, try loading an alias..
                  final String alias = ALIASES.getProperty(id);
                  if (alias != null) {
                      return getTimeZone(alias);
                  } else {
                      synchronized (DEFAULT_TIMEZONES) {
                          // check again as it may be loaded now..
                          timezone = DEFAULT_TIMEZONES.get(id);
                          if (timezone == null) {
                              try {
                                  final VTimeZone vTimeZone = timeZoneLoader.loadVTimeZone(id);
                                  if (vTimeZone != null) {
                                      // XXX: temporary kludge..
                                      // ((TzId) vTimeZone.getProperties().getProperty(Property.TZID)).setValue(id);
                                      timezone = new TimeZone(vTimeZone);
                                      DEFAULT_TIMEZONES.put(timezone.getID(), timezone);
                                  } else if (CompatibilityHints.isHintEnabled(CompatibilityHints.KEY_RELAXED_PARSING)) {
                                      // strip global part of id and match on default tz..
                                      Matcher matcher = TZ_ID_SUFFIX.matcher(id);
                                      if (matcher.find()) {
                                          return getTimeZone(matcher.group());
                                      }
                                  }
                              } catch (IOException | ParserException | ParseException e) {
                                  Logger log = LoggerFactory.getLogger(TimeZoneRegistryImpl.class);
                                  log.warn("Error occurred loading VTimeZone", e);
                              }
                          }
                      }
                  }
              }
          }
          return timezone;
      }
docs: {@inheritDoc}