NullPointerException trying to handle an unannotated return type via contract-api
Les mainteneurs répondent en général sous 1 jour
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 3/5
- Temps estimé
- 1-2 jours
- Accessibilité débutants
- 25/100
- Type d'issue
- Bug
- Clarté
- À clarifier
- Activité
- À l'abandon
- Stack technique
- java
- Domaine
- api, blockchain
Piste de recherche
Commencez par lire JSONTransactionSerializer.java à la ligne 84 et suivez le chemin de la valeur de retour dans ContractExecutionService.convertReturn. Reproduisez l’invocation de paginatedRichQuery avec le type de retour QueryResponse indiqué et examinez comment le retour non annoté est traité. C’est terminé lorsque la transaction n’échoue plus avec une NullPointerException lors de la sérialisation du retour.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
Using 2.2.3LTS using the contract-api I have this method
@Transaction(submit=false)
public QueryResponse<String> paginatedRichQuery(Context ctx, String queryString, String pagesize, String passedBookmark) {
logger.debug("Entering paginatedRichQuery with pagesize [" + pagesize + "] and query string: " + queryString);
int pageSize = Integer.parseInt(pagesize);
final QueryResultsIteratorWithMetadata<KeyValue> iterator = ctx.getStub().getQueryResultWithPagination(queryString, pageSize, passedBookmark);
QueryResponseMetadata metadata = iterator.getMetadata();
ArrayList<String> results = this.getAllResults(iterator);
QueryResponse<String> response = new QueryResponse<String>(results.toArray(new String[results.size()]), new ResponseMetadata(metadata));
logger.debug("Exiting paginatedRichQuery with response: " + response.toString());
return response;
}
QueryResponse is defined as follows
public class QueryResponse<T> {
private T[] results;
private ResponseMetadata responseMetadata;
public QueryResponse(T[] results, ResponseMetadata responseMetadata) {
this.results = results;
this.responseMetadata = responseMetadata;
}
public T[] getResults() {
return results;
}
public void setResults(T[] results) {
this.results = results;
}
public ResponseMetadata getResponseMetadata() {
return responseMetadata;
}
public void setResponseMetadata(ResponseMetadata responseMetadata) {
this.responseMetadata = responseMetadata;
}
}
When I invoke the transaction it fails due to trying because of the return value with
Thread[fabric-txinvoke:5,5,main] 12:04:38:330 INFO org.hyperledger.fabric.contract.ContractRouter processRequest Got routing:paginatedRichQuery:org.example.FixedAssetContract
Thread[fabric-txinvoke:5,5,main] 12:04:38:345 SEVERE org.hyperledger.fabric.Logger error nulljava.lang.NullPointerException
at org.hyperledger.fabric.contract.execution.JSONTransactionSerializer.toBuffer(JSONTransactionSerializer.java:84)
at org.hyperledger.fabric.contract.execution.impl.ContractExecutionService.convertReturn(ContractExecutionService.java:89)
at org.hyperledger.fabric.contract.execution.impl.ContractExecutionService.executeRequest(ContractExecutionService.java:67)
at org.hyperledger.fabric.contract.ContractRouter.processRequest(ContractRouter.java:119)
at org.hyperledger.fabric.contract.ContractRouter.invoke(ContractRouter.java:130)
at org.hyperledger.fabric.shim.impl.ChaincodeInvocationTask.call(ChaincodeInvocationTask.java:100)
at org.hyperledger.fabric.shim.impl.InvocationTaskManager.lambda$newTask$17(InvocationTaskManager.java:265)
at java.base/java.util.concurrent.CompletableFuture$AsyncRun.run(CompletableFuture.java:1736)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:834)
- 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
-
Shaded google-api-client trust stores still include AAA Certificate Services (eMudhra CA compromise)Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
snowflakedb/snowflake-jdbc#2763 ·
-
MacFileUtils: FSPathMakeRef passes an int where the C function takes its FSRef output pointerOuverte
Difficulté 1/5 Moins d'une heure Accessibilité débutants 79/100
java-native-access/jna#1746 ·
-
Pooled clients leak a connection per call: pipelines and transactions taken from UnifiedJedis are never closedPeut-être pris @ali-jawad l’a pris aujourd’hui. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 77/100
-
[BUG] spark: Iceberg REST catalog symlinks collide when multiple catalogs share one REST URIOuvertekind:bug state:needs-triage
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
OpenLineage/OpenLineage#5100 · 1 commentaire ·
Les mainteneurs répondent en général sous 4 jours
-
bug
Difficulté 2/5 1-3 heures Accessibilité débutants 82/100
adorsys/keycloak-config-cli#1709 ·
Les mainteneurs répondent en général sous 1 jour