D’étranges erreurs peuvent apparaître lors de la mise à jour d’une entité JHipster : les anciennes valeurs sont écrites en base, et les nouvelles valeurs ignorées. Il peut s’agir d’un effet de bord très simple à corriger.
On peut croire d’abord à un problème de cache Hibernate qui ne serait pas rafraichit…
Puis on s’aperçoit que la méthode update
de la ressource web est appelée plusieurs fois… Bizarre !
Eh bien c’est ce qui se produit lorsque plusieurs onglets sont ouverts sur la même application, dans un environnement de développement : BrowserSync, est activé par défaut pour le développement de la couche Angular de JHipster. Et BrowserSync synchronise vraiment bien tous les onglets, et soumet la requête d’update dans chaque onglet !
S’ensuivent des requêtes concurrentes, dont certaines vont utiliser l’ancienne valeur présente dans un des onglets, et écraser la nouvelle valeur en base.
Donc, un seul onglet ouvert par application!