@Override
  protected void destroyMembers(@Nonnull MVCGroup group, boolean fireDestructionEvents) {
    super.destroyMembers(group, fireDestructionEvents);

    try {
      FactoryBuilderSupport builder = (FactoryBuilderSupport) group.getMember(BUILDER);
      if (builder != null) {
        builder.dispose();
        builder.getVariables().clear();
      }
    } catch (Exception e) {
      // TODO find out why this call breaks applet mode on shutdown
      LOG.error(
          "Application encountered an error while destroying group '" + group.getMvcId() + "'",
          sanitize(e));
    }
  }
 @Override
 @SuppressWarnings("ConstantConditions")
 protected void adjustMvcArguments(@Nonnull MVCGroup group, @Nonnull Map<String, Object> args) {
   super.adjustMvcArguments(group, args);
   FactoryBuilderSupport builder = (FactoryBuilderSupport) group.getMember(BUILDER);
   args.put(BUILDER, builder);
   for (Map.Entry<String, Object> variable : args.entrySet()) {
     builder.setVariable(variable.getKey(), variable.getValue());
   }
 }