synchronized (dataContexts) {
UpdateableDataContext dataContext = dataContexts.get(filename);
if (dataContext == null) {
File file = new File(filename);
dataContext = new ExcelDataContext(file);
Table table = getTable(dataContext, sheetName, columns);
dataContexts.put(filename, dataContext);
counters.put(filename, new AtomicInteger(1));