Home Product Support IT Modernization Documents créés par l'interface Dispatch One Projet $DAS02: ArcObjects Java : problème avec le

WJ0202S185 : Projet $DAS02: ArcObjects Java : problème avec le

Technical environment

Product: DAS-ARCINFO
Company: DASSAULT AVIATION
Customer Code: 0WE110C
Caller: M. BOURBON GILLES

Question

Projet $DAS02: ArcObjects Java : problème avec le
composant MapControl - 200901003
Produit : ArcObjects ArcEngine Java
Bonjour,
j'ai un problème lorsque je ferme une fenêtre
(JFrame) se trouvant au dessus de l'objet
MapControl (carte) via la croix rouge de la
fenêtre : dans la barre des taches mais
l'affichage se fige et l'application ne répond
plus.
Lorsque je ferme la fenêtre hors de la carte, il
n'y a pas de problème.
Lorsque je réduis la fenêtre au dessus de la
carte, pas de problème.
Lorsque je ferme la fenêtre au dessus de la carte
via un clic droit sur l'icà´ne Java en haut à 
gauche de la fenêtre, pas de problème.
Lorque la fenêtre est un JFileChooser et que je
la ferme au dessus de la carte, pas de problème
non plus.
.
J'ai ajouté à  mon instance de l'objet MapControl,
un IMapControlEvents2Adapter, et redéfini le
onMouseMove pour afficher dans un JTextField les
coordonnées du curseur.
Lorsque je n'ajoute pas l'adaptater, le problème
n'apparait jamais.
Pourriez vous m'aider ?
Votre problème nous fait penser à  un blocage de
thread.
Cela ressemble au cas de figure suivant:
Un objet COM ArcEngine fait un appel à  une méthode
Java, qui elle-même fait un appel à  la méthode XX
sur un objet SWING..
Ce dernier n'étant pas appelé dans le thread SWING
génère un alors un blocage. (locked.....).
Pouvez-vous vérifier que vous ne vous trouvez pas
dans ce cas de figure?
Par contre peut être pourriez vous obtenir la
réponse en sachant que :
1 j'ai ajouté à  mon instance de l'objet
MapControl, un IMapControlEvents2Adapter, et
redéfini le onMouseMove pour afficher dans un
JTextField les coordonnées du curseur.
2 si j'ouvre une JFrame et que je la ferme au
dessus de la JFrame contenant le MapControl, cela
plante.

Solution

Compte tenu de ce que vous me décrivez, je pense
que c'est exactement cela que vous rencontrez
comme problème.
Sun préconise dans ce cas d'utiliser la méthode
invokeLater qui sera alors en charge de mettre
l'appel dans la pile du thread concerné.
Je pense que c'est un problème de développement
SWING qui n'est pas lié à  ArcGIS Engine.
Pouvez-vous vérifier ce point ?
En déplaçant l'appel de la méthode mettant à  jour
le JTextField, dans un thread lancé par
invokeLater, le problème ne se reproduit plus.
Le fait que les composants ESRI soient gérés dans
un Thread spécifique nécessite en effet une
attention particulière lors de leur utilisation
avec SWING.
D'après moi on peut considérer le problème comme
résolu.
Merci de votre aide.

External remark n°1

Projet $DAS02: ArcObjects Java : problème avec le
composant MapControl - 200901003

Descriptive remark n°2

