docs: synchronized private JaspiConfig readConfigFile(final File configFile) throws PrivilegedActionException {
          if (tc.isEntryEnabled())
              Tr.entry(tc, "readConfigFile", new Object[] { configFile });
          if (configFile == null) {
              // TODO handle persistence
              // String msg = MessageFormatHelper.getFormattedMessage(msgBundle, AdminConstants.MSG_JASPI_PERSISTENT_FILE, new Object[] { PersistenceManager.JASPI_CONFIG });
              // throw new RuntimeException(msg);
          }
          PrivilegedExceptionAction<JaspiConfig> unmarshalFile = new PrivilegedExceptionAction<JaspiConfig>() {
  
              @Override
              public JaspiConfig run() throws Exception {
                  JaspiConfig cfg = null;
                  JAXBContext jc = JAXBContext.newInstance(JaspiConfig.class);
                  Object obj = jc.createUnmarshaller().unmarshal(configFile);
                  if (obj instanceof JaspiConfig) {
                      cfg = (JaspiConfig) obj;
                  }
                  return cfg;
              }
  
          };
          JaspiConfig jaspi = AccessController.doPrivileged(unmarshalFile);
          if (tc.isEntryEnabled())
              Tr.exit(tc, "readConfigFile", jaspi);
          return jaspi;
      }