Skip to content

Commit

Permalink
fix: #209 Removed NUL character (\u0000) which is not allowed in Post…
Browse files Browse the repository at this point in the history
…gres jsonb column
  • Loading branch information
satran004 committed Mar 4, 2024
1 parent 891f739 commit 283e331
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,10 @@ public static JsonNode parseJson(String jsonContent) throws JsonProcessingExcept
return mapper.readTree(jsonContent);
}

public static ObjectMapper getMapper() {
return mapper;
}

static {
mapper = (new ObjectMapper()).enable(SerializationFeature.INDENT_OUTPUT);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,10 @@

import com.bloxbean.cardano.yaci.helper.model.Transaction;
import com.bloxbean.cardano.yaci.store.common.model.BaseEntity;
import com.bloxbean.cardano.yaci.store.common.util.JsonUtil;
import com.fasterxml.jackson.core.JsonProcessingException;
import io.hypersistence.utils.hibernate.type.json.JsonType;
import jakarta.persistence.Column;
import jakarta.persistence.Entity;
import jakarta.persistence.Id;
import jakarta.persistence.Table;
import jakarta.persistence.*;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
Expand All @@ -33,4 +32,21 @@ public class InvalidTransactionEntity extends BaseEntity {
@Type(JsonType.class)
@Column(columnDefinition = "json")
private Transaction transaction;

@PrePersist
public void prePersist() {
if (transaction == null) return;

var json = JsonUtil.getJson(transaction);
if (json.contains("\\u0000")) {
json = json.replace("\\u0000", "");

try {
var updatedTransaction = JsonUtil.getMapper().readValue(json, Transaction.class);
setTransaction(updatedTransaction);
} catch (JsonProcessingException e) {
throw new RuntimeException("Error deserializing transaction json", e);
}
}
}
}

0 comments on commit 283e331

Please sign in to comment.