Code client : 11771
Produit : ArcObjects ArcEngine Java
Bonjour,
j'ai un problème lorsque je ferme une fenêtre
(JFrame) se trouvant au dessus de l'objet
MapControl (carte) via la croix rouge de la
fenêtre : dans la barre des taches mais
l'affichage se fige et l'application ne répond
plus.
Lorsque je ferme la fenêtre hors de la carte, il
n'y a pas de problème.
Lorsque je réduis la fenêtre au dessus de la
carte, pas de problème.
Lorsque je ferme la fenêtre au dessus de la carte
via un clic droit sur l'icà´ne Java en haut à 
gauche de la fenêtre, pas de problème.
Lorque la fenêtre est un JFileChooser et que je
la ferme au dessus de la carte, pas de problème
non plus.
.
J'ai ajouté à  mon instance de l'objet MapControl,
un IMapControlEvents2Adapter, et redéfini le
onMouseMove pour afficher dans un JTextField les
coordonnées du curseur.
Lorsque je n'ajoute pas l'adaptater, le problème
n'apparait jamais.
Pourriez vous m'aider ?
Merci d'avance
M. Clin Marc

Descriptive remark n°3

$email,N,gilles.bourbon@dassault-aviation.com

Descriptive remark n°4

M. CLIN Marc est un préstataire en mission aavec
M. bourbon.
Le dossier est en cours avec Esri.

Descriptive remark n°5

M. CLIN Marc a écrit:
Bonjour, je n'ai pas eu de réponse de votre part
suite au mail ci dessous.
Dois je changer le destinataire du mail ?
Vous faut il plus de précisions ?
Merci d'avance de votre réponse.

Descriptive remark n°6

Relance par sur le traitement du dossier.

Descriptive remark n°7

M. Alain RAVAZY a écrit:
Bonjour,
Avez-vous pu m'envoyer les logs demandé au niveau
de vos composants Java comme demandé dans mon mail
en attaché ?
Nous avons besoin de ces logs afin de déterminer
la cause de ce problème de thread.
Cordialement

Descriptive remark n°8

M. Alain RAVAZY a écrit:
Bonjour,
Avez-vous pu m'envoyer les logs demandé au niveau
de vos composants Java comme demandé dans mon mail
en attaché ?
Nous avons besoin de ces logs afin de déterminer
la cause de ce problème de thread.
Cordialement

Descriptive remark n°9

M. Clin marc a écrit:
Bonjour,

comme convenu, j'ai essayé de récupérer les logs
générés lors de mon problème de bloquage de
l'application suite à  un clique croix rouge sur un
formulaire.
Malheureusement acun ifchier *pid*log n'est créé
et la console est également muette. Auriez vous un
fichier particluier à  me faire chercher ?
Sinon je peux vous envoyer un extrait de mon
programme pour que vous reproduisiez l'erreur chez
vous ...

Descriptive remark n°10

M. Clin marc a écrit:
Bonjour,

Comme convenu j'ai essayé de récupérer les logs
générés lors des plantages (bloquage application
suite à  clique croix rouge formulaire), cependant
il semble qu'aucun fichier *pid*log ne soit créé
lors du plantage.
La console reste muette aussi.

Descriptive remark n°11

M. Alain RAVAZY a écrit:
Bonsoir,
Votre problème nous fait penser à  un blocage de
thread.
Cela ressemble au cas de figure suivant:
Un objet COM ArcEngine fait un appel à  une méthode
Java, qui elle-même fait un appel à  la méthode XX
sur un objet SWING..
Ce dernier n'étant pas appelé dans le thread SWING
génère un alors un blocage. (locked.....).

Pouvez-vous vérifier que vous ne vous trouvez pas
dans ce cas de figure ?
Cordialement

Descriptive remark n°12

M. Clin Marc a écrit:
Je ne saurai pas vous répondre.
Par contre peut être pourriez vous obtenir la
réponse en sachant que :
1 j'ai ajouté à  mon instance de l'objet
MapControl, un IMapControlEvents2Adapter, et
redéfini le onMouseMove pour afficher dans un
JTextField les coordonnées du curseur.
2 si j'ouvre une JFrame et que je la ferme au
dessus de la JFrame contenant le MapControl, cela
plante.

Descriptive remark n°13

