docs: public DynamicVirtualHost getVirtualHost(String name, WebContainer parent) {
          if (name == null) {
              name = "default_host";
          }
  
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) {
              Tr.entry(tc, "getVirtualHost","name ->["+ name+ "] , parent ->["+ parent + "] ,this : " +this);
          }        
          DynamicVirtualHost vhost = null;
          boolean setpredefinedCtxRoots = false;
          synchronized(this){
              // Always return a virtual host: construct one if it is not present.
              vhost = hostMap.get(name);
              if (vhost == null && parent != null) {
                  DynamicVirtualHostConfiguration vhostCfg = new DynamicVirtualHostConfiguration(name);
                  vhost = new DynamicVirtualHost(vhostCfg, parent);
                  DynamicVirtualHost prev = hostMap.putIfAbsent(name, vhost);
                  // keep previous value if one beat us to the punch
                  if (prev != null)
                      vhost = prev;
  
                  if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) {
                      if (prev==null)
                          Tr.debug(tc, "add host to map " + vhost.hashCode() + ", this :" + this );
                      else Tr.debug( tc, "found host in map " + vhost.hashCode() + ", this : " + this);
                  }
  
                  // Check/set the virtual host config.. 
                  vhost.getHostConfiguration().setConfiguration(transportMap.get(name));
                  setpredefinedCtxRoots = true;              
              }
          }
          
          if (setpredefinedCtxRoots && pluginCfgVhostUris != null) {          
              Set<String> predefinedCtxRoots = pluginCfgVhostUris.get(name);
              vhost.setPredefinedContextRoots(predefinedCtxRoots);
              
              if (TraceComponent.isAnyTracingEnabled() && tc.isEventEnabled()) {
                  Tr.event(this, tc, "Virtual Host created " + name, vhost);
              }
          }
          
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) {
              Tr.exit(tc, "getVirtualHost", vhost);
          }
          return vhost;
      }