Program: 79879
Project: 79879
Buggy source:
/** 
 * Private Singleton Session Service.
 */
private SessionService(){
  KeyConversion keyConversion=new KeyConversion();
  tokenIdFactory=InjectorHolder.getInstance(TokenIdFactory.class);
  coreTokenConfig=InjectorHolder.getInstance(CoreTokenConfig.class);
  tokenAdapter=InjectorHolder.getInstance(SessionAdapter.class);
  try {
    dsameAdminDN=(String)AccessController.doPrivileged(new AdminDNAction());
    dsameAdminPassword=(String)AccessController.doPrivileged(new AdminPasswordAction());
    sessionServerProtocol=SystemProperties.get(Constants.AM_SERVER_PROTOCOL);
    sessionServer=SystemProperties.get(Constants.AM_SERVER_HOST);
    sessionServerPort=SystemProperties.get(Constants.AM_SERVER_PORT);
    sessionServerURI=SystemProperties.get(Constants.AM_SERVICES_DEPLOYMENT_DESCRIPTOR);
    sessionServerID=WebtopNaming.getServerID(sessionServerProtocol,sessionServer,sessionServerPort,sessionServerURI);
    isSiteEnabled=WebtopNaming.isSiteEnabled(sessionServerProtocol,sessionServer,sessionServerPort,sessionServerURI);
    if (isSiteEnabled) {
      sessionServerID=WebtopNaming.getSiteID(sessionServerProtocol,sessionServer,sessionServerPort,sessionServerURI);
      String secondaryIDs=WebtopNaming.getSecondarySites(sessionServerProtocol,sessionServer,sessionServerPort,sessionServerURI);
      secondaryServerIDs=new HashSet();
      if (secondaryIDs != null) {
        if (secondaryIDs.contains("String_Node_Str")) {
          StringTokenizer st=new StringTokenizer(secondaryIDs,"String_Node_Str");
          while (st.hasMoreTokens()) {
            secondaryServerIDs.add(st.nextToken());
          }
        }
 else {
          secondaryServerIDs.add(secondaryIDs);
        }
      }
      sessionServiceID=new URL(WebtopNaming.getServerFromID(sessionServerID));
      sessionServerProtocol=sessionServiceID.getProtocol();
      sessionServer=sessionServiceID.getHost();
      sessionServerPort=Integer.toString(sessionServiceID.getPort());
    }
 else {
      sessionServiceID=new URL(WebtopNaming.getServerFromID(sessionServerID));
    }
    try {
      secureRandom=SecureRandom.getInstance("String_Node_Str","String_Node_Str");
    }
 catch (    NoSuchProviderException e) {
      secureRandom=SecureRandom.getInstance("String_Node_Str");
    }
    sessionTable=new Hashtable();
    remoteSessionSet=Collections.synchronizedSet(new HashSet());
    if (stats.isEnabled()) {
      maxSessionStats=new SessionMaxStats(sessionTable);
      stats.addStatsListener(maxSessionStats);
    }
    thisSessionServerProtocol=SystemProperties.get(Constants.AM_SERVER_PROTOCOL);
    thisSessionServer=SystemProperties.get(Constants.AM_SERVER_HOST);
    thisSessionServerPortAsString=SystemProperties.get(Constants.AM_SERVER_PORT);
    thisSessionURI=SystemProperties.get(Constants.AM_SERVICES_DEPLOYMENT_DESCRIPTOR);
    if ((thisSessionServerProtocol == null) || (thisSessionServerPortAsString == null) || (thisSessionServer == null)|| (thisSessionURI == null)) {
      throw new SessionException(SessionBundle.rbName,"String_Node_Str",null);
    }
    thisSessionServerPort=Integer.parseInt(thisSessionServerPortAsString);
    thisSessionServerID=WebtopNaming.getServerID(thisSessionServerProtocol,thisSessionServer,thisSessionServerPortAsString,thisSessionURI);
    thisSessionServerURL=thisSessionServerProtocol + "String_Node_Str" + thisSessionServer+ "String_Node_Str"+ thisSessionServerPortAsString+ thisSessionURI;
    thisSessionServiceURL=Session.getSessionServiceURL(thisSessionServerProtocol,thisSessionServer,thisSessionServerPortAsString,thisSessionURI);
    postInit();
  }
 catch (  Exception ex) {
    sessionDebug.error("String_Node_Str",ex);
  }
}

