code: public synchronized void updateVariableCache(Map<String, Object> variables) {
          boolean dirty = false;
          for (Map.Entry<String, Object> entry : variables.entrySet()) {
              String variableName = entry.getKey();
              // skip any variables defined in server.xml
              if (configVariables.containsKey(variableName)) {
                  continue;
              }
              Object variableValue = entry.getValue();
              if (!isVariableCached(variableName, variableValue)) {
                  variableCache.put(variableName, variableValue);
                  dirty = true;
              }
          }
          if (dirty) {
              saveVariableCache();
          }
      }
docs: /*
  Update variable cache on disk.