Si le RemoteControl a été activé dans les préférences de JOSM, le lancement
de la seconde instance de JOSM ne pourra pas activer son propre
RemoteControl sqns produire une erreur car le port TCP découte est déjà
occupé par la première instance.
De fait, JOSM devrait être capabme dans son module d'initialisation de
tester si le port d'écoute RemoteControl est déjà occupé en tentant de
l'allouer; s'il est déjà occupé il devrait alors essayer de s'y connecter
pour lui envoyer une ligne de commande de chargement de données et sortir
alors immédiatement en cas d'acceptation.
La première instance prendra alors la ligne de commande pour créer un
nouveau calque et charger les données demandées; ou simplement s'activer.
En aucun cas on ne devrait avoir une seconde instance dès que RemoteControl
est activé dans les préférences.

Cependnat dans certains cas, le port d'écoute est occupé mais ne répond pas
à la requête. Il arrive parfois que c'est une première instance qui est
resté "dans les choux" ou ne s'est pas encore terminée (j'ai déjà vu ça
quand on change les préférences et qu'on les valide, pour que JOSM se
relance (au redémarrage, le port n'est pas encore complètement libéré et
l'initialisation de la nouvelle instance au redémarrage échoue justement à
iniitialiser son port d'écoute pour RemoteControl; et on voit l(erreur dans
la fenêtre de log).
Cela semble ariver du fait que RemoteControl fait tourner son port d'écoute
sur un thread séparé du thread principal: bien que la première instance
soit théoriquement sortie, en fait seul son thread principal est terminé et
se relance (c'est toujours la même insance de la machine virtuelle Java),
mais le thread de Remote Control est resté encore actif sans encore sortir
quand le nouveau thread principal s'initialiser pour relancer un thread
pour RemoteControl...

Quand on quitte JOSM; il semble d'ailleurs qu'il faille plusieurs secondes
encore pour quele thread d'écoute de RemoteControl se termine (le temps que
le GarbageCollector fasse son travail de nettoyage des threads en cours).
Il peut arriver parfois que le délai avant que ce port d'écoute soit libéré
prenne plus d'une minute car l'exécution de la commande "Quitter" dans JOSM
semble oublier d'envoyer au Thread ReoteControl une commnde lui indiquant
de se terminer proprement.

D'ailleurs ce thread RemoteControl est particulièrement lent à répondre aux
requêtes même dans une utilisation normale à distance depuis un navigateur.
Presque à chaque fois le navigateur dignale une erreur de preise en charge
de la requete, alors que la requête a bien été acceptée et prise en compte
par RemoteControl.


Le 30 octobre 2014 18:34, Pieren <pier...@gmail.com> a écrit :

> 2014-10-30 18:19 GMT+01:00 Pierre-Yves Berrard <
> pierre.yves.berr...@gmail.com>:
>
> > java -jar "D:\JOSM\josm-tested.jar" [--download=] P1070311.JPG
> P1070312.JPG
> >
> > Mon problème est que si JOSM est déjà ouvert, une autre instance de
> > l'éditeur est créée.
> > Quelqu'un connaîtrait-il les options à ajouter pour empêcher ce
> comportement
> > ?
>
> Cette question serait plus pour la liste @dev-fr . Mais bon, sinon,
> c'est normal que ta commande crée une nouvelle instance de josm. Si tu
> veux controller une instance existante, il faudrait passer par le
> remote control:
> http://josm.openstreetmap.de/wiki/Help/Preferences/RemoteControl
>
> Je pense que tu peux balancer les commandes depuis ton shell avec un
> outil genre curl
>
> Pieren
>
> _______________________________________________
> Talk-fr mailing list
> Talk-fr@openstreetmap.org
> https://lists.openstreetmap.org/listinfo/talk-fr
>
_______________________________________________
Talk-fr mailing list
Talk-fr@openstreetmap.org
https://lists.openstreetmap.org/listinfo/talk-fr

Répondre à