docs: private void buildFileEntry() {
  
          final HashMap result = new HashMap();
          Reader reader = null;
          boolean error1 = false;
  
          try {
              if (openLoginFileAction != null) {
                  if (tc.isDebugEnabled()) {
                      Tr.debug(tc, "JAAS login configuration file: " + _loginFile + " singleLogInFile: " + singleLogInFile);
                  }
                  reader = (Reader) AccessController.doPrivileged(openLoginFileAction);
                  Map<String, List<AppConfigurationEntry>> mapresult = parse(reader);
                  if (mapresult != null) {
                      result.putAll(mapresult);
                  }
  
                  if (tc.isDebugEnabled()) {
                      Tr.debug(tc, "JAAS login configuration file: " + _loginFile + " processed");
                  }
              } else {
                  if (tc.isDebugEnabled()) {
                      Tr.debug(tc, "No JAAS login configuration file specified as " + AUTHPROP + " property");
                  }
              }
          } catch (java.security.PrivilegedActionException pae) {
              Exception e = pae.getException();
              if (e instanceof MalformedURLException) {
                  Tr.error(tc, "security.jaas.open.URL", _loginFile, e);
              } else if (e instanceof IOException) {
                  Tr.error(tc, "security.jaas.create.URL", _loginFile, e);
              }
              error1 = true;
          } catch (IOException ioe) {
              Tr.error(tc, "security.jaas.create.URL", _loginFile, ioe);
              error1 = true;
          } catch (ParserException pe) {
              Tr.error(tc, "security.jaas.parser.URL", _loginFile, pe);
              error1 = true;
          } finally {
              if (reader != null) {
                  try {
                      reader.close();
                  } catch (IOException e) {
                      // It is OK to ignore this exception, since we are closing the reader
                  }
              }
          }
  
          // Note that a login config file may be specified as
          // java.security.auth.login.config="=some file path". The second '='
          // sign is signficant.  It means only use the specified login file
          // and ingore others that may appear in java.security.
          Boolean error2 = Boolean.FALSE;
  
          if (!singleLogInFile) {
              // ckmason 5/9/02, the following doPrivilege is necessary because there may
              // be user code on the call stack that calls Configuration.refresh().  The only
              // permission required of the caller is javax.security.auth.AuthPermission("refreshLoginConfiguration").
              // CTS opened defect 128889 because of an unexpected ACE, e.g.:
              // SVR-ERROR: Configuration.refresh() caught SecurityException.
              // access denied (java.security.SecurityPermission getProperty.login.url.1)
  
              // $A8: Use ibm AccessController.doPrivileged for performance reasons
              error2 = (Boolean) AccessController.doPrivileged(new java.security.PrivilegedAction() {
                  @Override
                  public Object run() {
                      int i = 1;
                      String iLoginFile2 = null;
                      URL myUrl2 = null;
                      Reader retrdr2 = null;
                      boolean error = false;
  
                      while ((iLoginFile2 = Security.getProperty("login.url." + i)) != null) {
                          if (tc.isDebugEnabled()) {
                              Tr.debug(tc, "JAAS login configuration file (" + i + "): " + iLoginFile2);
                          }
  
                          try {
                              myUrl2 = new URL(iLoginFile2);
                              retrdr2 = new BufferedReader(new InputStreamReader(myUrl2.openStream()));
                              Map<String, List<AppConfigurationEntry>> tmpMap = parse(retrdr2);
                              if (tmpMap != null) {
                                  result.putAll(tmpMap);
                              }
  
                              if (tc.isDebugEnabled()) {
                                  Tr.debug(tc, "JAAS login configuration file (" + i + "): " + iLoginFile2 + " processed");
                              }
                          } catch (MalformedURLException mue) {
                              Tr.error(tc, "security.jaas.open.URL", iLoginFile2, mue);
                              error = true;
                          } catch (IOException ioe) {
                              Tr.error(tc, "security.jaas.create.URL", iLoginFile2, ioe);
                              error = true;
                          } catch (ParserException pe) {
                              Tr.error(tc, "security.jaas.parser.URL", iLoginFile2, pe);
                              error = true;
                          }
                          i += 1;
                      }
  
                      return Boolean.valueOf(error);
  //                    return new Boolean(error);
                  }
              });
          }
  
          if ((error1 == false) && (error2.booleanValue() == false)) {
              _fileMap = result; // only replace where there is no error
          }
      }