Fixed version (ground truth):
/** 
 * Private Singleton Session Service.
 */
private SessionService(){
  tokenIdFactory=InjectorHolder.getInstance(TokenIdFactory.class);
  coreTokenConfig=InjectorHolder.getInstance(CoreTokenConfig.class);
  tokenAdapter=InjectorHolder.getInstance(SessionAdapter.class);
  try {
    dsameAdminDN=(String)AccessController.doPrivileged(new AdminDNAction());
    dsameAdminPassword=(String)AccessController.doPrivileged(new AdminPasswordAction());
    sessionServerProtocol=SystemProperties.get(Constants.AM_SERVER_PROTOCOL);
    sessionServer=SystemProperties.get(Constants.AM_SERVER_HOST);
    sessionServerPort=SystemProperties.get(Constants.AM_SERVER_PORT);
    sessionServerURI=SystemProperties.get(Constants.AM_SERVICES_DEPLOYMENT_DESCRIPTOR);
    sessionServerID=WebtopNaming.getServerID(sessionServerProtocol,sessionServer,sessionServerPort,sessionServerURI);
    isSiteEnabled=WebtopNaming.isSiteEnabled(sessionServerProtocol,sessionServer,sessionServerPort,sessionServerURI);
    if (isSiteEnabled) {
      sessionServerID=WebtopNaming.getSiteID(sessionServerProtocol,sessionServer,sessionServerPort,sessionServerURI);
      String secondaryIDs=WebtopNaming.getSecondarySites(sessionServerProtocol,sessionServer,sessionServerPort,sessionServerURI);
      secondaryServerIDs=new HashSet();
      if (secondaryIDs != null) {
        if (secondaryIDs.contains("String_Node_Str")) {
          StringTokenizer st=new StringTokenizer(secondaryIDs,"String_Node_Str");
          while (st.hasMoreTokens()) {
            secondaryServerIDs.add(st.nextToken());
          }
        }
 else {
          secondaryServerIDs.add(secondaryIDs);
        }
      }
      sessionServiceID=new URL(WebtopNaming.getServerFromID(sessionServerID));
      sessionServerProtocol=sessionServiceID.getProtocol();
      sessionServer=sessionServiceID.getHost();
      sessionServerPort=Integer.toString(sessionServiceID.getPort());
    }
 else {
      sessionServiceID=new URL(WebtopNaming.getServerFromID(sessionServerID));
    }
    try {
      secureRandom=SecureRandom.getInstance("String_Node_Str","String_Node_Str");
    }
 catch (    NoSuchProviderException e) {
      secureRandom=SecureRandom.getInstance("String_Node_Str");
    }
    sessionTable=new Hashtable();
    remoteSessionSet=Collections.synchronizedSet(new HashSet());
    if (stats.isEnabled()) {
      maxSessionStats=new SessionMaxStats(sessionTable);
      stats.addStatsListener(maxSessionStats);
    }
    thisSessionServerProtocol=SystemProperties.get(Constants.AM_SERVER_PROTOCOL);
    thisSessionServer=SystemProperties.get(Constants.AM_SERVER_HOST);
    thisSessionServerPortAsString=SystemProperties.get(Constants.AM_SERVER_PORT);
    thisSessionURI=SystemProperties.get(Constants.AM_SERVICES_DEPLOYMENT_DESCRIPTOR);
    if ((thisSessionServerProtocol == null) || (thisSessionServerPortAsString == null) || (thisSessionServer == null)|| (thisSessionURI == null)) {
      throw new SessionException(SessionBundle.rbName,"String_Node_Str",null);
    }
    thisSessionServerPort=Integer.parseInt(thisSessionServerPortAsString);
    thisSessionServerID=WebtopNaming.getServerID(thisSessionServerProtocol,thisSessionServer,thisSessionServerPortAsString,thisSessionURI);
    thisSessionServerURL=thisSessionServerProtocol + "String_Node_Str" + thisSessionServer+ "String_Node_Str"+ thisSessionServerPortAsString+ thisSessionURI;
    thisSessionServiceURL=Session.getSessionServiceURL(thisSessionServerProtocol,thisSessionServer,thisSessionServerPortAsString,thisSessionURI);
    postInit();
  }
 catch (  Exception ex) {
    sessionDebug.error("String_Node_Str",ex);
  }
}