private void createSuffixTree() {
		log.debug("Creating suffix tree");
		for (int i = 0; i < inputs.size(); i++) {
			//log.info("Now processing "+i+"th word.");
			log.debug("Now processing: " + inputs.get(i)); 
			if(inputs.get(i)==null||inputs.get(i).length()==0)
				continue;
			for (int j = 0; j < inputs.get(i).length(); j++) {
				log.debug("Now adding: " + inputs.get(i).charAt(j));//
				nextSuffixLink = null;//always the end suffix link from start
				updateActiveNode(root, j, i);
				log.debug("========================================================");
			}
			//add(inputs.get(i),i);
			finishingTree(i);
			log.debug("========================================================");
		}
		
		if(log.isDebugEnabled()){
			showLeafNodes();
			showInternalNodes();
			//showBuildChain();
		}
	}