Program: 86967
Project: 86967
Buggy source:
@Override protected NavigationNode getNode(Row row,int level,int depth,String linkAttribute){
  long nid=row.getLong("String_Node_Str");
  long pageId=row.getLong("String_Node_Str");
  AssetId pid=assetTemplate.createAssetId(row.getString("String_Node_Str"),pageId);
  if (!isValidOnDate(ics,pid,date)) {
    if (LOG.isDebugEnabled()) {
      LOG.debug("String_Node_Str" + pid + "String_Node_Str");
    }
    return null;
  }
  LogDep.logDep(ics,pid);
  TemplateAsset asset=assetTemplate.read(pid,"String_Node_Str","String_Node_Str","String_Node_Str",pathAttribute,linkAttribute);
  final NavigationNode node=new NavigationNode();
  node.setPage(pid);
  node.setLevel(level);
  node.setPagesubtype(asset.getSubtype());
  node.setPagename(asset.asString("String_Node_Str"));
  final boolean isNavigationPlaceholder=NAVBAR_NAME.equals(asset.asString("String_Node_Str"));
  final boolean isNavigationLink=NAVBAR_LINK.equals(asset.asString("String_Node_Str"));
  if (isNavigationPlaceholder) {
  }
 else   if (isNavigationLink) {
    Collection<AssetId> assocs;
    assocs=assetTemplate.readAssociatedAssetIds(pid,"String_Node_Str");
    if (dimensionFilter != null)     assocs=dimensionFilter.filterAssets(assocs);
    for (    AssetId assoc : assocs) {
      if (isValidOnDate(ics,assoc,date)) {
        if (isGstAlias(assoc)) {
          final Alias alias=aliasDao.getAlias(assoc);
          node.setId(alias.getId());
          final String url=alias.getTargetUrl() != null ? alias.getTargetUrl() : getUrl(assoc);
          final String linktext=alias.getLinkText();
          if (url != null) {
            node.setUrl(url);
          }
          if (linktext != null) {
            node.setLinktext(linktext);
          }
        }
 else {
          node.setId(assoc);
          asset=assetTemplate.read(assoc,"String_Node_Str","String_Node_Str","String_Node_Str",pathAttribute,linkAttribute);
          final String url=getUrl(asset);
          if (url != null) {
            node.setUrl(url);
          }
          final String linktext=asset.asString(linkAttribute);
          if (linktext != null) {
            node.setLinktext(linktext);
          }
 else {
            node.setLinktext(asset.asString("String_Node_Str"));
          }
        }
      }
    }
  }
 else {
    final String url=getUrl(asset);
    if (url != null) {
      node.setUrl(url);
    }
    final String linktext=asset.asString(linkAttribute);
    if (linktext != null) {
      node.setLinktext(linktext);
    }
 else {
      node.setLinktext(asset.asString("String_Node_Str"));
    }
  }
  if (depth < 0 || depth > level) {
    Collection<NavigationNode> children=getNodeChildren(nid,level + 1,depth,linkAttribute);
    for (    final NavigationNode kid : children) {
      if (kid != null && kid.getPage() != null) {
        node.addChild(kid);
      }
    }
  }
  return node;
}

Fixed version (ground truth):
@Override protected NavigationNode getNode(Row row,int level,int depth,String linkAttribute){
  long nid=row.getLong("String_Node_Str");
  long pageId=row.getLong("String_Node_Str");
  AssetId pid=assetTemplate.createAssetId(row.getString("String_Node_Str"),pageId);
  if (!isValidOnDate(ics,pid,date)) {
    if (LOG.isDebugEnabled()) {
      LOG.debug("String_Node_Str" + pid + "String_Node_Str");
    }
    return null;
  }
  LogDep.logDep(ics,pid);
  TemplateAsset asset=assetTemplate.read(pid,"String_Node_Str","String_Node_Str","String_Node_Str",pathAttribute,linkAttribute);
  final NavigationNode node=new NavigationNode();
  node.setPage(pid);
  node.setLevel(level);
  node.setPagesubtype(asset.getSubtype());
  node.setPagename(asset.asString("String_Node_Str"));
  final boolean isNavigationPlaceholder=NAVBAR_NAME.equals(asset.asString("String_Node_Str"));
  final boolean isNavigationLink=NAVBAR_LINK.equals(asset.asString("String_Node_Str"));
  if (isNavigationPlaceholder) {
  }
 else   if (isNavigationLink) {
    Collection<AssetId> assocs;
    assocs=assetTemplate.readAssociatedAssetIds(pid,"String_Node_Str");
    if (dimensionFilter != null)     assocs=dimensionFilter.filterAssets(assocs);
    for (    AssetId assoc : assocs) {
      if (isValidOnDate(ics,assoc,date)) {
        if (isGstAlias(assoc)) {
          final Alias alias=aliasDao.getAlias(assoc);
          node.setId(alias.getId());
          final String url=alias.getTargetUrl() != null ? alias.getTargetUrl() : getUrl(alias.getTarget());
          final String linktext=alias.getLinkText();
          if (url != null) {
            node.setUrl(url);
          }
          if (linktext != null) {
            node.setLinktext(linktext);
          }
        }
 else {
          node.setId(assoc);
          asset=assetTemplate.read(assoc,"String_Node_Str","String_Node_Str","String_Node_Str",pathAttribute,linkAttribute);
          final String url=getUrl(asset);
          if (url != null) {
            node.setUrl(url);
          }
          final String linktext=asset.asString(linkAttribute);
          if (linktext != null) {
            node.setLinktext(linktext);
          }
 else {
            node.setLinktext(asset.asString("String_Node_Str"));
          }
        }
      }
    }
  }
 else {
    final String url=getUrl(asset);
    if (url != null) {
      node.setUrl(url);
    }
    final String linktext=asset.asString(linkAttribute);
    if (linktext != null) {
      node.setLinktext(linktext);
    }
 else {
      node.setLinktext(asset.asString("String_Node_Str"));
    }
  }
  if (depth < 0 || depth > level) {
    Collection<NavigationNode> children=getNodeChildren(nid,level + 1,depth,linkAttribute);
    for (    final NavigationNode kid : children) {
      if (kid != null && kid.getPage() != null) {
        node.addChild(kid);
      }
    }
  }
  return node;
}