Hibernate-reactive: cassé sur le maître ORM Hibernate

Créé le 3 août 2020  ·  16Commentaires  ·  Source: hibernate/hibernate-reactive

Hibernate Reactive ne fonctionne pas avec le maître actuel de Hibernate ORM.

Tous les tests échouent avec quelque chose comme :

Caused by: org.hibernate.AssertionFailure: possible non-threadsafe access to the session
    at org.hibernate.reactive.loader.ReactiveResultSetProcessor.initializeEntity(ReactiveResultSetProcessor.java:55)
    at org.hibernate.reactive.loader.ReactiveLoaderBasedResultSetProcessor.lambda$reactiveInitializeEntitiesAndCollections$3(ReactiveLoaderBasedResultSetProcessor.java:142)
    at org.hibernate.reactive.loader.ReactiveLoaderBasedResultSetProcessor$$Lambda$364/0000000000000000.apply(Unknown Source)
    at java.util.concurrent.CompletableFuture.uniComposeStage(CompletableFuture.java:995)

La cause semble être les changements commis le 30 juillet par @yrodiere.

bug

Tous les 16 commentaires

Ok, donc c'est de ma faute. Comment puis-je t'aider?

Ok, donc c'est de ma faute. Comment puis-je t'aider?

Non, ce n'est pas de votre faute, c'est la faute du fait que nous n'avons aucun mécanisme dans les deux projets pour détecter quand quelque chose comme ça se produit. Ce n'est que par pur hasard que j'ai eu de la chance et que j'ai remarqué cela rapidement au lieu de semaines plus tard, alors que la recherche de la cause de la casse aurait été beaucoup plus difficile.

Nous allons donc devoir trouver un moyen de trouver des problèmes comme celui-ci automatiquement, et on ne sait pas quelle est la meilleure façon de le faire.

Donc, après avoir soigneusement examiné les commits, je pense qu'il semble que tout ce que nous allons avoir à faire est de reproduire ces modifications dans notre code de travail de copier/coller. Si je comprends bien, il suffit de savoir interpréter ces nulls dans la liste des objets hydratés.

Nous allons donc devoir trouver un moyen de trouver des problèmes comme celui-ci automatiquement, et on ne sait pas quelle est la meilleure façon de le faire.

Pour commencer, nous pouvons créer un JOB qui teste avec le dernier instantané ORM

Pour commencer, nous pouvons créer un JOB qui teste avec le dernier instantané ORM

Bien sûr, mais existe-t-il un moyen de le faire fonctionner selon un calendrier? J'ai eu l'impression (peut-être erronée) que nous ne pouvions pas faire cela.

Nous allons donc devoir trouver un moyen de trouver des problèmes comme celui-ci automatiquement, et on ne sait pas quelle est la meilleure façon de le faire.

Pour commencer, nous pouvons créer un JOB qui teste avec le dernier instantané ORM

J'ai quelque chose de similaire pour Hibernate Search. Chaque fois que la génération ORM se termine, j'exécute une génération Hibernate Search qui utilise le dernier instantané Hibernate ORM. Cependant, je ne peux le faire que parce que j'utilise des tâches Jenkins et qu'elles permettent de déclencher une tâche après la fin d'une autre tâche.

J'ai quelque chose de similaire pour Hibernate Search. Chaque fois que la génération ORM se termine, j'exécute une génération Hibernate Search qui utilise le dernier instantané Hibernate ORM. Cependant, je ne peux le faire que parce que j'utilise des tâches Jenkins et qu'elles permettent de déclencher une tâche après la fin d'une autre tâche.

Ce serait parfait sauf que nous n'avons pas encore Jenkins ici :-/

Je vais en créer un.

Je vais en créer un.

D'accord, super.

Le problème est résolu dans #311.

@Sanne quand est la prochaine version d'ORM ?

salut @gavinking , les micro releases d'ORM sont déclenchées à la demande. Nous en faisons un demain si c'est urgent, ou nous pouvons attendre plus de relations publiques si cela vous convient mieux. Faites-moi savoir quelle est votre préférence.

Ai-je bien compris que rien d'autre que https://github.com/hibernate/hibernate-orm/pull/3484 n'est requis ?

salut @gavinking , les micro releases d'ORM sont déclenchées à la demande. Nous en faisons un demain si c'est urgent, ou nous pouvons attendre plus de relations publiques si cela vous convient mieux. Faites-moi savoir quelle est votre préférence.

Eh bien, je suppose que ce n'est pas super urgent, mais ce serait bien de pouvoir fusionner les #310 et #311 et de ne pas les avoir en tête.

Alors bien sûr, ce serait bien, à moins que nous puissions penser à autre chose dont nous avons besoin.

Ai-je bien compris que rien d'autre que https://github.com/hibernate/hibernate-orm/pull/3484 n'est requis ?

Je crois que #311 résout complètement le problème.

Il est disponible dès maintenant https://in.relation.to//2020/08/10/hibernate-orm-5/

C'est disponible maintenant

Génial, merci, je vais tout fusionner ce soir alors !

Cette page vous a été utile?
0 / 5 - 0 notes