Rapport des demandes du serveur Redmine

Sujet Description Statut Par Type Priorité Version Catégorie Date de création
[ObServeLL] création d'une specieslist "LL - Commercial species" Pour note: - prévoir d'ajouter dans le référentiel une specieslist "LL - Commercial species" - assigner les espèces suivantes à cette specieslist: SWO; ALB; YFT; BET; BIL; MLS; BUM; BLM; SSP; SFA; DOL; DOX; WAH; et éventuellement d'autres Proposition pcauquil Evolution Normal Remontées IRD Réunion persistence -
[LL] modification impromptue du cadrant (coord géo) Sur les formulaires Activité/Opération de pêche/Filage, et Activité/Opération de pêche/Virage Lorsque le format DMS est actif, cadrant SE sélectionné, saisie longitude 55°57'0'' par exemple → modifie automatiquement le cadrant vers SW Constatée psabarros Anomalie Normal Remontées IRD Réunion gui -
mise à jour observe_common.speciegroup "Sélaciens" Dans observe_common.speciegroup, le groupe "Sharks/Sélaciens/Tiburones" devrait être renommé car (1) on emploie plutot élasmobranches pour désigner les sélaciens maintenant, et (2) les sélaciens/eslasmo incluent aussi les raies Ils correspondent au code FAO "SKX", d'ou: label1: Sharks -> Elasmobranchii /OU Sharks, rays, skates, etc. nei label2: Sélaciens -> Elasmobranches /OU Requins, raies, etc. nca label3: Tiburones -> ? /OU Tiburones, rayas, etc. nep Proposition pcauquil Evolution Normal Remontées IRD Réunion - -
[référentiel] ajout HL: longueur de la tête (entre la maxillaire inférieure et branchie)   À faire pcauquil Tâche Normal Remontées IRD Réunion persistence -
[ObserveLL] Formulaire Opération de pêche / Composition Détaillée : grosse évolution +Proposition d'évolution importante du formulaire de définition détaillée de la palangre pour une version ultérieure de l'application.+ Actuellement le mécanisme de templates permet de prédéfinir seulement les longueurs d'orins des baskets. On souhaite augmenter leur portée. *Aperçu des modifications souhaitées* On souhaite : * rajouter des champs sur les entités Section et Basket * augmenter le nombre de paramètres associés à un template, de sorte à pouvoir prédéfinir jusqu'à tous les paramètres d'un avançon * déplacer les 3 paramètres nb total sections, nb paniers/section et nb hameçon/panier de l'entité (formulaire) Set vers l'écran de définition des templates * sauvegarder les templates en base *Sauvegarde des templates* Actuellement les templates sont perdus lorsque l'on quitte l'application ou que l'on passe à d'autres formulaires. (Remplace #6760) Les templates, qui vont être perfectionnés, devront être sauvegardés (et rappelés à l'affichage du formulaire templates). *Changements dans le modèle de données* * Rajouter le champ Basket.branchlineLength : une longueur de branchline (avançon) n'a pas de sens au niveau panier, mais ce paramètre aura pour but, par changement de sa valeur dans le tableau "Paniers", de changer la valeur branchlinelength (longueurs d'avançons) de tous les branchlines (avançons) de ce panier * Rajouter le champ Basket.tracelineLength : utilité identique à Basket.branchlineLength, mais pour le champ traceline (Bas de ligne) * -Rajouter le champ Section.timeBetweenHooks : utilité identique à Basket.branchlineLength, mais pour le champ timeBetweenHooks (temps entre hameçons)- * Rajouter le champ Section.shooterUsed * Rajouter le champ Section.shooterSpeed * Rajouter le champ Basket.timeBetweenHooks * Rajouter le champ Basket.additionalTime (manuel; non objet d'un template; "bips supplémentaires" d'Evgeny) * -Rajouter le champ Section.vesselSpeed (pertinence à confirmer; redondance; aide à la saisie; serait utile uniquement pour qu'une modification de ce champ dans le tableau basket mette à jour tous les champs correspondants dans le tableau branchline)- * Rajouter le champ Basket.vesselSpeed *Changement de fonction de certains champs de Opération de pêche/Caractéristiques* Le champ "Vitesse bateau au filage" (set.settingvesselspeed reste, mais il est affublé d'un marqueur observé/calculé (set.settingvesselspeedcomputed) : * Si l'observateur le saisit -> il est marqué observé * S'il le laisse vide, la procédure de calcul essaiera de déterminer une vitesse moyenne à partir des vitesses connues au niveau de la composition détaillée (en pondérant ce calcul de vitesses par le nombre d'hameçons/vitesse). La valeur calculée prendra place dans set.settingvesselspeed et le marqueur prendra la valeur "calculé" Dans Opération de pêche/Caractéristiques, les 3 champs nb total section/nb baskets/section/nb hameçons/basket changent de fonction : * Ils sont chacun équipé d'un flag observé/calculé * S'ils sont saisis, ils seront marqués "observés" * Sinon, ils seront calculés, déduis du schéma détaillés de la palangre Ces 3 champs ne sont plus du tout utilisés pour la génération du schéma détaillé. Pour ceci, ces valeurs seront à présent saisies au niveau des templates de section (ceci va permettre plus de finesse dans la génération des baskets et avançons) A titre informatif, ceci permettra de mieux s'adapter aux 3 types de marées possibles : * Pour les marées auto-échantillonnage ils seront saisis (donc marqués "observés") * Pour les marées scientifiques ils seront calculés, déduis du schéma détaillés de la palangre (donc marqués "calculés") * Pour les marées commerciales observées, ils seront soit observés (dans le cas ou le schéma détaillé ne sera pas défini) soit calculés (dans le cas où le schéma détaillé sera défini) *Champs à rajouter dans le template de section* Les templates, actuellement limités aux longueurs d'orins, auront plus de portée : ils permettrons de définir des valeurs pour tous les paramètres d'un avançon : * Séquence d'orins (la fonction déjà existante; son renseignement devient optionnel) * Section / shooterUsed (oui/non obligatoire) * Section / shooterSpeed (optionnel) * Section / Vitesse filage (nd) (optionnelle) * Appât : Type + Etat au filage (optionnel) * Nb hameçons/basket (obligatoire) * Nb baskets/section (obligatoire) * Longueur d'avançon (optionnel) * Longueur de traceline (optionnel) * Temps entre hameçons (optionnel) * Vitesse bateau (nd) (optionnel) * Marqueur hookTimer oui/non (optionnel) * Paramètres de snap, swivel, cyalumes présents sur un avançon Par ailleurs nous avons défini plus haut que le paramètre *Nombre de sections* du formulaire Opération de pêche/Caractéristiques n'est plus utilisé pour la génération. Il faut donc pouvoir le saisir ailleurs. Cependant il n'est pas pertinent de l'inclure dans les templates puisqu'une valeur unique suffit à l'échelle de l'opération de pêche. Il faut donc faire figurer ce paramètre sur l'écran de génération détaillée, au même niveau que le bouton "Tout générer" par exemple. Il sera exploité par le bouton "Tout générer" pour déterminer combien de sections devront être créées. *Multisélection* On cherche par tous les moyens à accélérer la définition détaillée de la palangre. A ce titre on souhaite pouvoir faire de la sélection multiple sur le tableau "Avançons" ("Branchlines") et, sur un clic droit, éditer en bloc certaines valeurs : * Branchline / longueurs d'avançon (branchlines) * Branchline / longueurs de bas de ligne (traceline) Pour les champs booléens, ceci se traduirait par des cases "Tout sélectionner" en tête de colonnes. Proposition - Evolution Normal ObserveLL - Non budgetisé - -
[ObserveLL] Evolution possible sur formulaire rencontres Nous notons cette évolution possible pour une future version du logiciel : Initialement le formulaire activity/encounter (et sa display list associée) n'étaient conçus que pour consigner des rencontres Par la suite l'équipe a souhaité ajouter dans la liste des rencontres possibles 2 entrées relatives à la déprédation (des appâts et des captures). Elle ne sont utiles que dans les cas marginaux où la déprédation a lieu sur appâts, ou bien lorsque la totalité des captures a été déprédatée et qu'il n'est pas possible de consigner la déprédation sur l'entité captures. Or, pour ces 2 nouvelles références, le contenu de la display list "Rencontres" n'est pas assez fourni : il manque les espèces causes de la déprédation. Pour l'heure, le contournement suivant a été adopté : nous ajoutons à la display list "Espèces des rencontres" les espèces causes de déprédation. Ce n'est pas satisfaisant car il existe par ailleurs une display list "Déprédateurs". Or actuellement 2 display lists différentes ne peuvent pas cohabiter sur un même formulaires. La règle de gestion actuelle est : 1 formulaires <=> 1 display list. Pour une version future nous devrons réfléchir à améliorer cette conception : * soit pouvoir piloter la display list à utiliser dans une liste déroulante en fonction d'une première sélection sur le formulaire * soit déporter la consignation de ces deux "rencontres" ou "interactions" particulières (déprédation appâts/captures) dans un autre formulaire et une autre section du modèle de données Proposition tchemit Evolution Bas ObserveLL - Non budgetisé - -
Serveur web : ne pas sérialiser le mot de passe Sur le serveur web, Quand des exception métier sont levé Il ne faut pas sérialiser le mot de passe de configuration contenu dans l'exception. Cette information ne doit pas remonté au client. Constatée - Anomalie Normal Foire aux anomalies application-web -
Nom de l'application dans la barre des tâches sur Mac Cette remarque n'a vraiment que peu d'importance. Sous Mac, le nom de l'application dans la barre des tâches est le nom de la classe, nom pas le libellé du nom de l'application comme sous Windows. Le nom dans le bandeau de l'application elle-même est correct. Voir PJ. Si un jour cela peut peut être amélioré... Il faut je crois ajouter -Xdock:name="My App Name" Constatée tchemit Anomalie Bas Foire aux anomalies gui -
La fonction "Réallocation de programme" s'essouffle après quelques utilisations Scénario : On choisit une marée LL que l'on ouvre Avec le clic droit on la fait passer successivement d'un programme à l'autre Il y a un moment où le menu contextuel sur clic droit n'apparait plus. Le seul moyen de relancer le clic droit est de recharger la source ou de redémarrer ObServe. Le comportement est légèrement différent sous Win et Mac : * Sous Win le blocage survient environ après 5 à 10 changements de programmes * Sous Mac le blocage intervient immédiatement après la première utilisation de la ré allocation Constatée sbavencoff Anomalie Normal Foire aux anomalies gui -
Corruption de la base à la ré ouverture Ce bug persiste sur la version 4.0.6 et il est urgent de trouver une solution. Constatée tchemit Anomalie Immédiat Foire aux anomalies persistence -
Deux soucis sur les requêtes de synthèse Double comptage quand calée sur baleine (banc libre + banc libre avec baleine) DCP : les DCP renforcé ne semble pas être comptabilisés Constatée pcauquil Anomalie Normal Foire aux anomalies - -
Problèmes d'affichage UNICODE des erreurs de tentative de connection sous Windows Des problèmes d'affichage des caractères spéciaux se manifestent sous Windows (7 dans mon cas) sur certains types de messages relatifs au statut de connexion à la base dans les assistants. cf. PJ En attente commentaire Client pcauquil Anomalie Bas Foire aux anomalies - -
[SERVEUR WEB] Exceptions probablement lorsque la connexion est ponctuellement coupée Lors d'essais de gestion avancée du référentiel, entre un serveur distant et une base distante, on a obtenu ce type d'erreurs. On soupçonne qu'elles sont liées à une interruption de l'une ou l'autre des deux connexions. Est-ce la cas ? Si oui, on aimerait qu'elles soient interprétées et qu'un message de type 'Echec de connxion : Voulez vous re essayer ?' soit affiché
java.lang.reflect.UndeclaredThrowableException
	at com.sun.proxy.$Proxy25.getReferentialReferenceSet(Unknown Source)
	at fr.ird.observe.services.service.actions.synchro.referential.diff.ReferentialSynchronizeDiffsEngine.getLeftReferentialReferenceSet(ReferentialSynchronizeDiffsEngine.java:72)
	at fr.ird.observe.application.swing.ui.admin.synchronize.referential.ng.tree.ReferentialSynchronizeTreeModelsBuilder.addFromLeft(ReferentialSynchronizeTreeModelsBuilder.java:131)
	at fr.ird.observe.application.swing.ui.admin.synchronize.referential.ng.tree.ReferentialSynchronizeTreeModelsBuilder.build(ReferentialSynchronizeTreeModelsBuilder.java:104)
	at fr.ird.observe.application.swing.ui.admin.synchronize.referential.ng.ReferentialSynchroUIHandler.doStartAction0(ReferentialSynchroUIHandler.java:116)
	at jaxx.runtime.swing.application.ActionWorker.doInBackground(ActionWorker.java:92)
	at javax.swing.SwingWorker$1.call(Unknown Source)
	at java.util.concurrent.FutureTask.run(Unknown Source)
	at javax.swing.SwingWorker.run(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)
Caused by: org.apache.http.NoHttpResponseException: xxxxx.xxxxxxx.xxxx.fr:8080 failed to respond
	at org.apache.http.impl.conn.DefaultHttpResponseParser.parseHead(DefaultHttpResponseParser.java:143)
	at org.apache.http.impl.conn.DefaultHttpResponseParser.parseHead(DefaultHttpResponseParser.java:57)
	at org.apache.http.impl.io.AbstractMessageParser.parse(AbstractMessageParser.java:259)
	at org.apache.http.impl.DefaultBHttpClientConnection.receiveResponseHeader(DefaultBHttpClientConnection.java:163)
	at org.apache.http.impl.conn.CPoolProxy.receiveResponseHeader(CPoolProxy.java:167)
	at org.apache.http.protocol.HttpRequestExecutor.doReceiveResponse(HttpRequestExecutor.java:273)
	at org.apache.http.protocol.HttpRequestExecutor.execute(HttpRequestExecutor.java:125)
	at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:271)
	at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:184)
	at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:88)
	at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:110)
	at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:184)
	at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:82)
	at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:107)
	at fr.ird.observe.services.rest.http.ObserveResponseBuilder.executeRequest(ObserveResponseBuilder.java:346)
	at fr.ird.observe.services.rest.http.ObserveResponseBuilder.post0(ObserveResponseBuilder.java:294)
	at fr.ird.observe.services.rest.http.ObserveResponseBuilder.executeRequest(ObserveResponseBuilder.java:173)
	at fr.ird.observe.services.rest.http.ObserveResponseBuilder.build(ObserveResponseBuilder.java:114)
	at fr.ird.observe.services.rest.ObserveServiceFactoryRest$RemoteInvocationHandler.invoke(ObserveServiceFactoryRest.java:248)
	... 12 more

java.lang.reflect.UndeclaredThrowableException
	at com.sun.proxy.$Proxy25.getReferentialReferenceSet(Unknown Source)
	at fr.ird.observe.services.service.actions.synchro.referential.diff.ReferentialSynchronizeDiffsEngine.getLeftReferentialReferenceSet(ReferentialSynchronizeDiffsEngine.java:72)
	at fr.ird.observe.application.swing.ui.admin.synchronize.referential.ng.tree.ReferentialSynchronizeTreeModelsBuilder.addFromLeft(ReferentialSynchronizeTreeModelsBuilder.java:131)
	at fr.ird.observe.application.swing.ui.admin.synchronize.referential.ng.tree.ReferentialSynchronizeTreeModelsBuilder.build(ReferentialSynchronizeTreeModelsBuilder.java:104)
	at fr.ird.observe.application.swing.ui.admin.synchronize.referential.ng.ReferentialSynchroUIHandler.doStartAction0(ReferentialSynchroUIHandler.java:116)
	at jaxx.runtime.swing.application.ActionWorker.doInBackground(ActionWorker.java:92)
	at javax.swing.SwingWorker$1.call(Unknown Source)
	at java.util.concurrent.FutureTask.run(Unknown Source)
	at javax.swing.SwingWorker.run(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)
Caused by: org.apache.http.NoHttpResponseException: xxxxx.xxxxxxx.xxxx.fr:8080 failed to respond
	at org.apache.http.impl.conn.DefaultHttpResponseParser.parseHead(DefaultHttpResponseParser.java:143)
	at org.apache.http.impl.conn.DefaultHttpResponseParser.parseHead(DefaultHttpResponseParser.java:57)
	at org.apache.http.impl.io.AbstractMessageParser.parse(AbstractMessageParser.java:259)
	at org.apache.http.impl.DefaultBHttpClientConnection.receiveResponseHeader(DefaultBHttpClientConnection.java:163)
	at org.apache.http.impl.conn.CPoolProxy.receiveResponseHeader(CPoolProxy.java:167)
	at org.apache.http.protocol.HttpRequestExecutor.doReceiveResponse(HttpRequestExecutor.java:273)
	at org.apache.http.protocol.HttpRequestExecutor.execute(HttpRequestExecutor.java:125)
	at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:271)
	at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:184)
	at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:88)
	at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:110)
	at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:184)
	at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:82)
	at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:107)
	at fr.ird.observe.services.rest.http.ObserveResponseBuilder.executeRequest(ObserveResponseBuilder.java:346)
	at fr.ird.observe.services.rest.http.ObserveResponseBuilder.post0(ObserveResponseBuilder.java:294)
	at fr.ird.observe.services.rest.http.ObserveResponseBuilder.executeRequest(ObserveResponseBuilder.java:173)
	at fr.ird.observe.services.rest.http.ObserveResponseBuilder.build(ObserveResponseBuilder.java:114)
	at fr.ird.observe.services.rest.ObserveServiceFactoryRest$RemoteInvocationHandler.invoke(ObserveServiceFactoryRest.java:248)
	... 12 more
