Methods without @Property got invoked during serialization
Les mainteneurs répondent en général sous 1 jour
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Accessibilité débutants
- 35/100
Piste de recherche
Reproduisez le comportement à l’aide de l’exemple Sale de asset-transfer-basic/chaincode-java et du point d’entrée getSale, puis exécutez la peer chaincode query documentée tout en vérifiant les peer logs. Suivez le chemin de sérialisation Java afin de déterminer pourquoi une méthode getName non annotée est appelée. Le travail est considéré comme terminé lorsque le comportement est corrigé ou que l’annotation requise et son utilisation sont clairement documentées, avec un test de régression si le dépôt fournit un emplacement de test approprié.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
I'm looking at version 2.3 but I think the behavior holds for the lastest version.
The following code is based on https://github.com/hyperledger/fabric-samples/tree/main/asset-transfer-basic/chaincode-java.
@DataType
public class Sale {
public String getName() {
System.out.println("getName");
return getName();
}
}
@Contract
public final class AssetTransfer implements ContractInterface {
@Transaction(intent = Transaction.TYPE.EVALUATE)
public Sale getSale(final Context ctx) {
return new Sale();
}
}
I deliberately wrote a recursion but it should be a factor because this method is not marked with @Property.
After I call peer chaincode query -C mychannel -n basic -c '{"Args":["getSale"]}', I then check the docker logs by running (zsh)
docker logs $(docker ps -n 1 --filter 'name=dev-peer0.org1' --format '{{.ID}}') |& vim -
I see a huge number of output "getName", which indicates getName() is called although it's not marked with @Property.
In this example code, there is nothing going wrong. But if the method returns an object that requires another serialization or has cyclic reference, this unexpected call is very likely to cause uncatched StackOverflowError or other errors.
This log is from my real project. You can see I eventually get
thread[fabric-txinvoke:3,5,main] 05:37:40:138 severe org.hyperledger.fabric.logger error nulljava.lang.stackoverflowerror
I feel I should use the magic word "@JSONPropertyIgnore" on getName().
This secret word didn't appear on https://hyperledger-fabric.readthedocs.io/en/latest/search.html?q=JSONPropertyIgnore&check_keywords=yes nor this repo.
Should we add @JSONPropertyIgnore somewhere?
- Langage dominant
- Java
- Étoiles
- 322
- Forks
- 210
- Merge moyen
- 15 h 16 min
- PR mergées (30 j)
- 29
Préparer son environnement
- Aucun Dockerfile ni fichier Docker Compose
- Aucun modèle de pull request
- Lire le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de hyperledger/fabric-chaincode-java
-
enhancement
Difficulté 4/5 3-5 jours Accessibilité débutants 48/100
hyperledger/fabric-chaincode-java#628 ·
Les mainteneurs répondent en général sous 1 jour
-
Optimize ClassGraph ScanningOuverteenhancement
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 35/100
hyperledger/fabric-chaincode-java#627 ·
Les mainteneurs répondent en général sous 1 jour
-
DataType nested classOuvertebug
Difficulté 3/5 1-2 jours Accessibilité débutants 75/100
hyperledger/fabric-chaincode-java#626 ·
Les mainteneurs répondent en général sous 1 jour
-
External Chaincode Mutual TLSOuvertebug
Difficulté 3/5 1-2 jours Accessibilité débutants 68/100
hyperledger/fabric-chaincode-java#625 ·
Les mainteneurs répondent en général sous 1 jour
-
Read/write batchingPeut-être à nouveau libre @jadebluestar l’a pris il y a 119 jours, et aucune pull request n’est ouverte. Ouverteenhancement help wanted
Difficulté 4/5 3-5 jours Accessibilité débutants 45/100
hyperledger/fabric-chaincode-java#378 · 4 commentaires ·
Les mainteneurs répondent en général sous 1 jour
Toutes les issues de hyperledger/fabric-chaincode-java
Issues similaires
-
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
Les mainteneurs répondent en général sous 1 jour
-
2026 Error Report
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
triplea-game/triplea#15096 ·
Les mainteneurs répondent en général sous 1 jour
-
[Bug][API] Switching workflow versions leaves schedules onlinePeut-être pris @zhuangchong l’a pris aujourd’hui. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 82/100
apache/dolphinscheduler#18731 ·
Les mainteneurs répondent en général sous 1 jour
-
Implement JDBC Domain Enums (`SqlCategory`, `SqlExecutionStatus`, `SqlExecutionType`) in Core ModuleOuvertecore-module enhancement good first issue
Difficulté 1/5 1-3 heures Accessibilité débutants 87/100
sdlc-pro/spring-lens#531 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
apache/rocketmq-dashboard#7340 ·
Les mainteneurs répondent en général sous 3 jours