M. Alain RAVAZY a écrit:
Compte tenu de ce que vous me décrivez, je pense
que c'est exactement cela que vous rencontrez
comme problème.
Sun préconise dans ce cas d'utiliser la méthode
invokeLater qui sera alors en charge de mettre
l'appel dans la pile du thread concerné.
Je pense que c'est un problème de développement
SWING qui n'est pas lié à  ArcGIS Engine.
Pouvez-vous vérifier ce point ?
Cordialement

Descriptive remark n°14

M. clin Marc a écrit:
Bonjour,
merci de votre réponse.
En déplaçant l'appel de la méthode mettant à  jour
le JTextField, dans un thread lancé par
invokeLater, le problème ne se reproduit plus.
Le fait que les composants ESRI soient gérés dans
un Thread spécifique nécessite en effet une
attention particulière lors de leur utilisation
avec SWING.
D'après moi on peut considérer le problème comme
résolu.
Merci de votre aide.

Descriptive remark n°15

%Q%
Projet $DAS02: ArcObjects Java : problème avec le
composant MapControl - 200901003
Produit : ArcObjects ArcEngine Java
Bonjour,
j'ai un problème lorsque je ferme une fenêtre
(JFrame) se trouvant au dessus de l'objet
MapControl (carte) via la croix rouge de la
fenêtre : dans la barre des taches mais
l'affichage se fige et l'application ne répond
plus.
Lorsque je ferme la fenêtre hors de la carte, il
n'y a pas de problème.
Lorsque je réduis la fenêtre au dessus de la
carte, pas de problème.
Lorsque je ferme la fenêtre au dessus de la carte
via un clic droit sur l'icà´ne Java en haut à 
gauche de la fenêtre, pas de problème.
Lorque la fenêtre est un JFileChooser et que je
la ferme au dessus de la carte, pas de problème
non plus.
.
J'ai ajouté à  mon instance de l'objet MapControl,
un IMapControlEvents2Adapter, et redéfini le
onMouseMove pour afficher dans un JTextField les
coordonnées du curseur.
Lorsque je n'ajoute pas l'adaptater, le problème
n'apparait jamais.
Pourriez vous m'aider ?
Votre problème nous fait penser à  un blocage de
thread.
Cela ressemble au cas de figure suivant:
Un objet COM ArcEngine fait un appel à  une méthode
Java, qui elle-même fait un appel à  la méthode XX
sur un objet SWING..
Ce dernier n'étant pas appelé dans le thread SWING
génère un alors un blocage. (locked.....).
Pouvez-vous vérifier que vous ne vous trouvez pas
dans ce cas de figure?
Par contre peut être pourriez vous obtenir la
réponse en sachant que :
1 j'ai ajouté à  mon instance de l'objet
MapControl, un IMapControlEvents2Adapter, et
redéfini le onMouseMove pour afficher dans un
JTextField les coordonnées du curseur.
2 si j'ouvre une JFrame et que je la ferme au
dessus de la JFrame contenant le MapControl, cela
plante.

Descriptive remark n°16

%S%
Compte tenu de ce que vous me décrivez, je pense
que c'est exactement cela que vous rencontrez
comme problème.
Sun préconise dans ce cas d'utiliser la méthode
invokeLater qui sera alors en charge de mettre
l'appel dans la pile du thread concerné.
Je pense que c'est un problème de développement
SWING qui n'est pas lié à  ArcGIS Engine.
Pouvez-vous vérifier ce point ?
En déplaçant l'appel de la méthode mettant à  jour
le JTextField, dans un thread lancé par
invokeLater, le problème ne se reproduit plus.
Le fait que les composants ESRI soient gérés dans
un Thread spécifique nécessite en effet une
attention particulière lors de leur utilisation
avec SWING.
D'après moi on peut considérer le problème comme
résolu.
Merci de votre aide.

External remark n°17

Projet $DAS02: ArcObjects Java : problème avec le
composant MapControl - 200901003

Keywords

FR1901
FRKBSWCLI

D1 Article

— filed under: ,
Assistance request
Create and track
Bull Search