private void initDict() {
		if (init)
			return;
		
		log("initialize map...");

		InputStream is = null;
		String[] p = null;

		try {
			is = getClass().getClassLoader().getResourceAsStream(config + ".properties");
			p = getValFrProperty(is, new String[]{ PROPERTY_PHRASE, PROPERTY_CHAR });

		} catch (Exception e){
			log("initDict Exception: " + e.getStackTrace());
			if (is != null){
				try {
					is.close();
				} catch (IOException e1) {
					log("initDict close IOException: " + e1.getStackTrace());
				}
				is = null;
			}
			return;
		}

		if (isMissing(p)){
			log("cannot get config: " + config);
			return;
		}
		
		dictPhrase = FileUtil.readDict(new File(p[0]));
		dictChar = FileUtil.readDict(new File(p[1]));
		
		if (isMissing(dictPhrase) || isMissing(dictChar)){
			log("cannot get dict");
			return;
		}
		
		init = true;
	}