public void restoreWorkSpaces() throws Exception
	{
        XMLDecoder d = null;
		try
		{
			FileInputStream fis = new FileInputStream(configFileFullName);
            d = new XMLDecoder(fis);
            Object o = d.readObject();
            if(o instanceof java.util.Hashtable)
            {
                java.util.Hashtable h = (java.util.Hashtable) o;
                for (int i = 0; i < workSpacesPersisters.length; i++)
                {
                    System.out.println("ws:" + workSpacesPersisters[i]);
                    try
                    {
                        WorkSpace ws = (WorkSpace) h.get(
                            workSpacesPersisters[i].getName());
                        workSpacesPersisters[i].setWorkSpace(ws);
                    }
                    catch (ClassCastException ex)
                    {
                        Controller.trace(1, "exception restoring workspaces: " + ex.getMessage());
                    }
                }

            }
            else
            {
                throw new Exception(o.getClass() + ", wrong class received while reading from " + configFileFullName);
            }
		}
		catch(Exception e)
		{
			e.printStackTrace();
			Controller.trace(2, "could not read configuration from " + configFileFullName);
			throw e;
		}
		finally
		{
            d.close();
		}
	}