Program: 61639
Project: 61639
Buggy source:
@Override public void upsert(Webhook webhook){
  Map<String,AttributeValue> item=new HashMap<>();
  item.put("String_Node_Str",new AttributeValue(webhook.getName()));
  item.put("String_Node_Str",new AttributeValue(webhook.getCallbackUrl()));
  if (!StringUtils.isEmpty(webhook.getChannelUrl())) {
    item.put("String_Node_Str",new AttributeValue(webhook.getChannelUrl()));
  }
  item.put("String_Node_Str",new AttributeValue().withN(String.valueOf(webhook.getParallelCalls())));
  item.put("String_Node_Str",new AttributeValue().withBOOL(webhook.isPaused()));
  item.put("String_Node_Str",new AttributeValue(webhook.getBatch()));
  item.put("String_Node_Str",new AttributeValue().withBOOL(webhook.isHeartbeat()));
  item.put("String_Node_Str",new AttributeValue().withN(String.valueOf(webhook.getTtlMinutes())));
  item.put("String_Node_Str",new AttributeValue().withN(String.valueOf(webhook.getMaxWaitMinutes())));
  item.put("String_Node_Str",new AttributeValue().withN(String.valueOf(webhook.getCallbackTimeoutSeconds())));
  item.put("String_Node_Str",new AttributeValue().withN(String.valueOf(webhook.getMaxAttempts())));
  item.put("String_Node_Str",new AttributeValue().withN(String.valueOf(webhook.getErrorChannelUrl())));
  if (!StringUtils.isEmpty(webhook.getTagUrl())) {
    item.put("String_Node_Str",new AttributeValue(webhook.getTagUrl()));
  }
  if (!StringUtils.isEmpty(webhook.getManagedByTag())) {
    item.put("String_Node_Str",new AttributeValue(webhook.getManagedByTag()));
  }
  dbClient.putItem(getTableName(),item);
}

Fixed version (ground truth):
@Override public void upsert(Webhook webhook){
  Map<String,AttributeValue> item=new HashMap<>();
  item.put("String_Node_Str",new AttributeValue(webhook.getName()));
  item.put("String_Node_Str",new AttributeValue(webhook.getCallbackUrl()));
  if (!StringUtils.isEmpty(webhook.getChannelUrl())) {
    item.put("String_Node_Str",new AttributeValue(webhook.getChannelUrl()));
  }
  item.put("String_Node_Str",new AttributeValue().withN(String.valueOf(webhook.getParallelCalls())));
  item.put("String_Node_Str",new AttributeValue().withBOOL(webhook.isPaused()));
  item.put("String_Node_Str",new AttributeValue(webhook.getBatch()));
  item.put("String_Node_Str",new AttributeValue().withBOOL(webhook.isHeartbeat()));
  item.put("String_Node_Str",new AttributeValue().withN(String.valueOf(webhook.getTtlMinutes())));
  item.put("String_Node_Str",new AttributeValue().withN(String.valueOf(webhook.getMaxWaitMinutes())));
  item.put("String_Node_Str",new AttributeValue().withN(String.valueOf(webhook.getCallbackTimeoutSeconds())));
  item.put("String_Node_Str",new AttributeValue().withN(String.valueOf(webhook.getMaxAttempts())));
  if (!StringUtils.isEmpty(webhook.getErrorChannelUrl())) {
    item.put("String_Node_Str",new AttributeValue().withN(String.valueOf(webhook.getErrorChannelUrl())));
  }
  if (!StringUtils.isEmpty(webhook.getTagUrl())) {
    item.put("String_Node_Str",new AttributeValue(webhook.getTagUrl()));
  }
  if (!StringUtils.isEmpty(webhook.getManagedByTag())) {
    item.put("String_Node_Str",new AttributeValue(webhook.getManagedByTag()));
  }
  dbClient.putItem(getTableName(),item);
}