private HashMap<String,String> readFielldsFromFile() {
		String stateFile = MDFConfig.getStateFile();
		
		HashMap<String,String> fields = new HashMap<String,String>();
		
		BufferedReader fin = null;
		
		try {
			File f = new File(stateFile);
			
			if (!f.exists() ) {
				log.warning("Sate file '"+stateFile+"' does not exist");
				return fields;
			}
			
			if (!f.canRead()) {
				log.warning("State file '"+stateFile+"' exists but cannot be read.");
			}
			
			fin = new BufferedReader(new FileReader(f));
			
			String line = "";
			
			while (fin.ready()) {
				line = fin.readLine();
				
				if (!Utils.isEmpty(line)) {
					
					if (line.contains(LINE_SPLITTER)) {
						String key = line.substring(0,line.indexOf(LINE_SPLITTER));
						String value = line.substring(line.indexOf(LINE_SPLITTER)+LINE_SPLITTER.length());
						
						fields.put(key, value);
					}
				}
			}
			
			
		} catch (Exception e) {
			log.log(Level.WARNING,"An error occurred writing the state file " + e.getMessage(),e);
		} finally {
			if (fin != null) {
				try {fin.close();} catch (Exception e) {}
			}
		}
		
		
		return fields;		
	}