java.lang.reflect.UndeclaredThrowableException
	at com.sun.proxy.$Proxy33.getReferentialReferenceSet(Unknown Source)
	at fr.ird.observe.services.service.actions.synchro.referential.diff.ReferentialSynchronizeDiffsEngine.getLeftReferentialReferenceSet(ReferentialSynchronizeDiffsEngine.java:72)
	at fr.ird.observe.application.swing.ui.admin.synchronize.referential.ng.tree.ReferentialSynchronizeTreeModelsBuilder.addFromLeft(ReferentialSynchronizeTreeModelsBuilder.java:131)
	at fr.ird.observe.application.swing.ui.admin.synchronize.referential.ng.tree.ReferentialSynchronizeTreeModelsBuilder.build(ReferentialSynchronizeTreeModelsBuilder.java:104)
	at fr.ird.observe.application.swing.ui.admin.synchronize.referential.ng.ReferentialSynchroUIHandler.doStartAction0(ReferentialSynchroUIHandler.java:116)
	at jaxx.runtime.swing.application.ActionWorker.doInBackground(ActionWorker.java:92)
	at javax.swing.SwingWorker$1.call(Unknown Source)
	at java.util.concurrent.FutureTask.run(Unknown Source)
	at javax.swing.SwingWorker.run(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)
Caused by: org.apache.http.MalformedChunkCodingException: Unexpected content at the end of chunk
	at org.apache.http.impl.io.ChunkedInputStream.getChunkSize(ChunkedInputStream.java:257)
	at org.apache.http.impl.io.ChunkedInputStream.nextChunk(ChunkedInputStream.java:225)
	at org.apache.http.impl.io.ChunkedInputStream.read(ChunkedInputStream.java:184)
	at org.apache.http.conn.EofSensorInputStream.read(EofSensorInputStream.java:137)
	at sun.nio.cs.StreamDecoder.readBytes(Unknown Source)
	at sun.nio.cs.StreamDecoder.implRead(Unknown Source)
	at sun.nio.cs.StreamDecoder.read(Unknown Source)
	at java.io.InputStreamReader.read(Unknown Source)
	at java.io.Reader.read(Unknown Source)
	at org.apache.commons.io.IOUtils.copyLarge(IOUtils.java:2369)
	at org.apache.commons.io.IOUtils.copyLarge(IOUtils.java:2348)
	at org.apache.commons.io.IOUtils.copy(IOUtils.java:2325)
	at org.apache.commons.io.IOUtils.copy(IOUtils.java:2273)
	at org.apache.commons.io.IOUtils.copy(IOUtils.java:2300)
	at fr.ird.observe.services.rest.http.ObserveResponseBuilder.consumeResponse(ObserveResponseBuilder.java:213)
	at fr.ird.observe.services.rest.http.ObserveResponseBuilder.executeRequest(ObserveResponseBuilder.java:187)
	at fr.ird.observe.services.rest.http.ObserveResponseBuilder.build(ObserveResponseBuilder.java:114)
	at fr.ird.observe.services.rest.ObserveServiceFactoryRest$RemoteInvocationHandler.invoke(ObserveServiceFactoryRest.java:248)
	... 12 more

java.lang.reflect.UndeclaredThrowableException
	at com.sun.proxy.$Proxy33.getReferentialReferenceSet(Unknown Source)
	at fr.ird.observe.services.service.actions.synchro.referential.diff.ReferentialSynchronizeDiffsEngine.getLeftReferentialReferenceSet(ReferentialSynchronizeDiffsEngine.java:72)
	at fr.ird.observe.application.swing.ui.admin.synchronize.referential.ng.tree.ReferentialSynchronizeTreeModelsBuilder.addFromLeft(ReferentialSynchronizeTreeModelsBuilder.java:131)
	at fr.ird.observe.application.swing.ui.admin.synchronize.referential.ng.tree.ReferentialSynchronizeTreeModelsBuilder.build(ReferentialSynchronizeTreeModelsBuilder.java:104)
	at fr.ird.observe.application.swing.ui.admin.synchronize.referential.ng.ReferentialSynchroUIHandler.doStartAction0(ReferentialSynchroUIHandler.java:116)
	at jaxx.runtime.swing.application.ActionWorker.doInBackground(ActionWorker.java:92)
	at javax.swing.SwingWorker$1.call(Unknown Source)
	at java.util.concurrent.FutureTask.run(Unknown Source)
	at javax.swing.SwingWorker.run(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)
Caused by: org.apache.http.MalformedChunkCodingException: Unexpected content at the end of chunk
	at org.apache.http.impl.io.ChunkedInputStream.getChunkSize(ChunkedInputStream.java:257)
	at org.apache.http.impl.io.ChunkedInputStream.nextChunk(ChunkedInputStream.java:225)
	at org.apache.http.impl.io.ChunkedInputStream.read(ChunkedInputStream.java:184)
	at org.apache.http.conn.EofSensorInputStream.read(EofSensorInputStream.java:137)
	at sun.nio.cs.StreamDecoder.readBytes(Unknown Source)
	at sun.nio.cs.StreamDecoder.implRead(Unknown Source)
	at sun.nio.cs.StreamDecoder.read(Unknown Source)
	at java.io.InputStreamReader.read(Unknown Source)
	at java.io.Reader.read(Unknown Source)
	at org.apache.commons.io.IOUtils.copyLarge(IOUtils.java:2369)
	at org.apache.commons.io.IOUtils.copyLarge(IOUtils.java:2348)
	at org.apache.commons.io.IOUtils.copy(IOUtils.java:2325)
	at org.apache.commons.io.IOUtils.copy(IOUtils.java:2273)
	at org.apache.commons.io.IOUtils.copy(IOUtils.java:2300)
	at fr.ird.observe.services.rest.http.ObserveResponseBuilder.consumeResponse(ObserveResponseBuilder.java:213)
	at fr.ird.observe.services.rest.http.ObserveResponseBuilder.executeRequest(ObserveResponseBuilder.java:187)
	at fr.ird.observe.services.rest.http.ObserveResponseBuilder.build(ObserveResponseBuilder.java:114)
	at fr.ird.observe.services.rest.ObserveServiceFactoryRest$RemoteInvocationHandler.invoke(ObserveServiceFactoryRest.java:248)
	... 12 more

	
	
	
	============================================================
	
	
	
	
	
	java.lang.reflect.UndeclaredThrowableException
	at com.sun.proxy.$Proxy25.getReferentialReferenceSet(Unknown Source)
	at fr.ird.observe.services.service.actions.synchro.referential.diff.ReferentialSynchronizeDiffsEngine.getLeftReferentialReferenceSet(ReferentialSynchronizeDiffsEngine.java:72)
	at fr.ird.observe.application.swing.ui.admin.synchronize.referential.ng.tree.ReferentialSynchronizeTreeModelsBuilder.addFromLeft(ReferentialSynchronizeTreeModelsBuilder.java:131)
	at fr.ird.observe.application.swing.ui.admin.synchronize.referential.ng.tree.ReferentialSynchronizeTreeModelsBuilder.build(ReferentialSynchronizeTreeModelsBuilder.java:104)
	at fr.ird.observe.application.swing.ui.admin.synchronize.referential.ng.ReferentialSynchroUIHandler.doStartAction0(ReferentialSynchroUIHandler.java:116)
	at jaxx.runtime.swing.application.ActionWorker.doInBackground(ActionWorker.java:92)
	at javax.swing.SwingWorker$1.call(Unknown Source)
	at java.util.concurrent.FutureTask.run(Unknown Source)
	at javax.swing.SwingWorker.run(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)
Caused by: org.apache.http.NoHttpResponseException: xxxxx.xxxxxxx.xxxx.fr:8080 failed to respond
	at org.apache.http.impl.conn.DefaultHttpResponseParser.parseHead(DefaultHttpResponseParser.java:143)
	at org.apache.http.impl.conn.DefaultHttpResponseParser.parseHead(DefaultHttpResponseParser.java:57)
	at org.apache.http.impl.io.AbstractMessageParser.parse(AbstractMessageParser.java:259)
	at org.apache.http.impl.DefaultBHttpClientConnection.receiveResponseHeader(DefaultBHttpClientConnection.java:163)
	at org.apache.http.impl.conn.CPoolProxy.receiveResponseHeader(CPoolProxy.java:167)
	at org.apache.http.protocol.HttpRequestExecutor.doReceiveResponse(HttpRequestExecutor.java:273)
	at org.apache.http.protocol.HttpRequestExecutor.execute(HttpRequestExecutor.java:125)
	at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:271)
	at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:184)
	at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:88)
	at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:110)
	at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:184)
	at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:82)
	at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:107)
	at fr.ird.observe.services.rest.http.ObserveResponseBuilder.executeRequest(ObserveResponseBuilder.java:346)
	at fr.ird.observe.services.rest.http.ObserveResponseBuilder.post0(ObserveResponseBuilder.java:294)
	at fr.ird.observe.services.rest.http.ObserveResponseBuilder.executeRequest(ObserveResponseBuilder.java:173)
	at fr.ird.observe.services.rest.http.ObserveResponseBuilder.build(ObserveResponseBuilder.java:114)
	at fr.ird.observe.services.rest.ObserveServiceFactoryRest$RemoteInvocationHandler.invoke(ObserveServiceFactoryRest.java:248)
	... 12 more

java.lang.reflect.UndeclaredThrowableException
	at com.sun.proxy.$Proxy25.getReferentialReferenceSet(Unknown Source)
	at fr.ird.observe.services.service.actions.synchro.referential.diff.ReferentialSynchronizeDiffsEngine.getLeftReferentialReferenceSet(ReferentialSynchronizeDiffsEngine.java:72)
	at fr.ird.observe.application.swing.ui.admin.synchronize.referential.ng.tree.ReferentialSynchronizeTreeModelsBuilder.addFromLeft(ReferentialSynchronizeTreeModelsBuilder.java:131)
	at fr.ird.observe.application.swing.ui.admin.synchronize.referential.ng.tree.ReferentialSynchronizeTreeModelsBuilder.build(ReferentialSynchronizeTreeModelsBuilder.java:104)
	at fr.ird.observe.application.swing.ui.admin.synchronize.referential.ng.ReferentialSynchroUIHandler.doStartAction0(ReferentialSynchroUIHandler.java:116)
	at jaxx.runtime.swing.application.ActionWorker.doInBackground(ActionWorker.java:92)
	at javax.swing.SwingWorker$1.call(Unknown Source)
	at java.util.concurrent.FutureTask.run(Unknown Source)
	at javax.swing.SwingWorker.run(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)
Caused by: org.apache.http.NoHttpResponseException: vmot5-proto.ird.fr:8080 failed to respond
	at org.apache.http.impl.conn.DefaultHttpResponseParser.parseHead(DefaultHttpResponseParser.java:143)
	at org.apache.http.impl.conn.DefaultHttpResponseParser.parseHead(DefaultHttpResponseParser.java:57)
	at org.apache.http.impl.io.AbstractMessageParser.parse(AbstractMessageParser.java:259)
	at org.apache.http.impl.DefaultBHttpClientConnection.receiveResponseHeader(DefaultBHttpClientConnection.java:163)
	at org.apache.http.impl.conn.CPoolProxy.receiveResponseHeader(CPoolProxy.java:167)
	at org.apache.http.protocol.HttpRequestExecutor.doReceiveResponse(HttpRequestExecutor.java:273)
	at org.apache.http.protocol.HttpRequestExecutor.execute(HttpRequestExecutor.java:125)
	at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:271)
	at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:184)
	at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:88)
	at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:110)
	at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:184)
	at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:82)
	at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:107)
	at fr.ird.observe.services.rest.http.ObserveResponseBuilder.executeRequest(ObserveResponseBuilder.java:346)
	at fr.ird.observe.services.rest.http.ObserveResponseBuilder.post0(ObserveResponseBuilder.java:294)
	at fr.ird.observe.services.rest.http.ObserveResponseBuilder.executeRequest(ObserveResponseBuilder.java:173)
	at fr.ird.observe.services.rest.http.ObserveResponseBuilder.build(ObserveResponseBuilder.java:114)
	at fr.ird.observe.services.rest.ObserveServiceFactoryRest$RemoteInvocationHandler.invoke(ObserveServiceFactoryRest.java:248)
	... 12 more

Constatée tchemit Anomalie Normal Foire aux anomalies persistence -
[UI][UTF-8] Mauvais affichage des caratères accentués (sous Windows 7) Sous Windows 7, depuis la v5, les acaractères accentués s'affichent mal (cf. PJ). Je n'ai pas testé sous Win 8 et 10, sur lesquels la gestion de l'UTF-8 est différente me semble-t-il. Pourriez-vous tester ? En attente commentaire Client pcauquil Anomalie Normal Foire aux anomalies gui -
[PS] Supprimer la colonne nontargetlength.gender Supprimer la colonne nontargetlength.gender Constatée tchemit Anomalie Normal Foire aux anomalies persistence -
[PS] Gestion correcte de l'exception 'Il existe plusieurs paramétrages possibles' Qu'il existe dans le référentiel deux paramétrages taille/poids possibles pour une même espèce/sexe/océan/période n'est pas normal, mais nous avons eu le cas. Lors d'une opération de calcul cela se manifeste par l'exception suivante :
Début des calculs pour la marée 05/09/2015 - 07/10/2015 - AVEL VOR - Koffi Yapo Jean Gauthier
Début des calculs pour l'activité 06:38 - Début de pêche (larguage du skiff)
fr.ird.observe.db.DataSourceException: fr.ird.observe.db.DataSourceException: Il existe plusieurs paramétrages possibles pour les données suivantes :
Espece     : SKJ - Katsuwonus pelamis - ancien code : SKJ
Ocean      : 1 - Atlantique
Sex       : 0 - Indéterminé
Date       : 2015-09-07
Paramétrages trouvés : 
 - Aucun - Atlantique - Katsuwonus pelamis - Relation Poids a * Math.pow(L, b)
 - Aucun - Atlantique - Katsuwonus pelamis - Relation Poids a * Math.pow(L, b)
	at fr.ird.observe.DataService.findLengthWeightParameter(DataService.java:960)
	at fr.ird.observe.ConsolidateDataService.updateLengthWeightAble(ConsolidateDataService.java:746)
	at fr.ird.observe.ConsolidateDataService.consolidateActivity(ConsolidateDataService.java:271)
	at fr.ird.observe.ConsolidateDataService.consolidateTrip(ConsolidateDataService.java:202)
	at fr.ird.observe.ui.admin.consolidate.ConsolidateUIHandler.doAction(ConsolidateUIHandler.java:157)
	at fr.ird.observe.ui.admin.consolidate.ConsolidateUIHandler$2.call(ConsolidateUIHandler.java:121)
	at fr.ird.observe.ui.admin.consolidate.ConsolidateUIHandler$2.call(ConsolidateUIHandler.java:118)
	at jaxx.runtime.swing.application.ActionWorker.doInBackground(ActionWorker.java:92)
	at javax.swing.SwingWorker$1.call(Unknown Source)
	at java.util.concurrent.FutureTask.run(Unknown Source)
	at javax.swing.SwingWorker.run(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)
Caused by: fr.ird.observe.db.DataSourceException: Il existe plusieurs paramétrages possibles pour les données suivantes :
Espece     : SKJ - Katsuwonus pelamis - ancien code : SKJ
Ocean      : 1 - Atlantique
Sex       : 0 - Indéterminé
Date       : 2015-09-07
Paramétrages trouvés : 
 - Aucun - Atlantique - Katsuwonus pelamis - Relation Poids a * Math.pow(L, b)
 - Aucun - Atlantique - Katsuwonus pelamis - Relation Poids a * Math.pow(L, b)
	at fr.ird.observe.DataService.findLengthWeightParameter(DataService.java:941)
	... 13 more

