public void getSpreadsheetContent() throws Exception {
		Thread t = new Thread() {
			public void run() {
				logUpdated = false;
				logsCount = 0;
				try {
					logsWorksheet = logSpreadsheet.getDefaultWorksheet();
					listFeed = logsWorksheet.getListFeedUrl();
					lists = client.getFeed(listFeed, ListFeed.class);

					int i=0;
					for (ListEntry entry : lists.getEntries()) {
						String current = "";
						Map<String,String> valueMap = new HashMap<String, String>();

						for (String tag : entry.getCustomElements().getTags()) {
							current = entry.getCustomElements().getValue(tag);
							valueMap.put(tag, current);
							//System.out.println("  <gsx:" + tag + ">" + entry.getCustomElements().getValue(tag) + "</gsx:" + tag + ">");
						}

						logsValues.put(Integer.valueOf(i), valueMap);
						i++;
					}

					ListEntry tagEntry = lists.getEntries().get(0);

					/// tags list has to be saved separately, to avoid multiple entries in
					/// the Vector<String> tagsList field
					for (String tag : tagEntry.getCustomElements().getTags())
						tagsList.add(tag);

					logsCount = logsValues.size();
				}
				catch(Exception e) {
					guiRef.writeSysLog("E","Error in retrieving spreadsheet data.");
					e.printStackTrace();
					logsCount = -1;
					//TODO gestisci meglio l'eccezione: dialog di errore e POI uscita forzata
				}
				
				synchronized(lock) {
					logUpdated = true;
					lock.notifyAll();
				}
			}
		};

		t.start();
	}