Program: 16554
Project: 16554
Buggy source:
private void createSSBonds(){
  List<SSBond> bonds=structure.getSSBonds();
  if (bonds == null)   bonds=new ArrayList<SSBond>();
  final String symop="String_Node_Str";
  int internalId=0;
  for (  StructConn conn : structConn) {
    String ptnr1_chainId=conn.getPtnr1_auth_asym_id();
    String ptnr1_seqId=conn.getPtnr1_auth_seq_id();
    String ptnr2_chainId=conn.getPtnr2_auth_asym_id();
    String ptnr2_seqId=conn.getPtnr2_auth_seq_id();
    Group s1=lookupResidue(ptnr1_chainId,ptnr1_seqId);
    Group s2=lookupResidue(ptnr2_chainId,ptnr2_seqId);
    if (null != s1 && null != s2) {
      if ("String_Node_Str".equals(s1.getPDBName()) && symop.equals(conn.getPtnr1_symmetry()) && "String_Node_Str".equals(s2.getPDBName())&& symop.equals(conn.getPtnr2_symmetry())) {
        SSBondImpl bond=new SSBondImpl();
        bond.setSerNum(internalId++);
        bond.setChainID1(ptnr1_chainId);
        bond.setResnum1(ptnr1_seqId);
        if ("String_Node_Str".equals(conn.getPdbx_ptnr1_PDB_ins_code())) {
          conn.setPdbx_ptnr1_PDB_ins_code(null);
        }
        bond.setInsCode1(conn.getPdbx_ptnr1_PDB_ins_code());
        bond.setChainID2(ptnr2_chainId);
        bond.setResnum2(ptnr2_seqId);
        if ("String_Node_Str".equals(conn.getPdbx_ptnr2_PDB_ins_code())) {
          conn.setPdbx_ptnr2_PDB_ins_code(null);
        }
        bond.setInsCode2(conn.getPdbx_ptnr2_PDB_ins_code());
        bonds.add(bond);
      }
    }
  }
  structure.setSSBonds(bonds);
}

Fixed version (ground truth):
private void createSSBonds(){
  List<SSBond> bonds=structure.getSSBonds();
  if (bonds == null)   bonds=new ArrayList<SSBond>();
  final String symop="String_Node_Str";
  int internalId=0;
  for (  StructConn conn : structConn) {
    if (!conn.getConn_type_id().equals("String_Node_Str"))     continue;
    String ptnr1_chainId=conn.getPtnr1_auth_asym_id();
    String insCode1="String_Node_Str";
    if (!conn.getPdbx_ptnr1_PDB_ins_code().equals("String_Node_Str"))     insCode1=conn.getPdbx_ptnr1_PDB_ins_code();
    String insCode2="String_Node_Str";
    if (!conn.getPdbx_ptnr2_PDB_ins_code().equals("String_Node_Str"))     insCode2=conn.getPdbx_ptnr2_PDB_ins_code();
    String ptnr1_seqId=conn.getPtnr1_auth_seq_id() + insCode1;
    String ptnr2_chainId=conn.getPtnr2_auth_asym_id();
    String ptnr2_seqId=conn.getPtnr2_auth_seq_id() + insCode2;
    Group s1=lookupResidue(ptnr1_chainId,ptnr1_seqId);
    Group s2=lookupResidue(ptnr2_chainId,ptnr2_seqId);
    if (null != s1 && null != s2) {
      if ("String_Node_Str".equals(s1.getPDBName()) && "String_Node_Str".equals(s2.getPDBName())) {
        if (!conn.getPtnr1_symmetry().equals(symop) || !conn.getPtnr2_symmetry().equals(symop)) {
          logger.info("String_Node_Str",s1.getResidueNumber(),s2.getResidueNumber());
          continue;
        }
        SSBondImpl bond=new SSBondImpl();
        bond.setSerNum(internalId++);
        bond.setChainID1(ptnr1_chainId);
        bond.setResnum1(ptnr1_seqId);
        if ("String_Node_Str".equals(conn.getPdbx_ptnr1_PDB_ins_code())) {
          conn.setPdbx_ptnr1_PDB_ins_code(null);
        }
        bond.setInsCode1(conn.getPdbx_ptnr1_PDB_ins_code());
        bond.setChainID2(ptnr2_chainId);
        bond.setResnum2(ptnr2_seqId);
        if ("String_Node_Str".equals(conn.getPdbx_ptnr2_PDB_ins_code())) {
          conn.setPdbx_ptnr2_PDB_ins_code(null);
        }
        bond.setInsCode2(conn.getPdbx_ptnr2_PDB_ins_code());
        if (bonds.contains(bond)) {
          if (s1.getAltLocs().isEmpty() && s1.getAltLocs().isEmpty()) {
            logger.warn("String_Node_Str",s1.getResidueNumber(),s2.getResidueNumber());
          }
 else {
            logger.info("String_Node_Str",s1.getResidueNumber(),s2.getResidueNumber());
          }
        }
 else {
          bonds.add(bond);
        }
      }
    }
  }
  structure.setSSBonds(bonds);
}