fr.ird.observe.db.DataSourceException: fr.ird.observe.db.DataSourceException: Il existe plusieurs paramétrages possibles pour les données suivantes :
Espece     : SKJ - Katsuwonus pelamis - ancien code : SKJ
Ocean      : 1 - Atlantique
Sex       : 0 - Indéterminé
Date       : 2015-09-07
Paramétrages trouvés : 
 - Aucun - Atlantique - Katsuwonus pelamis - Relation Poids a * Math.pow(L, b)
 - Aucun - Atlantique - Katsuwonus pelamis - Relation Poids a * Math.pow(L, b)
	at fr.ird.observe.DataService.findLengthWeightParameter(DataService.java:960)
	at fr.ird.observe.ConsolidateDataService.updateLengthWeightAble(ConsolidateDataService.java:746)
	at fr.ird.observe.ConsolidateDataService.consolidateActivity(ConsolidateDataService.java:271)
	at fr.ird.observe.ConsolidateDataService.consolidateTrip(ConsolidateDataService.java:202)
	at fr.ird.observe.ui.admin.consolidate.ConsolidateUIHandler.doAction(ConsolidateUIHandler.java:157)
	at fr.ird.observe.ui.admin.consolidate.ConsolidateUIHandler$2.call(ConsolidateUIHandler.java:121)
	at fr.ird.observe.ui.admin.consolidate.ConsolidateUIHandler$2.call(ConsolidateUIHandler.java:118)
	at jaxx.runtime.swing.application.ActionWorker.doInBackground(ActionWorker.java:92)
	at javax.swing.SwingWorker$1.call(Unknown Source)
	at java.util.concurrent.FutureTask.run(Unknown Source)
	at javax.swing.SwingWorker.run(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)
Caused by: fr.ird.observe.db.DataSourceException: Il existe plusieurs paramétrages possibles pour les données suivantes :
Espece     : SKJ - Katsuwonus pelamis - ancien code : SKJ
Ocean      : 1 - Atlantique
Sex       : 0 - Indéterminé
Date       : 2015-09-07
Paramétrages trouvés : 
 - Aucun - Atlantique - Katsuwonus pelamis - Relation Poids a * Math.pow(L, b)
 - Aucun - Atlantique - Katsuwonus pelamis - Relation Poids a * Math.pow(L, b)
	at fr.ird.observe.DataService.findLengthWeightParameter(DataService.java:941)
	... 13 more
Après cet événement l'application ralentit fortement, puis plante rapidement. *On souhaite que l'exception soit gérée, à savoir* : * ne pas faire ce calcul dont les paramètres sont ambigüs (mais faire tous les autres) * poursuivre le déroulement des opérations, fonctionner normalement
Constatée tchemit Anomalie Normal Foire aux anomalies - -
[SECURITE] Problème d'initialisation des droits avec l'assistant sécurité J'avais identifié une difficulté avec l'utilisation des fonctions PostGIS ici #7269 En réalité je constate que le souci semble plus général car nous n'arrivons pas à utiliser observe avec de nouveaux logins. Scénario : * Création d'un nouveau compte psabarros * Avec l'assistant sécurité, octroi du droit "technicien" à ce compte (écriture) * Impossible de se connecter avec cet utilisateur (voir PJ), l'assistant connexion signale que la version de la base n'est pas compatible avec l'appli. En réalité la version de la base est correcte, les utilisateurs historiques parviennent à l'utiliser correctement. Il semble plutôt que le nouveau compte n'ait pas accès à tms_version (qui se trouve dans le schéma public). Diagnostic en cours tchemit Anomalie Haut Foire aux anomalies persistence -
Exception en saisie LL Après une session de saisie de marée LL, dans les logs on trouve de nombreuses occurrences de cette erreur. Pour le moment nous n'avons pas plus d'informations.
08 déc. 2016 16:28:17  INFO [AWT-EventQueue-0] (fr.ird.observe.application.swing.ui.content.table.impl.longline.CatchLonglineUIHandler:214) saveBranchline - Saved modified branchline
08 déc. 2016 16:28:17  INFO [AWT-EventQueue-0] (fr.ird.observe.application.swing.ui.content.table.impl.longline.CatchLonglineUIHandler:231) saveBranchline - Time since contact: 289
08 déc. 2016 16:28:17  INFO [AWT-EventQueue-0] (fr.ird.observe.services.runner.ObserveServiceMainFactory:111) newService - New service created: fr.ird.observe.services.topia.service.longline.BranchlineServiceTopia@2e09e67d
08 déc. 2016 16:28:17  INFO [AWT-EventQueue-0] (fr.ird.observe.services.topia.ObserveServiceTopia:106) loadEntity - Load entity: fr.ird.observe.entities.longline.SetLongline#1481206275398#0.6889776607233415
08 déc. 2016 16:28:17  INFO [AWT-EventQueue-0] (fr.ird.observe.services.topia.ObserveServiceTopia:106) loadEntity - Load entity: fr.ird.observe.entities.longline.Branchline#1481206924590#0.5885324631566787
08 déc. 2016 16:28:17  INFO [AWT-EventQueue-0] (fr.ird.observe.ObserveTopiaPersistenceContext:95) updateLastUpdateDate - Change LastUpdateDate: Thu Dec 08 16:28:17 CET 2016 for entity type: fr.ird.observe.entities.longline.SetLongline
08 déc. 2016 16:28:17  INFO [AWT-EventQueue-0] (fr.ird.observe.ObserveTopiaPersistenceContext:95) updateLastUpdateDate - Change LastUpdateDate: Thu Dec 08 16:28:17 CET 2016 for entity type: fr.ird.observe.entities.longline.Branchline
08 déc. 2016 16:28:18  INFO [AWT-EventQueue-0] (fr.ird.observe.services.runner.ObserveServiceMainFactory:111) newService - New service created: fr.ird.observe.services.topia.service.longline.SetLonglineCatchServiceTopia@31629d69
08 déc. 2016 16:28:18  INFO [AWT-EventQueue-0] (fr.ird.observe.services.topia.ObserveServiceTopia:106) loadEntity - Load entity: fr.ird.observe.entities.longline.SetLongline#1481206275398#0.6889776607233415
08 déc. 2016 16:28:18 ERROR [AWT-EventQueue-0] (fr.ird.observe.services.topia.ObserveServiceFactoryTopia:245) invokeMethod - Error in method save
java.lang.reflect.InvocationTargetException
	at sun.reflect.GeneratedMethodAccessor214.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at fr.ird.observe.services.topia.ObserveServiceFactoryTopia$ObserveServiceInvocationHandler.invokeMethod(ObserveServiceFactoryTopia.java:242)
	at fr.ird.observe.services.topia.ObserveServiceFactoryTopia$ObserveServiceInvocationHandler.invokeMethodWithTransaction(ObserveServiceFactoryTopia.java:265)
	at fr.ird.observe.services.topia.ObserveServiceFactoryTopia$ObserveServiceInvocationHandler.invoke(ObserveServiceFactoryTopia.java:230)
	at com.sun.proxy.$Proxy31.save(Unknown Source)
	at fr.ird.observe.application.swing.ui.content.table.impl.longline.CatchLonglineUIHandler.doPersist(CatchLonglineUIHandler.java:612)
	at fr.ird.observe.application.swing.ui.content.table.impl.longline.CatchLonglineUIHandler.doPersist(CatchLonglineUIHandler.java:97)
	at fr.ird.observe.application.swing.ui.content.table.ContentTableUIHandler.doSave(ContentTableUIHandler.java:360)
	at fr.ird.observe.application.swing.ui.content.ContentUIHandler.saveUI(ContentUIHandler.java:443)
	at fr.ird.observe.application.swing.ui.content.ContentUI.save(ContentUI.java:192)
	at fr.ird.observe.application.swing.ui.actions.shared.SaveEditUIAction.lambda$actionPerformed$0(SaveEditUIAction.java:66)
	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756)
	at java.awt.EventQueue.access$500(EventQueue.java:97)
	at java.awt.EventQueue$3.run(EventQueue.java:709)
	at java.awt.EventQueue$3.run(EventQueue.java:703)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:726)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
Caused by: org.nuiton.topia.persistence.TopiaQueryException: unable to find page startIndex=0, endIndex=1
	at org.nuiton.topia.persistence.internal.support.HibernateTopiaJpaSupport.find0(HibernateTopiaJpaSupport.java:219)
	at org.nuiton.topia.persistence.internal.support.HibernateTopiaJpaSupport.findUnique(HibernateTopiaJpaSupport.java:168)
	at org.nuiton.topia.persistence.internal.AbstractTopiaDao.findUniqueOrNull(AbstractTopiaDao.java:503)
	at org.nuiton.topia.persistence.internal.AbstractTopiaDao.tryFindUnique(AbstractTopiaDao.java:495)
	at org.nuiton.topia.persistence.internal.AbstractTopiaDao$InnerTopiaQueryBuilderRunQueryStep.tryFindUnique(AbstractTopiaDao.java:1164)
	at org.nuiton.topia.persistence.internal.AbstractTopiaDao$InnerTopiaQueryBuilderAddCriteriaOrRunQueryStep.tryFindUnique(AbstractTopiaDao.java:1025)
	at fr.ird.observe.ObserveTopiaPersistenceContext.updateLastUpdateDate(ObserveTopiaPersistenceContext.java:80)
	at fr.ird.observe.ObserveTopiaPersistenceContext.updateLastUpdateDate(ObserveTopiaPersistenceContext.java:72)
	at fr.ird.observe.services.topia.ObserveServiceTopia.saveEntity(ObserveServiceTopia.java:164)
	at fr.ird.observe.services.topia.service.longline.SetLonglineCatchServiceTopia.save(SetLonglineCatchServiceTopia.java:78)
	... 27 more
Caused by: org.hibernate.NonUniqueObjectException: A different object with the same identifier value was already associated with the session : [fr.ird.observe.entities.longline.SizeMeasureImpl#fr.ird.observe.entities.longline.SizeMeasure#1481210752978#0.6644814268078247]
	at org.hibernate.engine.internal.StatefulPersistenceContext.checkUniqueness(StatefulPersistenceContext.java:618)
	at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.performUpdate(DefaultSaveOrUpdateEventListener.java:301)
	at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.entityIsDetached(DefaultSaveOrUpdateEventListener.java:244)
	at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.performSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:109)
	at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:90)
	at org.hibernate.internal.SessionImpl.fireSaveOrUpdate(SessionImpl.java:684)
	at org.hibernate.internal.SessionImpl.saveOrUpdate(SessionImpl.java:676)
	at org.hibernate.engine.spi.CascadingActions$5.cascade(CascadingActions.java:235)
	at org.hibernate.engine.internal.Cascade.cascadeToOne(Cascade.java:350)
	at org.hibernate.engine.internal.Cascade.cascadeAssociation(Cascade.java:293)
	at org.hibernate.engine.internal.Cascade.cascadeProperty(Cascade.java:161)
	at org.hibernate.engine.internal.Cascade.cascadeCollectionElements(Cascade.java:379)
	at org.hibernate.engine.internal.Cascade.cascadeCollection(Cascade.java:319)
	at org.hibernate.engine.internal.Cascade.cascadeAssociation(Cascade.java:296)
	at org.hibernate.engine.internal.Cascade.cascadeProperty(Cascade.java:161)
	at org.hibernate.engine.internal.Cascade.cascade(Cascade.java:118)
	at org.hibernate.event.internal.AbstractFlushingEventListener.cascadeOnFlush(AbstractFlushingEventListener.java:167)
	at org.hibernate.event.internal.AbstractFlushingEventListener.prepareEntityFlushes(AbstractFlushingEventListener.java:158)
	at org.hibernate.event.internal.AbstractFlushingEventListener.flushEverythingToExecutions(AbstractFlushingEventListener.java:91)
	at org.hibernate.event.internal.DefaultAutoFlushEventListener.onAutoFlush(DefaultAutoFlushEventListener.java:61)
	at org.hibernate.internal.SessionImpl.autoFlushIfRequired(SessionImpl.java:1227)
	at org.hibernate.internal.SessionImpl.list(SessionImpl.java:1293)
	at org.hibernate.internal.QueryImpl.list(QueryImpl.java:103)
	at org.nuiton.topia.persistence.internal.support.HibernateTopiaJpaSupport.find0(HibernateTopiaJpaSupport.java:207)
	... 36 more
08 déc. 2016 16:28:18 ERROR [AWT-EventQueue-0] (fr.ird.observe.application.swing.ui.UIHelper:519) handlingError - unable to find page startIndex=0, endIndex=1
org.nuiton.topia.persistence.TopiaQueryException: unable to find page startIndex=0, endIndex=1
	at org.nuiton.topia.persistence.internal.support.HibernateTopiaJpaSupport.find0(HibernateTopiaJpaSupport.java:219)
	at org.nuiton.topia.persistence.internal.support.HibernateTopiaJpaSupport.findUnique(HibernateTopiaJpaSupport.java:168)
	at org.nuiton.topia.persistence.internal.AbstractTopiaDao.findUniqueOrNull(AbstractTopiaDao.java:503)
	at org.nuiton.topia.persistence.internal.AbstractTopiaDao.tryFindUnique(AbstractTopiaDao.java:495)
	at org.nuiton.topia.persistence.internal.AbstractTopiaDao$InnerTopiaQueryBuilderRunQueryStep.tryFindUnique(AbstractTopiaDao.java:1164)
	at org.nuiton.topia.persistence.internal.AbstractTopiaDao$InnerTopiaQueryBuilderAddCriteriaOrRunQueryStep.tryFindUnique(AbstractTopiaDao.java:1025)
	at fr.ird.observe.ObserveTopiaPersistenceContext.updateLastUpdateDate(ObserveTopiaPersistenceContext.java:80)
	at fr.ird.observe.ObserveTopiaPersistenceContext.updateLastUpdateDate(ObserveTopiaPersistenceContext.java:72)
	at fr.ird.observe.services.topia.ObserveServiceTopia.saveEntity(ObserveServiceTopia.java:164)
	at fr.ird.observe.services.topia.service.longline.SetLonglineCatchServiceTopia.save(SetLonglineCatchServiceTopia.java:78)
	at sun.reflect.GeneratedMethodAccessor214.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at fr.ird.observe.services.topia.ObserveServiceFactoryTopia$ObserveServiceInvocationHandler.invokeMethod(ObserveServiceFactoryTopia.java:242)
	at fr.ird.observe.services.topia.ObserveServiceFactoryTopia$ObserveServiceInvocationHandler.invokeMethodWithTransaction(ObserveServiceFactoryTopia.java:265)
	at fr.ird.observe.services.topia.ObserveServiceFactoryTopia$ObserveServiceInvocationHandler.invoke(ObserveServiceFactoryTopia.java:230)
	at com.sun.proxy.$Proxy31.save(Unknown Source)
	at fr.ird.observe.application.swing.ui.content.table.impl.longline.CatchLonglineUIHandler.doPersist(CatchLonglineUIHandler.java:612)
	at fr.ird.observe.application.swing.ui.content.table.impl.longline.CatchLonglineUIHandler.doPersist(CatchLonglineUIHandler.java:97)
	at fr.ird.observe.application.swing.ui.content.table.ContentTableUIHandler.doSave(ContentTableUIHandler.java:360)
	at fr.ird.observe.application.swing.ui.content.ContentUIHandler.saveUI(ContentUIHandler.java:443)
	at fr.ird.observe.application.swing.ui.content.ContentUI.save(ContentUI.java:192)
	at fr.ird.observe.application.swing.ui.actions.shared.SaveEditUIAction.lambda$actionPerformed$0(SaveEditUIAction.java:66)
	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756)
	at java.awt.EventQueue.access$500(EventQueue.java:97)
	at java.awt.EventQueue$3.run(EventQueue.java:709)
	at java.awt.EventQueue$3.run(EventQueue.java:703)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:726)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
Caused by: org.hibernate.NonUniqueObjectException: A different object with the same identifier value was already associated with the session : [fr.ird.observe.entities.longline.SizeMeasureImpl#fr.ird.observe.entities.longline.SizeMeasure#1481210752978#0.6644814268078247]
	at org.hibernate.engine.internal.StatefulPersistenceContext.checkUniqueness(StatefulPersistenceContext.java:618)
	at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.performUpdate(DefaultSaveOrUpdateEventListener.java:301)
	at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.entityIsDetached(DefaultSaveOrUpdateEventListener.java:244)
	at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.performSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:109)
	at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:90)
	at org.hibernate.internal.SessionImpl.fireSaveOrUpdate(SessionImpl.java:684)
	at org.hibernate.internal.SessionImpl.saveOrUpdate(SessionImpl.java:676)
	at org.hibernate.engine.spi.CascadingActions$5.cascade(CascadingActions.java:235)
	at org.hibernate.engine.internal.Cascade.cascadeToOne(Cascade.java:350)
	at org.hibernate.engine.internal.Cascade.cascadeAssociation(Cascade.java:293)
	at org.hibernate.engine.internal.Cascade.cascadeProperty(Cascade.java:161)
	at org.hibernate.engine.internal.Cascade.cascadeCollectionElements(Cascade.java:379)
	at org.hibernate.engine.internal.Cascade.cascadeCollection(Cascade.java:319)
	at org.hibernate.engine.internal.Cascade.cascadeAssociation(Cascade.java:296)
	at org.hibernate.engine.internal.Cascade.cascadeProperty(Cascade.java:161)
	at org.hibernate.engine.internal.Cascade.cascade(Cascade.java:118)
	at org.hibernate.event.internal.AbstractFlushingEventListener.cascadeOnFlush(AbstractFlushingEventListener.java:167)
	at org.hibernate.event.internal.AbstractFlushingEventListener.prepareEntityFlushes(AbstractFlushingEventListener.java:158)
	at org.hibernate.event.internal.AbstractFlushingEventListener.flushEverythingToExecutions(AbstractFlushingEventListener.java:91)
	at org.hibernate.event.internal.DefaultAutoFlushEventListener.onAutoFlush(DefaultAutoFlushEventListener.java:61)
	at org.hibernate.internal.SessionImpl.autoFlushIfRequired(SessionImpl.java:1227)
	at org.hibernate.internal.SessionImpl.list(SessionImpl.java:1293)
	at org.hibernate.internal.QueryImpl.list(QueryImpl.java:103)
	at org.nuiton.topia.persistence.internal.support.HibernateTopiaJpaSupport.find0(HibernateTopiaJpaSupport.java:207)
	... 36 more
