Bonsoir à vous,
je développe une application web avec l'API ArcGIS for flex (1.3).
Cependant je rencontre un problème assez inédit :

Mon code bloque sur l'appel d'une fonction avec pour unique paramètre une variable String.

Je précise que cette variable String a été testée :
- pas de caractère invisible.
- type correct
surtout le contenu de cette String est celui attendu.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
private function getServices():Array{ 
	    	var array:Array = new Array();
	    	var layer:Layer;
	    	var hasGraphicsLayer:Boolean = false;
 
	    	for(var i:Number = 0; i<this.configData.configMap.length ;i++){
	    		try{
	    			layer = getMainServiceLayer(this.configData.configMap[i].label);
	    		}catch (e:Error){
	    			Alert.show(e.message);
	    		}
	    		if(layer.visible) {
	    			if(layer is GraphicsLayer) {
	    				hasGraphicsLayer = true;
	    			} else {
	    				array.push(this.configData.configMap[i]);
	    			}
	    		}
	    	}
 
	    	if(hasGraphicsLayer) array.push({label:dynamicLayerGroupName}) ;
 
	    	return array;
	    }
Cette fonction fait appel à la fonction qui plante : getMainServiceLayer(st:String) qui a pour code

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
 
private function getMainServiceLayer(st:String):Layer{
	var layer:Layer = null;
	  for (var i:Number =0;i<theMap.layerIds.length;i++)
	   {
	   	if (theMap.layerIds[i].toString() == st)
	   	{
	   		layer = theMap.getLayer(theMap.layerIds[i]);
	   		break;
	   	}
	     }
	  return layer;
}
J'ai bien sûr essayé des Alert à chaque étape, rien ni fait le code s'arrête mystérieusement lors du dernier tour de l'appel de la fonction getMainServiceLayer(st:String). Après avoir essayé toutes sortes d'Alert, j'ai décidé de placer un try / catch sur l'appel de la fonction pour comprendre et récupérer l'erreur.
Résultat, le try est exécuté en buggant mais ne lève pas d'erreur dans le catch.

Quelqu'un aurait-il une idée de ce que cela pourrait-il être ?
Quelqu'un a déjà rencontré ce bug ?

Merci d'avance !