private List<HashMap<String, String>> parseCsvToMap(LineNumberReader lineNumberReader) {
        String line;
        List<String> fieldNames=null;
        String fieldDelimiter = ",";
        List<HashMap<String,String>> listOfMap = new ArrayList<HashMap<String, String>>();
        try {
            while((line=lineNumberReader.readLine()) !=null){
                HashMap<String,String> csvMap = new HashMap<String, String>();
                if(lineNumberReader.getLineNumber() == 1){
                    fieldNames = formatFieldNames(line.split(fieldDelimiter));
                    // assumption is the csv file has first row as field names.
                }else {
                    String[] fieldValues = line.split(fieldDelimiter);
//                    int usableFieldCount = Math.min(fieldNames.size(),fieldValues.length);
//                    for(int i=0;i<usableFieldCount;i++){
//                        csvMap.put(fieldNames.get(i), fieldValues[i]);
//                    }
//                  XXXXXXXXXXXXXXXXX
                    for(int i=0;i<fieldValues.length;i++){
                        if(i>=fieldNames.size()){
                            String s = "";
                            for(int j=i;j<fieldValues.length;j++){
                                s = s+fieldValues[j];
                            }
                            csvMap.put("Misc",s);
                            break;
                        }
                        else {
                            csvMap.put(fieldNames.get(i), fieldValues[i]);
                        }
                    }
//                  XXXXXXXXXXXXXXXXX
                }
                if(csvMap.size()!=0) listOfMap.add(csvMap);
            }
        } catch (Exception e) {
            e.printStackTrace();  //To change body of catch statement use File | Settings | File Templates.
        }
        return listOfMap;
    }