code: ContextRuntime spawnChildContext(
        final Configuration contextConfiguration,
        final Configuration serviceConfiguration) throws ContextClientCodeException {
  
      synchronized (this.contextLifeCycle) {
  
        if (this.task.isPresent()) {
          throw new IllegalStateException(
              "Attempting to spawn a child context when a Task with id '" +
                  this.task.get().getId() + "' is running.");
        }
  
        if (this.childContext.isPresent()) {
          throw new IllegalStateException(
              "Attempting to instantiate a child context on a context that is not the topmost active context");
        }
  
        try {
  
          final Injector childServiceInjector =
              this.serviceInjector.forkInjector(serviceConfiguration);
  
          final ContextRuntime newChildContext =
              new ContextRuntime(childServiceInjector, contextConfiguration, Optional.of(this));
  
          this.childContext = Optional.of(newChildContext);
          return newChildContext;
  
        } catch (final BindException e) {
  
          final Optional<String> parentID = this.getParentContext().isPresent() ?
              Optional.of(this.getParentContext().get().getIdentifier()) :
              Optional.<String>empty();
  
          throw new ContextClientCodeException(
              ContextClientCodeException.getIdentifier(contextConfiguration),
              parentID, "Unable to spawn context", e);
        }
      }
    }
docs: Spawns a new context.
  <p>
  The new context will have a serviceInjector that is created by forking the one in this object with the given
  serviceConfiguration. The contextConfiguration is used to fork the contextInjector from that new serviceInjector.
  
  @param contextConfiguration the new context's context (local) Configuration.
  @param serviceConfiguration the new context's service Configuration.
  @return a child context.
  @throws ContextClientCodeException If the context can't be instantiate due to user code / configuration issues
  @throws IllegalStateException      If this method is called when there is either a task or child context already
  present.