Program: 118590
Project: 118590
Buggy source:
private void fastRepositoryUpdateSchema(IElementParameter param){
  if (param != null && param.getValue() != null) {
    String queryIdAndName=(String)param.getValue();
    String[] names=queryIdAndName.split("String_Node_Str");
    if (names.length < 2) {
      return;
    }
    String linkedRepository=names[0];
    String tableName=null;
    if (names.length == 2) {
      tableName=names[1];
    }
 else     if (names.length > 2) {
      tableName=queryIdAndName.substring(linkedRepository.length() + 3);
    }
    if (lastItemUsed != null) {
      if (!linkedRepository.equals(lastItemUsed.getProperty().getId())) {
        lastItemUsed=null;
      }
    }
    if (lastItemUsed == null) {
      IProxyRepositoryFactory factory=DesignerPlugin.getDefault().getProxyRepositoryFactory();
      Item item;
      try {
        IRepositoryViewObject object=factory.getLastVersion(linkedRepository);
        if (object == null) {
          return;
        }
        item=object.getProperty().getItem();
        Assert.isTrue(item instanceof ConnectionItem);
        lastItemUsed=(ConnectionItem)item;
      }
 catch (      PersistenceException e) {
        ExceptionHandler.process(e);
      }
    }
    String displayName=dynamicProperty.getRepositoryAliasName(lastItemUsed) + "String_Node_Str" + lastItemUsed.getProperty().getLabel()+ "String_Node_Str"+ tableName;
    param.setListItemsDisplayName(new String[]{displayName});
    param.setListItemsValue(new String[]{(String)param.getValue()});
  }
}

Fixed version (ground truth):
private void fastRepositoryUpdateSchema(IElementParameter param){
  if (param != null && param.getValue() != null) {
    String queryIdAndName=(String)param.getValue();
    String[] names=queryIdAndName.split("String_Node_Str");
    if (names.length < 2) {
      return;
    }
    String linkedRepository=names[0];
    String tableName=null;
    if (names.length == 2) {
      tableName=names[1];
    }
 else     if (names.length > 2) {
      tableName=queryIdAndName.substring(linkedRepository.length() + 3);
    }
    if (lastItemUsed != null) {
      if (!linkedRepository.equals(lastItemUsed.getProperty().getId())) {
        lastItemUsed=null;
      }
    }
    if (lastItemUsed == null) {
      IProxyRepositoryFactory factory=DesignerPlugin.getDefault().getProxyRepositoryFactory();
      Item item;
      try {
        IRepositoryViewObject object=factory.getLastVersion(linkedRepository);
        if (object == null) {
          return;
        }
        item=object.getProperty().getItem();
        Assert.isTrue(item instanceof ConnectionItem);
        lastItemUsed=(ConnectionItem)item;
      }
 catch (      PersistenceException e) {
        ExceptionHandler.process(e);
      }
    }
    String displayName=dynamicProperty.getRepositoryAliasName(lastItemUsed) + "String_Node_Str" + lastItemUsed.getProperty().getLabel()+ "String_Node_Str"+ tableName;
    IElementParameter infoObjectTypeParam=param.getElement().getElementParameter("String_Node_Str");
    if (infoObjectTypeParam != null) {
      String innerIOType=(String)infoObjectTypeParam.getValue();
      if (innerIOType != null) {
        displayName=displayName + "String_Node_Str" + innerIOType+ "String_Node_Str";
      }
    }
    param.setListItemsDisplayName(new String[]{displayName});
    param.setListItemsValue(new String[]{(String)param.getValue()});
  }
}