08 déc. 2016 16:28:25  INFO [AWT-EventQueue-0] (fr.ird.observe.services.runner.ObserveServiceMainFactory:111) newService - New service created: fr.ird.observe.services.topia.service.longline.SetLonglineCatchServiceTopia@5bac8811
08 déc. 2016 16:28:25  INFO [AWT-EventQueue-0] (fr.ird.observe.services.topia.ObserveServiceTopia:106) loadEntity - Load entity: fr.ird.observe.entities.longline.SetLongline#1481206275398#0.6889776607233415
08 déc. 2016 16:28:25 ERROR [AWT-EventQueue-0] (fr.ird.observe.services.topia.ObserveServiceFactoryTopia:245) invokeMethod - Error in method save
java.lang.reflect.InvocationTargetException
	at sun.reflect.GeneratedMethodAccessor214.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at fr.ird.observe.services.topia.ObserveServiceFactoryTopia$ObserveServiceInvocationHandler.invokeMethod(ObserveServiceFactoryTopia.java:242)
	at fr.ird.observe.services.topia.ObserveServiceFactoryTopia$ObserveServiceInvocationHandler.invokeMethodWithTransaction(ObserveServiceFactoryTopia.java:265)
	at fr.ird.observe.services.topia.ObserveServiceFactoryTopia$ObserveServiceInvocationHandler.invoke(ObserveServiceFactoryTopia.java:230)
	at com.sun.proxy.$Proxy31.save(Unknown Source)
	at fr.ird.observe.application.swing.ui.content.table.impl.longline.CatchLonglineUIHandler.doPersist(CatchLonglineUIHandler.java:612)
	at fr.ird.observe.application.swing.ui.content.table.impl.longline.CatchLonglineUIHandler.doPersist(CatchLonglineUIHandler.java:97)
	at fr.ird.observe.application.swing.ui.content.table.ContentTableUIHandler.doSave(ContentTableUIHandler.java:360)
	at fr.ird.observe.application.swing.ui.content.ContentUIHandler.saveUI(ContentUIHandler.java:443)
	at fr.ird.observe.application.swing.ui.content.ContentUI.save(ContentUI.java:192)
	at fr.ird.observe.application.swing.ui.actions.shared.SaveEditUIAction.lambda$actionPerformed$0(SaveEditUIAction.java:66)
	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756)
	at java.awt.EventQueue.access$500(EventQueue.java:97)
	at java.awt.EventQueue$3.run(EventQueue.java:709)
	at java.awt.EventQueue$3.run(EventQueue.java:703)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:726)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
Caused by: org.nuiton.topia.persistence.TopiaQueryException: unable to find page startIndex=0, endIndex=1
	at org.nuiton.topia.persistence.internal.support.HibernateTopiaJpaSupport.find0(HibernateTopiaJpaSupport.java:219)
	at org.nuiton.topia.persistence.internal.support.HibernateTopiaJpaSupport.findUnique(HibernateTopiaJpaSupport.java:168)
	at org.nuiton.topia.persistence.internal.AbstractTopiaDao.findUniqueOrNull(AbstractTopiaDao.java:503)
	at org.nuiton.topia.persistence.internal.AbstractTopiaDao.tryFindUnique(AbstractTopiaDao.java:495)
	at org.nuiton.topia.persistence.internal.AbstractTopiaDao$InnerTopiaQueryBuilderRunQueryStep.tryFindUnique(AbstractTopiaDao.java:1164)
	at org.nuiton.topia.persistence.internal.AbstractTopiaDao$InnerTopiaQueryBuilderAddCriteriaOrRunQueryStep.tryFindUnique(AbstractTopiaDao.java:1025)
	at fr.ird.observe.ObserveTopiaPersistenceContext.updateLastUpdateDate(ObserveTopiaPersistenceContext.java:80)
	at fr.ird.observe.ObserveTopiaPersistenceContext.updateLastUpdateDate(ObserveTopiaPersistenceContext.java:72)
	at fr.ird.observe.services.topia.ObserveServiceTopia.saveEntity(ObserveServiceTopia.java:164)
	at fr.ird.observe.services.topia.service.longline.SetLonglineCatchServiceTopia.save(SetLonglineCatchServiceTopia.java:78)
	... 27 more
Caused by: org.hibernate.NonUniqueObjectException: A different object with the same identifier value was already associated with the session : [fr.ird.observe.entities.longline.SizeMeasureImpl#fr.ird.observe.entities.longline.SizeMeasure#1481210752978#0.6644814268078247]
	at org.hibernate.engine.internal.StatefulPersistenceContext.checkUniqueness(StatefulPersistenceContext.java:618)
	at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.performUpdate(DefaultSaveOrUpdateEventListener.java:301)
	at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.entityIsDetached(DefaultSaveOrUpdateEventListener.java:244)
	at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.performSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:109)
	at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:90)
	at org.hibernate.internal.SessionImpl.fireSaveOrUpdate(SessionImpl.java:684)
	at org.hibernate.internal.SessionImpl.saveOrUpdate(SessionImpl.java:676)
	at org.hibernate.engine.spi.CascadingActions$5.cascade(CascadingActions.java:235)
	at org.hibernate.engine.internal.Cascade.cascadeToOne(Cascade.java:350)
	at org.hibernate.engine.internal.Cascade.cascadeAssociation(Cascade.java:293)
	at org.hibernate.engine.internal.Cascade.cascadeProperty(Cascade.java:161)
	at org.hibernate.engine.internal.Cascade.cascadeCollectionElements(Cascade.java:379)
	at org.hibernate.engine.internal.Cascade.cascadeCollection(Cascade.java:319)
	at org.hibernate.engine.internal.Cascade.cascadeAssociation(Cascade.java:296)
	at org.hibernate.engine.internal.Cascade.cascadeProperty(Cascade.java:161)
	at org.hibernate.engine.internal.Cascade.cascade(Cascade.java:118)
	at org.hibernate.event.internal.AbstractFlushingEventListener.cascadeOnFlush(AbstractFlushingEventListener.java:167)
	at org.hibernate.event.internal.AbstractFlushingEventListener.prepareEntityFlushes(AbstractFlushingEventListener.java:158)
	at org.hibernate.event.internal.AbstractFlushingEventListener.flushEverythingToExecutions(AbstractFlushingEventListener.java:91)
	at org.hibernate.event.internal.DefaultAutoFlushEventListener.onAutoFlush(DefaultAutoFlushEventListener.java:61)
	at org.hibernate.internal.SessionImpl.autoFlushIfRequired(SessionImpl.java:1227)
	at org.hibernate.internal.SessionImpl.list(SessionImpl.java:1293)
	at org.hibernate.internal.QueryImpl.list(QueryImpl.java:103)
	at org.nuiton.topia.persistence.internal.support.HibernateTopiaJpaSupport.find0(HibernateTopiaJpaSupport.java:207)
	... 36 more
08 déc. 2016 16:28:25 ERROR [AWT-EventQueue-0] (fr.ird.observe.application.swing.ui.UIHelper:519) handlingError - unable to find page startIndex=0, endIndex=1
org.nuiton.topia.persistence.TopiaQueryException: unable to find page startIndex=0, endIndex=1
	at org.nuiton.topia.persistence.internal.support.HibernateTopiaJpaSupport.find0(HibernateTopiaJpaSupport.java:219)
	at org.nuiton.topia.persistence.internal.support.HibernateTopiaJpaSupport.findUnique(HibernateTopiaJpaSupport.java:168)
	at org.nuiton.topia.persistence.internal.AbstractTopiaDao.findUniqueOrNull(AbstractTopiaDao.java:503)
	at org.nuiton.topia.persistence.internal.AbstractTopiaDao.tryFindUnique(AbstractTopiaDao.java:495)
	at org.nuiton.topia.persistence.internal.AbstractTopiaDao$InnerTopiaQueryBuilderRunQueryStep.tryFindUnique(AbstractTopiaDao.java:1164)
	at org.nuiton.topia.persistence.internal.AbstractTopiaDao$InnerTopiaQueryBuilderAddCriteriaOrRunQueryStep.tryFindUnique(AbstractTopiaDao.java:1025)
	at fr.ird.observe.ObserveTopiaPersistenceContext.updateLastUpdateDate(ObserveTopiaPersistenceContext.java:80)
	at fr.ird.observe.ObserveTopiaPersistenceContext.updateLastUpdateDate(ObserveTopiaPersistenceContext.java:72)
	at fr.ird.observe.services.topia.ObserveServiceTopia.saveEntity(ObserveServiceTopia.java:164)
	at fr.ird.observe.services.topia.service.longline.SetLonglineCatchServiceTopia.save(SetLonglineCatchServiceTopia.java:78)
	at sun.reflect.GeneratedMethodAccessor214.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at fr.ird.observe.services.topia.ObserveServiceFactoryTopia$ObserveServiceInvocationHandler.invokeMethod(ObserveServiceFactoryTopia.java:242)
	at fr.ird.observe.services.topia.ObserveServiceFactoryTopia$ObserveServiceInvocationHandler.invokeMethodWithTransaction(ObserveServiceFactoryTopia.java:265)
	at fr.ird.observe.services.topia.ObserveServiceFactoryTopia$ObserveServiceInvocationHandler.invoke(ObserveServiceFactoryTopia.java:230)
	at com.sun.proxy.$Proxy31.save(Unknown Source)
	at fr.ird.observe.application.swing.ui.content.table.impl.longline.CatchLonglineUIHandler.doPersist(CatchLonglineUIHandler.java:612)
	at fr.ird.observe.application.swing.ui.content.table.impl.longline.CatchLonglineUIHandler.doPersist(CatchLonglineUIHandler.java:97)
	at fr.ird.observe.application.swing.ui.content.table.ContentTableUIHandler.doSave(ContentTableUIHandler.java:360)
	at fr.ird.observe.application.swing.ui.content.ContentUIHandler.saveUI(ContentUIHandler.java:443)
	at fr.ird.observe.application.swing.ui.content.ContentUI.save(ContentUI.java:192)
	at fr.ird.observe.application.swing.ui.actions.shared.SaveEditUIAction.lambda$actionPerformed$0(SaveEditUIAction.java:66)
	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756)
	at java.awt.EventQueue.access$500(EventQueue.java:97)
	at java.awt.EventQueue$3.run(EventQueue.java:709)
	at java.awt.EventQueue$3.run(EventQueue.java:703)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:726)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
Caused by: org.hibernate.NonUniqueObjectException: A different object with the same identifier value was already associated with the session : [fr.ird.observe.entities.longline.SizeMeasureImpl#fr.ird.observe.entities.longline.SizeMeasure#1481210752978#0.6644814268078247]
	at org.hibernate.engine.internal.StatefulPersistenceContext.checkUniqueness(StatefulPersistenceContext.java:618)
	at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.performUpdate(DefaultSaveOrUpdateEventListener.java:301)
	at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.entityIsDetached(DefaultSaveOrUpdateEventListener.java:244)
	at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.performSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:109)
	at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:90)
	at org.hibernate.internal.SessionImpl.fireSaveOrUpdate(SessionImpl.java:684)
	at org.hibernate.internal.SessionImpl.saveOrUpdate(SessionImpl.java:676)
	at org.hibernate.engine.spi.CascadingActions$5.cascade(CascadingActions.java:235)
	at org.hibernate.engine.internal.Cascade.cascadeToOne(Cascade.java:350)
	at org.hibernate.engine.internal.Cascade.cascadeAssociation(Cascade.java:293)
	at org.hibernate.engine.internal.Cascade.cascadeProperty(Cascade.java:161)
	at org.hibernate.engine.internal.Cascade.cascadeCollectionElements(Cascade.java:379)
	at org.hibernate.engine.internal.Cascade.cascadeCollection(Cascade.java:319)
	at org.hibernate.engine.internal.Cascade.cascadeAssociation(Cascade.java:296)
	at org.hibernate.engine.internal.Cascade.cascadeProperty(Cascade.java:161)
	at org.hibernate.engine.internal.Cascade.cascade(Cascade.java:118)
	at org.hibernate.event.internal.AbstractFlushingEventListener.cascadeOnFlush(AbstractFlushingEventListener.java:167)
	at org.hibernate.event.internal.AbstractFlushingEventListener.prepareEntityFlushes(AbstractFlushingEventListener.java:158)
	at org.hibernate.event.internal.AbstractFlushingEventListener.flushEverythingToExecutions(AbstractFlushingEventListener.java:91)
	at org.hibernate.event.internal.DefaultAutoFlushEventListener.onAutoFlush(DefaultAutoFlushEventListener.java:61)
	at org.hibernate.internal.SessionImpl.autoFlushIfRequired(SessionImpl.java:1227)
	at org.hibernate.internal.SessionImpl.list(SessionImpl.java:1293)
	at org.hibernate.internal.QueryImpl.list(QueryImpl.java:103)
	at org.nuiton.topia.persistence.internal.support.HibernateTopiaJpaSupport.find0(HibernateTopiaJpaSupport.java:207)
	... 36 more
08 déc. 2016 16:28:30  INFO [AWT-EventQueue-0] (fr.ird.observe.application.swing.ui.content.table.impl.longline.CatchLonglineUIHandler:214) saveBranchline - Saved modified branchline
08 déc. 2016 16:28:30  INFO [AWT-EventQueue-0] (fr.ird.observe.application.swing.ui.content.table.impl.longline.CatchLonglineUIHandler:231) saveBranchline - Time since contact: null
08 déc. 2016 16:28:30  INFO [AWT-EventQueue-0] (fr.ird.observe.services.runner.ObserveServiceMainFactory:111) newService - New service created: fr.ird.observe.services.topia.service.longline.BranchlineServiceTopia@2a0b564c
08 déc. 2016 16:28:30  INFO [AWT-EventQueue-0] (fr.ird.observe.services.topia.ObserveServiceTopia:106) loadEntity - Load entity: fr.ird.observe.entities.longline.SetLongline#1481206275398#0.6889776607233415
08 déc. 2016 16:28:30  INFO [AWT-EventQueue-0] (fr.ird.observe.services.topia.ObserveServiceTopia:106) loadEntity - Load entity: fr.ird.observe.entities.longline.Branchline#1481206924590#0.5885324631566787
08 déc. 2016 16:28:30  INFO [AWT-EventQueue-0] (fr.ird.observe.ObserveTopiaPersistenceContext:95) updateLastUpdateDate - Change LastUpdateDate: Thu Dec 08 16:28:30 CET 2016 for entity type: fr.ird.observe.entities.longline.SetLongline
08 déc. 2016 16:28:30  INFO [AWT-EventQueue-0] (fr.ird.observe.ObserveTopiaPersistenceContext:95) updateLastUpdateDate - Change LastUpdateDate: Thu Dec 08 16:28:30 CET 2016 for entity type: fr.ird.observe.entities.longline.Branchline
08 déc. 2016 16:28:31  INFO [AWT-EventQueue-0] (fr.ird.observe.services.runner.ObserveServiceMainFactory:111) newService - New service created: fr.ird.observe.services.topia.service.longline.SetLonglineCatchServiceTopia@176bfd8e
08 déc. 2016 16:28:31  INFO [AWT-EventQueue-0] (fr.ird.observe.services.topia.ObserveServiceTopia:106) loadEntity - Load entity: fr.ird.observe.entities.longline.SetLongline#1481206275398#0.6889776607233415
08 déc. 2016 16:28:31 ERROR [AWT-EventQueue-0] (fr.ird.observe.services.topia.ObserveServiceFactoryTopia:245) invokeMethod - Error in method save
java.lang.reflect.InvocationTargetException
	at sun.reflect.GeneratedMethodAccessor214.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at fr.ird.observe.services.topia.ObserveServiceFactoryTopia$ObserveServiceInvocationHandler.invokeMethod(ObserveServiceFactoryTopia.java:242)
	at fr.ird.observe.services.topia.ObserveServiceFactoryTopia$ObserveServiceInvocationHandler.invokeMethodWithTransaction(ObserveServiceFactoryTopia.java:265)
	at fr.ird.observe.services.topia.ObserveServiceFactoryTopia$ObserveServiceInvocationHandler.invoke(ObserveServiceFactoryTopia.java:230)
	at com.sun.proxy.$Proxy31.save(Unknown Source)
	at fr.ird.observe.application.swing.ui.content.table.impl.longline.CatchLonglineUIHandler.doPersist(CatchLonglineUIHandler.java:612)
	at fr.ird.observe.application.swing.ui.content.table.impl.longline.CatchLonglineUIHandler.doPersist(CatchLonglineUIHandler.java:97)
	at fr.ird.observe.application.swing.ui.content.table.ContentTableUIHandler.doSave(ContentTableUIHandler.java:360)
	at fr.ird.observe.application.swing.ui.content.ContentUIHandler.saveUI(ContentUIHandler.java:443)
	at fr.ird.observe.application.swing.ui.content.ContentUI.save(ContentUI.java:192)
	at fr.ird.observe.application.swing.ui.actions.shared.SaveEditUIAction.lambda$actionPerformed$0(SaveEditUIAction.java:66)
	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756)
	at java.awt.EventQueue.access$500(EventQueue.java:97)
	at java.awt.EventQueue$3.run(EventQueue.java:709)
	at java.awt.EventQueue$3.run(EventQueue.java:703)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:726)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
Caused by: org.nuiton.topia.persistence.TopiaQueryException: unable to find page startIndex=0, endIndex=1
	at org.nuiton.topia.persistence.internal.support.HibernateTopiaJpaSupport.find0(HibernateTopiaJpaSupport.java:219)
	at org.nuiton.topia.persistence.internal.support.HibernateTopiaJpaSupport.findUnique(HibernateTopiaJpaSupport.java:168)
	at org.nuiton.topia.persistence.internal.AbstractTopiaDao.findUniqueOrNull(AbstractTopiaDao.java:503)
	at org.nuiton.topia.persistence.internal.AbstractTopiaDao.tryFindUnique(AbstractTopiaDao.java:495)
	at org.nuiton.topia.persistence.internal.AbstractTopiaDao$InnerTopiaQueryBuilderRunQueryStep.tryFindUnique(AbstractTopiaDao.java:1164)
	at org.nuiton.topia.persistence.internal.AbstractTopiaDao$InnerTopiaQueryBuilderAddCriteriaOrRunQueryStep.tryFindUnique(AbstractTopiaDao.java:1025)
	at fr.ird.observe.ObserveTopiaPersistenceContext.updateLastUpdateDate(ObserveTopiaPersistenceContext.java:80)
	at fr.ird.observe.ObserveTopiaPersistenceContext.updateLastUpdateDate(ObserveTopiaPersistenceContext.java:72)
	at fr.ird.observe.services.topia.ObserveServiceTopia.saveEntity(ObserveServiceTopia.java:164)
	at fr.ird.observe.services.topia.service.longline.SetLonglineCatchServiceTopia.save(SetLonglineCatchServiceTopia.java:78)
	... 27 more
Caused by: org.hibernate.NonUniqueObjectException: A different object with the same identifier value was already associated with the session : [fr.ird.observe.entities.longline.SizeMeasureImpl#fr.ird.observe.entities.longline.SizeMeasure#1481210752978#0.6644814268078247]
	at org.hibernate.engine.internal.StatefulPersistenceContext.checkUniqueness(StatefulPersistenceContext.java:618)
	at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.performUpdate(DefaultSaveOrUpdateEventListener.java:301)
	at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.entityIsDetached(DefaultSaveOrUpdateEventListener.java:244)
	at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.performSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:109)
	at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:90)
	at org.hibernate.internal.SessionImpl.fireSaveOrUpdate(SessionImpl.java:684)
	at org.hibernate.internal.SessionImpl.saveOrUpdate(SessionImpl.java:676)
	at org.hibernate.engine.spi.CascadingActions$5.cascade(CascadingActions.java:235)
	at org.hibernate.engine.internal.Cascade.cascadeToOne(Cascade.java:350)
	at org.hibernate.engine.internal.Cascade.cascadeAssociation(Cascade.java:293)
	at org.hibernate.engine.internal.Cascade.cascadeProperty(Cascade.java:161)
	at org.hibernate.engine.internal.Cascade.cascadeCollectionElements(Cascade.java:379)
	at org.hibernate.engine.internal.Cascade.cascadeCollection(Cascade.java:319)
	at org.hibernate.engine.internal.Cascade.cascadeAssociation(Cascade.java:296)
	at org.hibernate.engine.internal.Cascade.cascadeProperty(Cascade.java:161)
	at org.hibernate.engine.internal.Cascade.cascade(Cascade.java:118)
	at org.hibernate.event.internal.AbstractFlushingEventListener.cascadeOnFlush(AbstractFlushingEventListener.java:167)
	at org.hibernate.event.internal.AbstractFlushingEventListener.prepareEntityFlushes(AbstractFlushingEventListener.java:158)
	at org.hibernate.event.internal.AbstractFlushingEventListener.flushEverythingToExecutions(AbstractFlushingEventListener.java:91)
	at org.hibernate.event.internal.DefaultAutoFlushEventListener.onAutoFlush(DefaultAutoFlushEventListener.java:61)
	at org.hibernate.internal.SessionImpl.autoFlushIfRequired(SessionImpl.java:1227)
	at org.hibernate.internal.SessionImpl.list(SessionImpl.java:1293)
	at org.hibernate.internal.QueryImpl.list(QueryImpl.java:103)
	at org.nuiton.topia.persistence.internal.support.HibernateTopiaJpaSupport.find0(HibernateTopiaJpaSupport.java:207)
	... 36 more
08 déc. 2016 16:28:31 ERROR [AWT-EventQueue-0] (fr.ird.observe.application.swing.ui.UIHelper:519) handlingError - unable to find page startIndex=0, endIndex=1
org.nuiton.topia.persistence.TopiaQueryException: unable to find page startIndex=0, endIndex=1
	at org.nuiton.topia.persistence.internal.support.HibernateTopiaJpaSupport.find0(HibernateTopiaJpaSupport.java:219)
	at org.nuiton.topia.persistence.internal.support.HibernateTopiaJpaSupport.findUnique(HibernateTopiaJpaSupport.java:168)
	at org.nuiton.topia.persistence.internal.AbstractTopiaDao.findUniqueOrNull(AbstractTopiaDao.java:503)
	at org.nuiton.topia.persistence.internal.AbstractTopiaDao.tryFindUnique(AbstractTopiaDao.java:495)
	at org.nuiton.topia.persistence.internal.AbstractTopiaDao$InnerTopiaQueryBuilderRunQueryStep.tryFindUnique(AbstractTopiaDao.java:1164)
	at org.nuiton.topia.persistence.internal.AbstractTopiaDao$InnerTopiaQueryBuilderAddCriteriaOrRunQueryStep.tryFindUnique(AbstractTopiaDao.java:1025)
	at fr.ird.observe.ObserveTopiaPersistenceContext.updateLastUpdateDate(ObserveTopiaPersistenceContext.java:80)
	at fr.ird.observe.ObserveTopiaPersistenceContext.updateLastUpdateDate(ObserveTopiaPersistenceContext.java:72)
	at fr.ird.observe.services.topia.ObserveServiceTopia.saveEntity(ObserveServiceTopia.java:164)
	at fr.ird.observe.services.topia.service.longline.SetLonglineCatchServiceTopia.save(SetLonglineCatchServiceTopia.java:78)
	at sun.reflect.GeneratedMethodAccessor214.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at fr.ird.observe.services.topia.ObserveServiceFactoryTopia$ObserveServiceInvocationHandler.invokeMethod(ObserveServiceFactoryTopia.java:242)
	at fr.ird.observe.services.topia.ObserveServiceFactoryTopia$ObserveServiceInvocationHandler.invokeMethodWithTransaction(ObserveServiceFactoryTopia.java:265)
	at fr.ird.observe.services.topia.ObserveServiceFactoryTopia$ObserveServiceInvocationHandler.invoke(ObserveServiceFactoryTopia.java:230)
	at com.sun.proxy.$Proxy31.save(Unknown Source)
	at fr.ird.observe.application.swing.ui.content.table.impl.longline.CatchLonglineUIHandler.doPersist(CatchLonglineUIHandler.java:612)
	at fr.ird.observe.application.swing.ui.content.table.impl.longline.CatchLonglineUIHandler.doPersist(CatchLonglineUIHandler.java:97)
	at fr.ird.observe.application.swing.ui.content.table.ContentTableUIHandler.doSave(ContentTableUIHandler.java:360)
	at fr.ird.observe.application.swing.ui.content.ContentUIHandler.saveUI(ContentUIHandler.java:443)
	at fr.ird.observe.application.swing.ui.content.ContentUI.save(ContentUI.java:192)
	at fr.ird.observe.application.swing.ui.actions.shared.SaveEditUIAction.lambda$actionPerformed$0(SaveEditUIAction.java:66)
	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756)
	at java.awt.EventQueue.access$500(EventQueue.java:97)
	at java.awt.EventQueue$3.run(EventQueue.java:709)
	at java.awt.EventQueue$3.run(EventQueue.java:703)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:726)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
Caused by: org.hibernate.NonUniqueObjectException: A different object with the same identifier value was already associated with the session : [fr.ird.observe.entities.longline.SizeMeasureImpl#fr.ird.observe.entities.longline.SizeMeasure#1481210752978#0.6644814268078247]
	at org.hibernate.engine.internal.StatefulPersistenceContext.checkUniqueness(StatefulPersistenceContext.java:618)
	at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.performUpdate(DefaultSaveOrUpdateEventListener.java:301)
	at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.entityIsDetached(DefaultSaveOrUpdateEventListener.java:244)
	at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.performSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:109)
	at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:90)
	at org.hibernate.internal.SessionImpl.fireSaveOrUpdate(SessionImpl.java:684)
	at org.hibernate.internal.SessionImpl.saveOrUpdate(SessionImpl.java:676)
	at org.hibernate.engine.spi.CascadingActions$5.cascade(CascadingActions.java:235)
	at org.hibernate.engine.internal.Cascade.cascadeToOne(Cascade.java:350)
	at org.hibernate.engine.internal.Cascade.cascadeAssociation(Cascade.java:293)
	at org.hibernate.engine.internal.Cascade.cascadeProperty(Cascade.java:161)
	at org.hibernate.engine.internal.Cascade.cascadeCollectionElements(Cascade.java:379)
	at org.hibernate.engine.internal.Cascade.cascadeCollection(Cascade.java:319)
	at org.hibernate.engine.internal.Cascade.cascadeAssociation(Cascade.java:296)
	at org.hibernate.engine.internal.Cascade.cascadeProperty(Cascade.java:161)
	at org.hibernate.engine.internal.Cascade.cascade(Cascade.java:118)
	at org.hibernate.event.internal.AbstractFlushingEventListener.cascadeOnFlush(AbstractFlushingEventListener.java:167)
	at org.hibernate.event.internal.AbstractFlushingEventListener.prepareEntityFlushes(AbstractFlushingEventListener.java:158)
	at org.hibernate.event.internal.AbstractFlushingEventListener.flushEverythingToExecutions(AbstractFlushingEventListener.java:91)
	at org.hibernate.event.internal.DefaultAutoFlushEventListener.onAutoFlush(DefaultAutoFlushEventListener.java:61)
	at org.hibernate.internal.SessionImpl.autoFlushIfRequired(SessionImpl.java:1227)
	at org.hibernate.internal.SessionImpl.list(SessionImpl.java:1293)
	at org.hibernate.internal.QueryImpl.list(QueryImpl.java:103)
	at org.nuiton.topia.persistence.internal.support.HibernateTopiaJpaSupport.find0(HibernateTopiaJpaSupport.java:207)
	... 36 more
08 déc. 2016 16:28:36  INFO [AWT-EventQueue-0] (fr.ird.observe.services.runner.ObserveServiceMainFactory:111) newService - New service created: fr.ird.observe.services.topia.service.longline.SetLonglineCatchServiceTopia@7880309a
08 déc. 2016 16:28:36  INFO [AWT-EventQueue-0] (fr.ird.observe.services.topia.ObserveServiceTopia:106) loadEntity - Load entity: fr.ird.observe.entities.longline.SetLongline#1481206275398#0.6889776607233415
08 déc. 2016 16:28:36 ERROR [AWT-EventQueue-0] (fr.ird.observe.services.topia.ObserveServiceFactoryTopia:245) invokeMethod - Error in method save
java.lang.reflect.InvocationTargetException
	at sun.reflect.GeneratedMethodAccessor214.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at fr.ird.observe.services.topia.ObserveServiceFactoryTopia$ObserveServiceInvocationHandler.invokeMethod(ObserveServiceFactoryTopia.java:242)
	at fr.ird.observe.services.topia.ObserveServiceFactoryTopia$ObserveServiceInvocationHandler.invokeMethodWithTransaction(ObserveServiceFactoryTopia.java:265)
	at fr.ird.observe.services.topia.ObserveServiceFactoryTopia$ObserveServiceInvocationHandler.invoke(ObserveServiceFactoryTopia.java:230)
	at com.sun.proxy.$Proxy31.save(Unknown Source)
	at fr.ird.observe.application.swing.ui.content.table.impl.longline.CatchLonglineUIHandler.doPersist(CatchLonglineUIHandler.java:612)
	at fr.ird.observe.application.swing.ui.content.table.impl.longline.CatchLonglineUIHandler.doPersist(CatchLonglineUIHandler.java:97)
	at fr.ird.observe.application.swing.ui.content.table.ContentTableUIHandler.doSave(ContentTableUIHandler.java:360)
	at fr.ird.observe.application.swing.ui.content.ContentUIHandler.saveUI(ContentUIHandler.java:443)
	at fr.ird.observe.application.swing.ui.content.ContentUI.save(ContentUI.java:192)
	at fr.ird.observe.application.swing.ui.actions.shared.SaveEditUIAction.lambda$actionPerformed$0(SaveEditUIAction.java:66)
	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756)
	at java.awt.EventQueue.access$500(EventQueue.java:97)
	at java.awt.EventQueue$3.run(EventQueue.java:709)
	at java.awt.EventQueue$3.run(EventQueue.java:703)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:726)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
Caused by: org.nuiton.topia.persistence.TopiaQueryException: unable to find page startIndex=0, endIndex=1
	at org.nuiton.topia.persistence.internal.support.HibernateTopiaJpaSupport.find0(HibernateTopiaJpaSupport.java:219)
	at org.nuiton.topia.persistence.internal.support.HibernateTopiaJpaSupport.findUnique(HibernateTopiaJpaSupport.java:168)
	at org.nuiton.topia.persistence.internal.AbstractTopiaDao.findUniqueOrNull(AbstractTopiaDao.java:503)
	at org.nuiton.topia.persistence.internal.AbstractTopiaDao.tryFindUnique(AbstractTopiaDao.java:495)
	at org.nuiton.topia.persistence.internal.AbstractTopiaDao$InnerTopiaQueryBuilderRunQueryStep.tryFindUnique(AbstractTopiaDao.java:1164)
	at org.nuiton.topia.persistence.internal.AbstractTopiaDao$InnerTopiaQueryBuilderAddCriteriaOrRunQueryStep.tryFindUnique(AbstractTopiaDao.java:1025)
	at fr.ird.observe.ObserveTopiaPersistenceContext.updateLastUpdateDate(ObserveTopiaPersistenceContext.java:80)
	at fr.ird.observe.ObserveTopiaPersistenceContext.updateLastUpdateDate(ObserveTopiaPersistenceContext.java:72)
	at fr.ird.observe.services.topia.ObserveServiceTopia.saveEntity(ObserveServiceTopia.java:164)
	at fr.ird.observe.services.topia.service.longline.SetLonglineCatchServiceTopia.save(SetLonglineCatchServiceTopia.java:78)
	... 27 more
Caused by: org.hibernate.NonUniqueObjectException: A different object with the same identifier value was already associated with the session : [fr.ird.observe.entities.longline.SizeMeasureImpl#fr.ird.observe.entities.longline.SizeMeasure#1481210752978#0.6644814268078247]
	at org.hibernate.engine.internal.StatefulPersistenceContext.checkUniqueness(StatefulPersistenceContext.java:618)
	at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.performUpdate(DefaultSaveOrUpdateEventListener.java:301)
	at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.entityIsDetached(DefaultSaveOrUpdateEventListener.java:244)
	at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.performSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:109)
	at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:90)
	at org.hibernate.internal.SessionImpl.fireSaveOrUpdate(SessionImpl.java:684)
	at org.hibernate.internal.SessionImpl.saveOrUpdate(SessionImpl.java:676)
	at org.hibernate.engine.spi.CascadingActions$5.cascade(CascadingActions.java:235)
	at org.hibernate.engine.internal.Cascade.cascadeToOne(Cascade.java:350)
	at org.hibernate.engine.internal.Cascade.cascadeAssociation(Cascade.java:293)
	at org.hibernate.engine.internal.Cascade.cascadeProperty(Cascade.java:161)
	at org.hibernate.engine.internal.Cascade.cascadeCollectionElements(Cascade.java:379)
	at org.hibernate.engine.internal.Cascade.cascadeCollection(Cascade.java:319)
	at org.hibernate.engine.internal.Cascade.cascadeAssociation(Cascade.java:296)
	at org.hibernate.engine.internal.Cascade.cascadeProperty(Cascade.java:161)
	at org.hibernate.engine.internal.Cascade.cascade(Cascade.java:118)
	at org.hibernate.event.internal.AbstractFlushingEventListener.cascadeOnFlush(AbstractFlushingEventListener.java:167)
	at org.hibernate.event.internal.AbstractFlushingEventListener.prepareEntityFlushes(AbstractFlushingEventListener.java:158)
	at org.hibernate.event.internal.AbstractFlushingEventListener.flushEverythingToExecutions(AbstractFlushingEventListener.java:91)
	at org.hibernate.event.internal.DefaultAutoFlushEventListener.onAutoFlush(DefaultAutoFlushEventListener.java:61)
	at org.hibernate.internal.SessionImpl.autoFlushIfRequired(SessionImpl.java:1227)
	at org.hibernate.internal.SessionImpl.list(SessionImpl.java:1293)
	at org.hibernate.internal.QueryImpl.list(QueryImpl.java:103)
	at org.nuiton.topia.persistence.internal.support.HibernateTopiaJpaSupport.find0(HibernateTopiaJpaSupport.java:207)
	... 36 more
08 déc. 2016 16:28:36 ERROR [AWT-EventQueue-0] (fr.ird.observe.application.swing.ui.UIHelper:519) handlingError - unable to find page startIndex=0, endIndex=1
org.nuiton.topia.persistence.TopiaQueryException: unable to find page startIndex=0, endIndex=1
	at org.nuiton.topia.persistence.internal.support.HibernateTopiaJpaSupport.find0(HibernateTopiaJpaSupport.java:219)
	at org.nuiton.topia.persistence.internal.support.HibernateTopiaJpaSupport.findUnique(HibernateTopiaJpaSupport.java:168)
	at org.nuiton.topia.persistence.internal.AbstractTopiaDao.findUniqueOrNull(AbstractTopiaDao.java:503)
	at org.nuiton.topia.persistence.internal.AbstractTopiaDao.tryFindUnique(AbstractTopiaDao.java:495)
	at org.nuiton.topia.persistence.internal.AbstractTopiaDao$InnerTopiaQueryBuilderRunQueryStep.tryFindUnique(AbstractTopiaDao.java:1164)
	at org.nuiton.topia.persistence.internal.AbstractTopiaDao$InnerTopiaQueryBuilderAddCriteriaOrRunQueryStep.tryFindUnique(AbstractTopiaDao.java:1025)
	at fr.ird.observe.ObserveTopiaPersistenceContext.updateLastUpdateDate(ObserveTopiaPersistenceContext.java:80)
	at fr.ird.observe.ObserveTopiaPersistenceContext.updateLastUpdateDate(ObserveTopiaPersistenceContext.java:72)
	at fr.ird.observe.services.topia.ObserveServiceTopia.saveEntity(ObserveServiceTopia.java:164)
	at fr.ird.observe.services.topia.service.longline.SetLonglineCatchServiceTopia.save(SetLonglineCatchServiceTopia.java:78)
	at sun.reflect.GeneratedMethodAccessor214.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at fr.ird.observe.services.topia.ObserveServiceFactoryTopia$ObserveServiceInvocationHandler.invokeMethod(ObserveServiceFactoryTopia.java:242)
	at fr.ird.observe.services.topia.ObserveServiceFactoryTopia$ObserveServiceInvocationHandler.invokeMethodWithTransaction(ObserveServiceFactoryTopia.java:265)
	at fr.ird.observe.services.topia.ObserveServiceFactoryTopia$ObserveServiceInvocationHandler.invoke(ObserveServiceFactoryTopia.java:230)
	at com.sun.proxy.$Proxy31.save(Unknown Source)
	at fr.ird.observe.application.swing.ui.content.table.impl.longline.CatchLonglineUIHandler.doPersist(CatchLonglineUIHandler.java:612)
	at fr.ird.observe.application.swing.ui.content.table.impl.longline.CatchLonglineUIHandler.doPersist(CatchLonglineUIHandler.java:97)
	at fr.ird.observe.application.swing.ui.content.table.ContentTableUIHandler.doSave(ContentTableUIHandler.java:360)
	at fr.ird.observe.application.swing.ui.content.ContentUIHandler.saveUI(ContentUIHandler.java:443)
	at fr.ird.observe.application.swing.ui.content.ContentUI.save(ContentUI.java:192)
	at fr.ird.observe.application.swing.ui.actions.shared.SaveEditUIAction.lambda$actionPerformed$0(SaveEditUIAction.java:66)
	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756)
	at java.awt.EventQueue.access$500(EventQueue.java:97)
	at java.awt.EventQueue$3.run(EventQueue.java:709)
	at java.awt.EventQueue$3.run(EventQueue.java:703)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:726)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
Caused by: org.hibernate.NonUniqueObjectException: A different object with the same identifier value was already associated with the session : [fr.ird.observe.entities.longline.SizeMeasureImpl#fr.ird.observe.entities.longline.SizeMeasure#1481210752978#0.6644814268078247]
	at org.hibernate.engine.internal.StatefulPersistenceContext.checkUniqueness(StatefulPersistenceContext.java:618)
	at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.performUpdate(DefaultSaveOrUpdateEventListener.java:301)
	at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.entityIsDetached(DefaultSaveOrUpdateEventListener.java:244)
	at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.performSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:109)
	at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:90)
	at org.hibernate.internal.SessionImpl.fireSaveOrUpdate(SessionImpl.java:684)
	at org.hibernate.internal.SessionImpl.saveOrUpdate(SessionImpl.java:676)
	at org.hibernate.engine.spi.CascadingActions$5.cascade(CascadingActions.java:235)
	at org.hibernate.engine.internal.Cascade.cascadeToOne(Cascade.java:350)
	at org.hibernate.engine.internal.Cascade.cascadeAssociation(Cascade.java:293)
	at org.hibernate.engine.internal.Cascade.cascadeProperty(Cascade.java:161)
	at org.hibernate.engine.internal.Cascade.cascadeCollectionElements(Cascade.java:379)
	at org.hibernate.engine.internal.Cascade.cascadeCollection(Cascade.java:319)
	at org.hibernate.engine.internal.Cascade.cascadeAssociation(Cascade.java:296)
	at org.hibernate.engine.internal.Cascade.cascadeProperty(Cascade.java:161)
	at org.hibernate.engine.internal.Cascade.cascade(Cascade.java:118)
	at org.hibernate.event.internal.AbstractFlushingEventListener.cascadeOnFlush(AbstractFlushingEventListener.java:167)
	at org.hibernate.event.internal.AbstractFlushingEventListener.prepareEntityFlushes(AbstractFlushingEventListener.java:158)
	at org.hibernate.event.internal.AbstractFlushingEventListener.flushEverythingToExecutions(AbstractFlushingEventListener.java:91)
	at org.hibernate.event.internal.DefaultAutoFlushEventListener.onAutoFlush(DefaultAutoFlushEventListener.java:61)
	at org.hibernate.internal.SessionImpl.autoFlushIfRequired(SessionImpl.java:1227)
	at org.hibernate.internal.SessionImpl.list(SessionImpl.java:1293)
	at org.hibernate.internal.QueryImpl.list(QueryImpl.java:103)
	at org.nuiton.topia.persistence.internal.support.HibernateTopiaJpaSupport.find0(HibernateTopiaJpaSupport.java:207)
	... 36 more
Constatée tchemit Anomalie Normal Foire aux anomalies - -
[SECURITE] L'assistant sécurité semble ne pas donner correctement l'accès au schéma public J'avais déjà constaté ce problème sans que nous parvenions à identifier la raison : Certains rôles, malgré l'exécution de l'assistant sécurité sans erreur, semblent ne pas obtenir de droits suffisants pour se connecter à la base : * Lorsque l'utilisateur xxx tente de se connecter, la fenêtre de connexion lui indique que la version de la base (null) n'est pas correcte (4.0.4 attendue). Or la version de la base centrale est correcte car d'autres utilisateurs s'y connectent correctement et la table public.tms_version présente la bonne version. * Pourtant sous psql/pgadmin cet utilisateur peut se connecter à la base * Par contre il ne peut accéder à aucune table du schéma public. Pour lui public.tms_version n'existe pas. J'ai pu rétablir son accès en exécutant un :
GRANT USAGE ON SCHEMA public TO xxx;
Il semblerait donc que l'assistant sécurité oublie d'exécuter cette commande. Cela reste curieux car d'autres rôles n'ont as ce problème. Peut-être bénéficient-ils d'une configuration passée, d'un GRANT USAGE TO public jamais remis en cause par l’assistant. Pour être rigoureux il faut peut-être s'assurer que l'assistant : * révoque les droits USAGE de tous les rôles sur tous les schémas "officiels" d'ObServe * accorde de façon bien ciblée les droits d'usage sur tous les schémas "officiels" d'ObServe aux utilisateurs gérés par l'assistant Note : L'assistant ne devrait pas modifier les droits d'usage des utilisateurs aux autres schémas que observe_common, observe_seine, observe_longline et public. En effet nous avons dans notre base de production d'autres schémas, non utilisés par l'appli et qui ne contiennent que des vues. Il ne faudrait pas que l'assistant vienne interférer sur les droits d'accès à ces schémas.
Constatée tchemit Anomalie Normal Foire aux anomalies persistence -
[REFERENTIEL] Clé étrangère manquante sur le champ vessel.fleetcountry le champ fleetcountry de la table vessel est codé comme un integer et n'est pas lié à une autre table alors qu'il devrait y avoir une clé étrangère qui lie ce champ à la table country, comme c'est le cas pour le champ flagcountry de la table vessel. Pour la migration, utiliser la correspondance vessel.fleetcountry <-> country.code À corriger tchemit Anomalie Normal Foire aux anomalies persistence -
Gestion d'enregistrements de TargetSample et NonTargetSample historiques On s'est aperçu que parmi les données migrées de nos anciennes bases ObsTuna Access vers ObServe (migration qui avait été faite avec les premières versions d'ObServe), certaines calées ont leurs échantillons (de cible comme de non cible) répartis sur plus d'un échantillon (plusieurs TargetSample pour un même Set et/ou plusieurs NonTargetSample pour un même Set). C'est valide du point de vue des données et du modèle, mais l'application, elle, n'affiche que les mensurations du premier TargetSample (et du premier NonTragetSample) sur les formulaires correspondants. Ce qui n'est pas aberrants puisqu'elle est prévue, de son côté, pour le générer qu'un seul TargetSample et un seul NonTargetSample par Sel. On souhaiterait donc que lors d'une migration, toutes les mensurations de ces calées soient regroupées sous un seul TargetSample et un seul NonTargetSample, et que les TargetSample et NonTargetSample superflus soient supprimés. Constatée tchemit Anomalie Normal Foire aux anomalies service -
Cumul de marées dans des sauvegardes de bases locales Dans un contexte où la base centrale n'est pas accessible (trop loin, trop lent), permettre de cumuler dans une base locale sauvegardée (sql.gz) déjà existante (contenant éventuellement des marées) les marées de la base locale active. Proposition tchemit Evolution Normal Évolutions proposées - -
Limiter le Zoom- de la carte Serait-il possible de limiter le Zoom- sur les cartes de sorte à éviter un affichage du type de celui de la PJ ? Proposition tchemit Evolution Bas Évolutions proposées gui -
Uniformiser les topiaid entre ObServe et t3+   Proposition tchemit Evolution Normal Évolutions proposées - -
Le temps entre hameçon devrait être stocké à un niveau plus fin Actuellement le temps entre hameçons (en s) est stocké au niveau de l'opération de pêche. Il faudrait en plus de cela pouvoir le définir aux niveaux section et basket. Ceci aura des implications sur l'écran de définition détaillée. A étudier. Proposition tchemit Evolution Bas Évolutions proposées persistence -
Mise à jour du référentiel Stomach fullness Mettre à jour le référentiel stomach fullness avec les recommandations d'Evgeny Romanov en PJ Proposition pcauquil Evolution Normal Évolutions proposées - -
Remplacer le système de tableaux de synthèses actuel par un système plus simple à base de SQL h2. Remplacer le système de tableaux de synthèses actuel par un système plus simple à base de SQL Le système permettrait de stocker 2 versions de chaque requête : l'une destinée à la base locale, l'autre destinée à la base centrale Proposition tchemit Evolution Normal Évolutions proposées - -
[PS] Exports Excel ou CSV bruts Les tableaux de synthèse ne parviennent pas toujours à fournir toutes les données souhaitées. On voudrait les doubler d'un export Excel ou CSV plus brut, qui concernerait les tables essentielles : * Activités/Calées * Captures target * Captures non target * Echantillons target * Echantillons non target En traduisant tout de même les topia id des clés étrangères de ces tables vers les codes communs (colonnes 'code') et libellés. Besoin à préciser. Besoin à préciser pour LL. Proposition pcauquil Evolution Normal Évolutions proposées - -
Réorganisation visuelle du formulaire Opération de pêche / Caractéristiques h2. Placer "Vitesse bateau" et "Profondeur maximum ciblée" sur une même ligne h2. Remonter "Temps entre hameçons" juste au dessous de "Vitesse bateau" et "Profondeur maximum ciblée" h2. Cyalumes On souhaite voir regroupés dans un cadre tous les champs relatifs aux cyalumes, à savoir : * Nombre de cyalumes par panier * Type de cyalumes * Couleur de cyalumes h2. Paramètres d'aide à la définition détaillée On souhaite réorganiser les champs d'aide à la définition détaillée : * Les mettre dans l'ordre suivant : > Nombre total de sections > Nombre de paniers/sections > Nombre d'hameçons/panier * Les regrouper dans un cadre libellé "Aide à la définition détaillée de la palangre" * Sur le même principe que "Shooter utilisé" (qui active "Vitesse shooter"), on souhaite qu'un marqueur "Cyalumes utilisés" chapeaute ce cadre et gère son activation/désactivation. # Supprimer champs "Longueur avançon" et "Longueur traceline" (déjà consigné dans #6754) h2. Place de "Palangre instrumentée" Actuellement "Palangre instrumentée" est sur la même ligne que "Temps entre hameçons", ce qui laisse penser que le second est conditionné par le premier (comme les flags shooter, émerillon et snap). On souhaite : * Placer "Palangre instrumentée" en toute fin de formulaire (juste avant le champ "Commentaires" h1. Résumé des modifications de modèle requis sur l'entité SetLongline * Suppression de branchlinelength * Suppression de tracelinelength * Ajout de lightsticksused Proposition - Evolution Normal Évolutions proposées - -
Améliorer la gestion des unités Stocker en base toujours dans la même unité et adapter l'UI aux unités les plus adaptées pour chaque champ. Proposition tchemit Evolution Normal Évolutions proposées - -
En édition d'un formulaire existant, si pas de modifications, permettre de clôturer même si la validation ne passe pas Aujourd'hui, en éditant un formulaire existant, si celui-ci ne passe pas la validation, il est nécessaire de modifier les données de sorte à satisfaire la validation pour pouvoir enregistrer et clôturer. Même si on ne modifie aucune information, on ne peut pas reclôturer si tout n'est pas valide. Or c'est un problème dans certains cas. Dans le cas où aucune donnée du formulaire n'a été modifiée, il faudrait pouvoir malgré tout clôturer (sans enregistrer donc). Par contre si la moindre modification est faite, la validation doit passer pour pouvoir enregistrer (et clôturer). Proposition tchemit Evolution Normal Évolutions proposées gui -
Est-il possible d'ordonner les messages d'erreur ? Si oui, sur l'écran "opération de pêche", lorsque les données de filage et de virage font défaut, on préfèrerait que les messages d'erreur relatifs au filage apparaissent AVANT message relatifs au virage (actuellement c'est l'inverse). Proposition tchemit Evolution Bas Évolutions proposées gui -
Plusieurs marées sur les tableaux de synthèse On souhaiterait étudier la possibilité de pouvoir sélectionner plusieurs marées dans l'assistant tableaux de synthèse, de sorte à pouvoir obtenir des données synthétiques à l'échelle de plusieurs marées Proposition tchemit Evolution Normal Évolutions proposées rapports -
Augmenter la précision du stockage des degrés décimaux La précision de stockage actuelle des positions fait que lors des conversions DD/DMD/DMS les valeurs sont altérées (faiblement) par un arrondi. Peut-on augmenter la précision de stockage pour éviter ces arrondis ? Proposition tchemit Evolution Normal Évolutions proposées persistence -
Définir un "simple type" de bateau Ajouter une entité SimpleVesselType (contenant 8 libellés (label1..label8) et qui contiendra les lignes : - Senneur - Palangrier et une relation vesseltype.simplevesseltype FK vers simplevesseltype.topiaid Cette relation permettra de classer plus clairement les bateaux que par la table de référence actuelle VesselType (qui contient par exemple plusieurs types de senneurs). Comme dans T3+. L'UI se basera alors sur cette nouvelle entité pour filtrer les bateaux utilisables dans les deux types de marées (Senne ou palangre). NB : l'actuelle VesselType reste et la qualification d'un bateau se fera par le cheminement Vessel --> VesselType --> SuperVesselType Proposition tchemit Evolution Normal Évolutions proposées - -
Activité -> type d'activité : possibilité de changer ? Actuellement le choix du type d'une activité est définitif. Si on souhaite changer le type il faut supprimer l'activité et la recréer. On avait fait ce choix car seule l'activité 6 permet d'ajouter des infos de calée. Donc changer de type exige soit la suppression de la calée, soit l'activation du bouton. Or c'est bien ce mode de fonctionnement là qui existe en cas de suppression d'une capture (on gère la suppression éventuelle d'échantillons associés, avec un message d'avertissement). Dans la mesure du possible on aimerait donc permettre la même chose sur le type d'activité. Proposition tchemit Evolution Normal Évolutions proposées - -
Modifier les marqueurs rejet de thon et rejet de faune Sur le formulaire calée, les champs "rejet de faune" et "rejet de thon" peuvent prendre 3 états : oui, non, indéterminé. Les supprimer, de l'UI et de la base Proposition tchemit Evolution Normal Évolutions proposées - -
[LL] revoir formulaire Captures/Avancon L'onglet Avancon du formulaire Capture mérite d'être revu. A minima il faudrait inclure le type de d’hameçon (hook_type). En PJ, vous trouverez une proposition de layout. Une autre information qui aurait mérité de figurer sur ce formulaire et d'être stockée au niveau de l'avancon, c'est la présence d'une cyalume, son type, sa couleur. Dans le modèle de données actuel, ces informations ne sont stockées qu'au niveau du set. A intégrer éventuellement dans une prochaine évolution du modèle de données. Proposition pcauquil Evolution Normal Évolutions proposées persistence -
Sur l'écran de sélection des marées, remplacer la sélection en bleu par des cases à cocher La sélection par changement de couleur bleu/noir peut être ambiguë. La remplacer par une case à cocher précédant chaque marée. En attente validation client tchemit Evolution Normal Backlog gui -
[PS/LL] Séparer les programmes LL et PS dans l'arbre de navigation Actuellement les programmes LL et PS sont mêlés dans l'arbre de navigation. On propose l'afficher les programmes LL et PS dans l'arbre de navigation sous 2 catégories : Palangre et Senne En attente validation client tchemit Evolution Normal Backlog gui -
Assistant de connexion Sur l'assistant de connexion à une base centrale ou à un serveur distant, la zone d'adresse JDBC ou HTTP pourrait mémoriser les dernières adresses utilisées et les exploiter soit pour de l'auto complétion, soit pour proposer une liste déroulante d'adresses En attente validation client tchemit Evolution Bas Backlog gui -
Permettre de copier-coller facilement le contenu de la fenêtre "Erreur..." La boîte de dialogue titrée "Erreur..." ne dispose pas, comme d'autres, d'un bouton permettant de copier le texte de l'exception dans le presse-papier. Il faudrait le rajouter pour faciliter la communication lors du débogage Proposition tchemit Evolution Bas Backlog - -
[LL] Ajouter infos cyalume sur branchline On souhaite ajouter des information sur la présence éventuelle d'un cyalume sur chaque branchline : booléen 3 états : présence/absence/NA type : FK vers lightstickstype couleur : FK vers lightstickscolor Saisie optionnelle Proposition tchemit Evolution Normal Backlog persistence -
[Référentiel] Corriger un nom de champ Il faudrait renommer : * gear_gearcaracteristic * gearcaracteristic * gearcaracteristictype En : * gear_gearcharacteristic * gearcharacteristic * gearcharacteristictype Proposition tchemit Evolution Normal Backlog persistence -
[UI][PS] Améliorer le comportement du widget positions On souhaite à présent que pour une nouvelle activité, le widget position (incluant le quandrant) reprenne la position de l'activité précédente (et celle de la dernière activité de la route précédente si nouvelle route). Toutefois : * on veut instaurer un mécanisme qui force (ou incite fortement) l'observateur à vérifier/adapter la valeur * on ne veut pas interdire la saisie de 2 activités consécutives avec la même position (car c'est un scénario réel) * on voudrait éviter d'ajouter des clics supplémentaires (ce qui n'incite pas à intercaler une boîte de dialogue de confirmation) Toute idée miracle bienvenue Rien de tout cela sur la LL. Proposition pcauquil Evolution Normal Backlog gui -
[PS] Implanter les nouveaux formulaires DCP et bonnes pratiques de remise à l'eau Implanter les nouveaux formulaires DCP dontles spécificationns sont détaillées ici : specification-forms-azti-v1.docx Proposition tchemit Evolution Normal Backlog gui -
[UI][PS] Confirmation de non saisie de balise sur DCP Lorsqu'il a saisi le formulaire objet flottant et s'apprête à enregistrer, on souhaite une boîte de dialogue d'incitation "Voulez-vous ajouter une balise émettrice sur cet objet flottant ?" OUI/NON (focus sur OUI) Proposition tchemit Evolution Normal Backlog gui -
Implanter toutes les fonctionnalités AVDTH Implanter toutes les fonctionnalités AVDTH Définition détaillée à venir Devra tenir compte des multiples filières possibles d'acquisition : * observateurs * ERS * saisie classique bureaux des ports Proposition pcauquil Evolution Normal Backlog gui -
[LL] Implanter le formulaire logbook Implanter le formulaire logbook LL Définition détaillée à venir. Proposition pcauquil Evolution Normal Backlog dependencies -
[A PRECISER] Consignation de la méthode de mesure [A PRECISER] Consigner la méthode de mesure : Sur les captures PS/LL : * estimation visuelle * pesée Sur les échantillons PS/LL : * mètre ruban * pieds à coulisse * balance * peson * table Proposition pcauquil Evolution Normal Backlog persistence -
[PS] Implanter le nouveau formulaire de remise à l'eau des espèces sensibles Le partenaire AZTI a rédigé un jeu de formulaires papier destinés à recueillir des informations sur le mode de remise à l'eau d'espèces sensibles vivantes. Il s'agit en réalité de 4 formulaires très similaires, avec quelques modulations en fonction du groupe d'espèces auquel il est destiné. On a : * une version pour les requins (hors requins-baleine) * une version pour les requins-baleine * une version pour les raies * une version pour les tortues On trouve ces formulaires aux pages 4 et 6 du PDF attaché. Le contenu des sections suivantes sera déterminé par des listes de référence : * Mode de libération * État de l'animal Les formulaires sont si proches que sur le logiciel un seul sera développé. Chiffrer EN OPTION la modulation du comportement du formulaire en fonction du groupe de l'espèce sélectionnée. Les modulations consistent en la disponibilité ou l'indisponibilité de certaines entrées de ces 2 listes. Proposition tchemit Evolution Normal Backlog - -
Simplification des formulaires à 2 boutons Enregistrer En PS comme en LL, les écrans de type saisie de tableaux (captures, échantillons, capteurs, etc) nécessitent un appui sur Enregistrer pour chaque ligne, puis un clic final sur l'autre bouton Enregistrer pour stocker en base. Serait-il envisageable de supprimer le recours au Enregistrer final (chaque ligne enregistrée le serait directement en base) ? Y aurait-il des effets néfastes ? Proposition tchemit Evolution Normal Backlog persistence -
Identification plus facile des marées avec calées Lorsque les objets de l'arbre sont repliés, il est difficile d'identifier en un coup d'oeïl les routes (journées) qui ont des calées ou pas. On souhaiterait que dans l'arbre, à droite de la date d'une route, un nombre (entier) indique le nombre de calées qui ont été faites ce jour-là. Un code couleur permettrait aussi de différencier les calées positives des calées négatives. Exemples : 14/05/2010 – 2 – 1 (=2 calées positives ce jour, 1 calée nulle) 15/05/2010 – 0 – 0 (=aucune calée ce jour) 16/05/2010 – 1 – 3 (=1 calée positives ce jour, 3 calées nulle) Proposition tchemit Evolution Normal Backlog - -
[PS][AZTI] Utilisation d'expressions régulières pour contraindre la saisie des codes identificateurs de balises Rajouter : * Table de référence "Marques de balises" * Un champ permet d'y stocker une expression régulière * Sur le formulaire balise, une liste déroulante permet de choisir sa marque * Le champ code balise est contraint par l'expression régulèr Proposition tchemit Evolution Normal Backlog gui -
Associer la nouvelle icône au fichier EXE Associer la nouvelle icône au fichier EXE, si possible facilement Proposition tchemit Evolution Bas Backlog - -
Sur la synchro avancée de marées, ajouter un bouton pour filtrer les marées présentes des 2 côtés En synchro avancée de marées, comme il y a beaucoup de marées, il n'est pas facile d'identifier quelles marées sont déjà des deux côtés, et lesquelles manquent à l'appel. On aimerait un bouton dont la fonction serait d'activer un filtre pour retirer de l'affichage les marées présentes des 2 côtés (sur la base de leur topiaid). On pourrait à loisir faire basculer cet interrupteur pour afficher/masquer ces marées, permettant ainsi d'agir dessus ou pas, selon les tâches d'administration à effectuer. Il faudra veille à ce que ce soit compatible avec #8884. Proposition tchemit Evolution Normal Backlog gui -
Réglage par défaut des proportions des volets de la fenêtre Quand on ouvre le logiciel et qu'on clique pour étendre la fenêtre à la surface totale d'affichage, les volets droite/gauche et haut/bas se retrouvent mal proportionnés. Idem lorsqu'on redimensionne la fenêtre. Tu m'avais parlé de devoir stocker la configuration de l'appli dans un fichier de configuration. A voir ensemble. En attente validation client tchemit Evolution Normal 6.0 gui -
[LL] Formulaire Captures : Tableaux tailles et poids - ajouter des fonctions clic droit Sur les tableaux de saisie des tailles et poids, ajouter des fonctions sur clic droit d'une ligne : nouvelle mesure/supprimer mesure En attente validation client tchemit Evolution Normal 6.0 gui -
[LL] Ajout d'un champs sur l'écran Composition > Onglet Avançons *Onglet Avançons* On souhaiterait rajouter le champ "Longueur du bas de ligne (en m)" (EN : Traceline length (m)), aux côtés de "Longueur avançon", de sorte à ce que la modélisation d'un orin soit la même ici (composition) et dans la partie composition détaillée (déjà équipée du champ "Longueur bas de ligne"). Ce champs est facultatif. En attente validation client tchemit Evolution Normal 6.0 - -
Affichage des heures sur l'écran de synchro avancée du référentiel Je soupçonne que l'affichage des heures de l'horodatage de dernière mise à jour se fait sur 12h, mais sans préciser am/pm. Si c'est le cas, il faudra soit basculer sur un affichage sur 24h (le mieux), soit préciser am ou pm. Constatée tchemit Anomalie Bas 6.0 gui -
TMA Reliquat de budget utilisable. Initialement, le ticket portait sur la possibilité d'ajouter trois nouveaux rapports. Budget initial 3 jours * [5.0] Consommé #8541 1 jour * [5.0] Consommé #8544 0.5 jour * [5.1] Ajout #7509 0.25 jour * [5.1] Consommé #7008 0.25 jour À faire tchemit Evolution Normal 6.0 - -
[PS] Ajouter un champ "Numéro de cuve", sur le formulaire des captures accessoires Ajouter un champ "Numéro de cuve", sur le formulaire des captures accessoires, sur le même principe que le n° de cuve sur les captures d'espèces cibles Ce champ reste optionnel. En attente validation client tchemit Evolution Bas 6.0 - -
Permettre la MAJ du référentiel à partir d'un sql.gz Permettre la MAJ d'un référentiel central depuis un sql.gz. En attente validation client tchemit Evolution Normal 6.0 persistence -
[PS] Supprimer le champ floattingobject.supportvesselname Supprimer le champ floattingobject.supportvesselname du formulaire. Supprimer les données en base En attente validation client tchemit Evolution Normal 6.0 - -
Ajout du champ Sexe sur les échantillons de cible Sur les échantillons de thons (cibles), capturés ET rejetés, on souhaite ajouter un champ sexe, sous forme de liste déroulante prenant ses informations dans la table des sexes. La saisie reste facultative En attente validation client tchemit Evolution Haut 6.0 persistence -
Ajout d'une information visuelle sur les écrans de gestion avancée du référentiel et des données En faisant des synchronisation de référentiel et de marées entre 2 bases situées sur le même serveur, je me rends compte que sur l'UI (exemple en PJ) il n'y a rien pour différencier les deux bases, au risque de synchroniser dans le mauvais sens. On aimerait qu'en plus de l'URL du service, s'affiche le nom du profil de base utilisé de part et d'autre. En attente validation CL tchemit Evolution Bas 6.0 gui -
Dans les listes d'espèces, ne plus montrer l'ancien code Dans les listes d'espèces (listes déroulantes), ne plus montrer l'ancien code. Ce n'est plus nécessaire Terminée tchemit Evolution Normal 6.0 gui -
[PS] Supprimer le champ calee/nom du supply Supprimer le champ calee/nom du supply. Le contenu historique sera perdu. Reste à confirmer. En attente commentaire Client pcauquil Evolution Normal 6.0 - -
[PS] Unicité des enregistrements des rejets de thons à modifier Dans la rubrique « rejet de thons », le critère "Monté sur le pont" ne fait pas partie de la clé d'unicité. De ce fait il est par exemple impossible de saisir 2 fois le même triplet Espèce#Catégorie#Raison rejet avec 2 modalités différentes de "Monté sur le pont". Il faut permettre cette possibilité. En attente validation client tchemit Evolution Haut 6.0 - -
La boîte Informations sur la source n'affiche plus l'URL de la base En mode connexion directe à la base, la boîte information sur la source semble ne plus indiquer l'URL JDBC de la base attaquée. Il serait bien d'avoir à nouveau cette information, pratique quand on jongle avec plusieurs bases En attente validation client tchemit Anomalie Bas 6.0 gui -
Retirer le champ relatif à l'utilisation du sonar pendant la calée On souhaite retirer le champ "Utilisation du sonar pendant la calée" sur le formulaire Calée. Le champ sera retiré de l'UI et de la base. On assume la perte de cette donnée pendant la phase de migration. En attente validation client tchemit Evolution Immédiat 6.0 persistence -
[REFERENTIEL] Ajouter des colonnes dans Vessel Dans le référentiel Vessel on souhaite ajouter 8 colonnes : * iattcid : varchar 64 * ctoiid : varchar 64 * nationalid : varchar 64 * comid : varchar 64 * tuviid : varchar 64 * imoid : varchar64 * radiocallsignid : varchar 64 * -grosstonnage : decimal- Dans l'UI, remplissage facultatif En attente validation client tchemit Evolution Normal 6.0 persistence -
[PS] Limiter l'usage du formulaire DCP Sur le formulaire activité, le bouton "Ajouter le DCP" est disponible quelque soit le type d'activité. On souhaite limiter sa présence aux activités de type 6 (pêche) et 13 (opération sur DCP) En attente validation client tchemit Evolution Normal 6.0 gui -
[PS] Gestion plus intelligente des champs Devenir et Raison du rejet Actuellement, sur le formulaire capture/rejet de non cible, il est possible de saisir des informations contradictoires dans les champs Devenir Espèce et Raison du Rejet. Par exemple Devenir=Conservé et Raison rejet=Espèce Voir capture d'écran On propose : * D'étendre la table de référence SpeciesFate avec une nouvelle colonne "discard" bouléenne. Elle permettra de caractériser le type de devenir (conservé ou rejeté) * De piloter la disponibilité ou non de la liste des raisons rejet en fonction du devenir sélectionné. En attente validation client tchemit Evolution Normal 6.0 validation -
Rajouter un champ Armateur On souhaiterait ajouter : * Une table de référence "Armateur", avec libellé simple + association avec table pays * Une association entre bateau et armateur De sorte à pouvoir faire des filtres sur les armateurs En attente validation client tchemit Evolution Normal 6.0 persistence -
[PS] Renommer 2 champs dans nontargetlength Dans nontargetlength, renommer : * lengthsource (boolean) en islengthcomputed * weightsource (boolean) en isweightcomputed Le contenu ne change pas En attente validation client tchemit Evolution Normal 6.0 persistence -
[LL][PS] Possibilité de saisie directe au clavier des dates/heures sans passer par le calendrier Pour améliorer la vitesse de saisie et la réduire la pénibilité, permettre la saisie directe des dates et heures au clavier, avec des masques de saisie. Les calendrier et spinners heures/minutes doivent perdurer. En attente validation client tchemit Evolution Normal 6.0 gui -
[WIDGET POSITIONS] absence de message d'erreur quand horodatage erronné (certains cas) Sur toutes les saisies de positions LL/PS Saisie de 65 min dans le champ "minute" → corrigé automatiquement en 5 min + 1°. On préfèrerait un message d'erreur empêchant d'enregistrer en l'état (donc si minutes >59) Idem pour les secondes > -60- 59 !!! En attente validation client tchemit Evolution Normal 6.0 gui -
Action/calculer les données : sélection de la marée par défaut Peut-on, en mode base locale, faire en sorte que la ou les marées soient sélectionnées (en bleu donc) par défaut. Pour éviter que l'utilisateur se demande pourquoi ça ne calcule rien ? Par contre en mode base centrale il ne faut surtout pas appliquer ce comportement. En attente validation client tchemit Evolution Bas 6.0 gui -
[LL] numérotation des captures Formulaire LL Détails opération/Captures On voudrait rajouter une numérotation (en entiers), qui stockerait l'ordre de saisie (et qui servirait d'ordre d'affichage par défaut). Il faudrait aussi pouvoir modifier l'ordre des captures dans le tableau (par clic droit>move up/down) comme cela existe pour les sections/baskets/avançons dans le schéma de palangre. En attente validation client tchemit Evolution Normal 6.0 gui -
[REFERENTIEL] Relations taille-poids - Ajout d'un champ texte 'source' Ajouter sur chaque paramétrage taille-poids un champ 'source' TEXTE 1024 caractères, qui permettra de stocker la référence d'où les paramètres sont tirés Pour la migration on y déplacera le contenu du champ URI (qui a temporairement été utilisé à cet effet) En attente validation client tchemit Evolution Normal 6.0 persistence -
[REFERENTIEL] Référentiel Espèces - gestion du type de mesure par défaut Dans la table species, le type de mesure par défaut n'est pas contraint par une clé étrangère. On souhaite : * Remplacer le champs actuel species.lengthmeasuretype par un species.sizemeasuretype, FK vers sizemeasuretype * On utilisera le critère species.lengthmeasuretype = sizemeasuretype.code pour assurer la migration * On stoppera la migration pour toute correspondance non trouvée En attente validation client tchemit Evolution Normal 6.0 persistence -
Gestion plus perfectionnée des calculs taille-poids Actuellement : * [PS] Pour les espèces non cibles, un seul type de relation taille-poids peut être stocké (dans lengthweightparameter) et exploitée (car le type de mesure ne fait pas partie de la clé d'identification). La relation doit être celle adaptée au type de taille exigé pour chaque espèce et qui est spécifié dans species.lengthmeasuretype (en relation avec #8391). L’observateur doit lui, nécessairement, utiliser le type de mesure imposé ici. * [PS] Pour les espèces cibles, un seul type de relation taille-poids peut être stocké (dans lengthweightparameter) et exploitée. Ceci est d'ailleurs contradictoire avec le protocole/formulaire de mesure des cibles, qui permettent des mesures en LF mais aussi en LD1. Sachant que pour les cibles, lengthweightparameter ne contient que les relations pour LF, les conversion taille-poids de mesures LD1 sont actuellement fausses * [LL] Le type de mesure est libre et aucune conversion automatique n'est effectuée. Cela va le rester On souhaite modifier ainsi la table lengthweightparameter : * Dans la table lengthweightparameter, rajouter un critère/colonne sizemeasuretype (pointant vers observe_common.sizemeasuretype, voir aussi #8390). Ceci permettra de stocker plusieurs types de relations taille-poids par espèce (pour les cibles comme pour les non cibles donc) * Dans le processus de migration, sur les données actuellement présentes dans lengthweightparameter, on renseignera ce nouveau champ avec le type de mesure de poids définit par défaut pour l'espèce dans species.sizemeasuretype -* Dans la table lengthweightparameter, rajouter un critère/colonne weightmeasuretype (pointant vers observe_common.weightmeasuretype, voir aussi #8390).- -* Dans le processus de migration, on renseignera systématiquement ce nouveau champ avec le topiaid du type de mesure de taille ENT/Whole Fish- * Dans la table lengthweightparameter, rajouter une colonne source (texte 512) pour saisie de texte libre * Le champ contenant la mesure par défaut d'une espèce (species.sizemeasuretype) sera conservé (sous forme de topiaid) et renommé en species.defaultsizemeasuretype On souhaite ajouter une nouvelle table observe_common.lengthlengthparameter de structure : >* inputsizemeasuretype : FK vers sizemeasuretype.topiaid >* outputsizemeasuretype : FK vers sizemeasuretype.topiaid >* coefficients (texte) pour contenir les paramètres sur le même principe que les paramètres taille-poids >* inputoutputformula (texte) pour contenir la formule. La formule sera toujours *outputsize = a + inputsize*b* >* outputinputformula (texte) pour contenir la formule inverse. La formule sera toujours *inputsize = (outputsize - a)/b* >* source (texte 512) pour saisie de texte libre Le but est de pouvoir effectuer des conversions entre types de taille. Par exemple, on pourra convertir d'une mesure de taille X vers la mesure par défaut, pour laquelle on sait assurer la conversion vers le poids. Pour pouvoir consigner les types de tailles utilisés pour les mesures (qui deviennent variables) : * Ajouter nontargetlength.sizemeasyretype, FK vers sizemeasuretype * Changer le booléen targetlength.measyretype en targetlength.sizemeasyretype, FK vers sizemeasuretype Mise à jour de l'UI / Echantillons non cible : * Sur le formulaire de saisie d'échantillon de non target, une nouvelle liste déroulante permettra de spécifier le type de taille effectué * Par défaut elle sera positionnée sur le type de taille par défaut associé à l'espèce, trouvé dans species.defaultsizemeasuretype * Le type de taille par défaut, qui s'affiche actuellement sur le formulaire à titre informatif, devra impérativement rester. Il permettra à l'observateur de pouvoir toujours retourner au type par défaut après avoir "erré" dans la liste des types de tailles disponibles. Mieux, un bouton "Remettre par défaut" à droite de la liste déroulante. * Même chose sur le formulaire de saisie d'échantillons de de target Mise à jour de l'UI / Echantillons cible : * Comme sur le formulaire Echantillons non cible, une zone non éditable rappellera en permanence le type de mesure par défaut (actuellement, pour les thons, toujours LF; info à trouver dans species.defaultsizemeasuretype) * La liste des types de taille (actuellement LD1/LF/Inconnu en dur) sera construite à partir de la table observe_common.sizemeasuretype, mais les propositions seront limitées à PDL et FL (NULL sera utilisé pour les données historiques sans type de taille, mais interdit pour les nouvelles saisies) * Un bouton "Remettre par défaut" sera apposé à droite de la liste déroulante Équipé de ces nouvelles tables et champs, le but est de permettre la conversion taille-poids depuis des types de taille différents (et plus seulement le type par défaut de chaque espèce). Nouvel algorithme de calcul taille-poids : Dans l'algorithme actuel : * Pour les non cible, la conversion se fait sans tenir compte du type de mesure, puisque toutes sont censées être faites dans le type de mesure pas défaut, le seul pour lequel les paramètres de conversion (taille-poids ou poids-taille). * Pour les cibles, la conversion se fait sans tenir compte du type de mesure, ce qui relève du bug puisque des mesures LF et LD1 cohabitent Nouvel algorithme de calcul taille-poids : * Pour chaque mesure, dont le type de mesure sera systématiquement associé, chercher dans la table lengthweightparameter si la relation taille -> poids directe existe * Si oui, appliquer * Si non, chercher dans la table lengthlengthparameter si la relation 'type de la mesure' -> 'type de mesure standard' est disponible * Si oui appliquer, puis appliquer la relation 'taille standard' -> 'poids standard' * Reprendre le fil de l'algorithme actuel Algorithme de calcul poids-taille : * la conversion poids -> taille se fera toujours vers le type de taille standard (sous réserve que les paramètres soient trouvés dans leangthweightparameter), comme ce a toujours été le cas. En attente validation CL tchemit Evolution Normal 6.0 persistence -
[LL] Problème sur l'ordre des sections/baskets dans le schéma de palangre selon le tri dans schéma de palangre, lorsqu'on sélectionne l'ordre croissant filage ou virage, cela crée 2 bugs: h2. Plus de 10 filages le premier lorsqu'il y a plus de 10 filages, l'ordre est chamboulé, les dizaines se retrouvent juste après le 1 comme par exemple: * filage 1 * filage 10 * filage 11 * filage 2 * filage 3 * ... Sûrement dû au type VARCHAR utilisé sur ce champ. I faudrait passer sur du INT. h2. Erreurs d'affichage Le deuxième est plus grave, et est représenté en image (voir screenshots ci-joints) dans cet exemple, lorsque l'ordre choisi est ordre croissant par filage, la section 16 du filage 10 possède 14 baskets et 6 hameçons par basket. Lorsque l'on choisit de lire par ordre croissant par virage, on obtient alors pour la section 16, 13 baskets et 6 hameçons par basket (ce qui correspond à ce qui est indiqué sur le formulaire papier pour le filage 10) Lorsque l'on ferme observe et le rouvre, la lecture par ordre s'efface et nous revenons à une lecture vraie qui correspond à 13 baskets pour la section 16 dans le filage 10. Ceci accrédite la thèse du bug d'affichage selon l'ordre de tri. En attente validation client tchemit Anomalie Urgent 6.0 persistence -
[PS] Ajout d'un champ sur les captures Dans la table observe_seine.set, ajouter 2 champs booléens : * targetcatchcompositionestimatedbyobserver * targetdiscardcompositionestimatedbyobserver Bien que ces champs soient situés sur la table calée, sur l'UI on souhaiterait qu'ils prennent place sur : * Le formulaire Capture cible, entre la section de configuration d'une capture et les boutons Annuler/Enregistrer d'enregistrement en base * Le formulaire Rejet cible, entre la section de configuration d'une capture et les boutons Annuler/Enregistrer d'enregistrement en base Par défaut ils seront décochés (FALSE). Pour la migration, on attribuera FALSE à ces champs sur l'ensemble des données existantes. En attente validation client tchemit Evolution Normal 6.0 persistence -
Améliorer la gestion du focus et ajouter des racourcis clavier Sur l'ensemble des formulaires on souhaite améliorer la gestion du focus, son passage automatique d'un champ à l'autre lorsqu'un champ est complété, ou par tabulation. On souhaiterait aussi rajouter des raccourcis clavier (à définir). En attente validation client pcauquil Evolution Normal 6.0 gui -
[ObServeLL] Classement des listes déroulantes section/panier/avançon du formulaire capture Dans le formulaire 'Captures', partie 'Position sur la ligne', le contenu des listes déroulantes Section/Panier/Avancon devrait être classé selon le sens de virage de cette opération de pêche (actuellement le contenu est toujours classé comme si le sens du virage était celui du filage). En attente validation client tchemit Evolution Normal 6.0 gui -
Lors d'un import sql.gz vers la base centrale, possibilité d'ajouter dans la base centrale les références manquantes Lors d'une base locale vers la base centrale, on souhaiterait ajouter la possibilité que les références manquantes soient importées de la base locale vers la base centrale, comme alternative au remplacement de référence. Cette entorse au règlement historique d'ObServe nous permettra de gérer plus facilement des scénarios d'échange de données entre bases qui sont actuellement difficiles à assurer. En attente commentaire Client pcauquil Evolution Urgent 6.0 persistence -
La fonctionnalité «Accéder à la marée» (ou route ou activité) ne fonctionne plus   En attente validation client tchemit Anomalie Normal 6.0 gui -
La session ouverte n'est pas sauvegardée dans la configuration C'est le comportement qu'on avait défini, la sauvegarde a dû être perdue à un moment ou à un autre... La remettre en place. En attente validation client tchemit Anomalie Normal 6.0 gui -
L'action «Annuler» sur l'édition d'un référentiel affiche un formulaire vide et non pas le formulaire du réferentiel en cours d'édition   En attente validation client tchemit Anomalie Normal 6.0 gui -
Mauvaise resitution de l'information «observé» ou «calculé» sur l'écran des échantillons La première ligne en édition est correcte, mais dès qu'on change de ligne cela ne va plus, on se retrouve avec tout en «observé». À corrigé. En attente validation client tchemit Anomalie Normal 6.0 gui -
[TABLEAUX DE SYNTHESE] Nouvelle requête sur les équipements bateau Rajouter une requête de synthèse sur les équipements du bateau avec : * une ligne par enregistrement d'équipement * en colonnes : >* code - nom équipement >* nombre >* utilisé oui/non/indéterminé >* sur une colonne, séparés par des ";", les quintuplets code caractéristique/libellé/unité/valeur} En attente validation client tchemit Evolution Normal 6.0 rapports -
Corriger le référentiel Espèce Pour que la migration de #8391 fonctionne il faut que le champs *species.lengthmeasuretype* soit renseigné en adéquation avec le champs *sizemeasuretype.code*. J'ai détecté dans votre référentiel deux espèces qui ont une valeur vide pour ce champs, ce qui bloque la migration (à juste titre). voici les deux espèces en question :
fr.ird.observe.entities.referentiel.Species#1239832683861#0.7598003083421893 Carcharodon carcharias
fr.ird.observe.entities.referentiel.Species#1239832684414#0.45779952398671275  Balistes carolinensis
Terminée tchemit Tâche Normal 6.0 persistence -
Vérifier la parfaite adéquation version serveur / version client Client Swing et serveur nécessitent que leurs versions soient parfaitement accordée (même au niveau du respect des versions mineures). Il faudra une vérification de l'adéquation des 2 versions lors de la validation de chaque connexion pour éviter les combinaisons douteuses. A l'heure actuelle il ne semble pas y avoir de vérification En attente commentaire Client pcauquil Evolution Normal 6.0 application-web -
Ajout d'un clic droit/ajouter sur le tableau LL de définition des templates de section Sur #6773 nous demandions l'ajout d'une fonction clic droit/ajouter sur les tableaux de saisie de taille et poids LL. Nous nous avions oublié de mentionner, sur ce ticket, le tableau (du même type) de saisie des templates de section (sur Opération de pêche/Composition détaillée/Définition des modèles). Sur celui-ci la fonction clic droit/supprimer est déjà là. Il manque juste la fonction Ajouter. Serait-il possible de l'ajouter gracieusement ? Merci En attente validation client tchemit Evolution Normal 6.0 gui -
Ajout de champs liés au marquage d'individus Sur les 4 formulaires : * PS Echantillon thon rejeté * PS Echantillon thon capturé * PS Echantillon de faune accessoire * LL Capture/Caractéritiques On souhaite ajouter un champ "tagNumber", alphanumérique(128) non contrôlé. Ces champs ne seront disponibles (non grisés) qu'en mode de saisie individuelle. En attente validation client tchemit Evolution Haut 6.0 persistence -
[PS] Améliorer le contrôle des tailles/poids min/max d'espèces (doubler le warning d'une erreur) Initialement le contrôle des tailles et poids min-max sur les espèces est appliqué comme erreur. En 2014 nous l'avons changé en warning, car il semble que certains bornes hautes ne satisfont pas 100% des individus. Cependant on ne voulait pas élargir ces bornes (et donc assouplir les contrôles), car pour 99% des individus elles sont adaptées, et l'accroissement ne concernerait que 1% des individus. Mais en conséquence, certains observateurs outrepassent le warning et on se retrouve avec des tailles improbables (parfois un 0 de trop... 15000cm au lieu de 1500cm...) On souhaite : * laisser le contrôle actuel en l'état (warning) * ajouter un contrôle de type erreur qui se déclencherait si la borne est dépassée de 20% (20% par défaut, pourcentage paramétrable). Ainsi les dépassement qui restent probables seront signalés, et ceux qui sont improblables seront exclus sans possibilité d'outrepasser. En attente validation client tchemit Evolution Immédiat 6.0 gui -
Ré ouverture de #8879 #8879 Ok pour la case à cocher pour activer un remplacement, mais les entrées sont toujours sélectionnables dans les listes déroulantes. Sauf erreur de ma part la sélection n'a pas d'effet (ne limite pas le remplacement aux lignes sélectionnées). Dans ce cas, si faisable facilement, il faudrait empêcher la sélection dans ces boîtes. En attente commentaire Client pcauquil Anomalie Normal 6.0 gui -
[LL] Nombre de coupures inconnu : cas problématique *Formulaire Activité/Opération de pêche/Virage* Le nombre de coupures est dans certains cas une information non connue. Cependant, ce champs est (codé dans Observe comme) obligatoire car de la valeur dépend la possibilité de générer le schéma de palangre, si =0: schéma généré normalement, si >0 le schéma doit être généré à la main, section par section, basket par basket etc., ce qui n'est en fait pas utile. On souhaite : * Que le schéma soit généré automatiquement et que les ids de filage ET virage soient générés quelque soit la valeur indiquée dans "Nombre de coupures de ligne" * Pouvoir laisser le champ "nb coupures" vide (actuellement la validation d'UI exige une valeur) En attente validation client pcauquil Evolution Normal 6.0 dependencies -