a.setSuppressEvents(false);
		private void list20() throws IOException, ModuleException {			// setup the protocol parameters			NVPair form_data[] = {				new NVPair("cmd", "fetch-albums"),				new NVPair("protocol_version", PROTOCOL_VERSION)			};			Log.log(Log.LEVEL_TRACE, MODULE, "fetchAlbums parameters: " + Arrays.asList(form_data));			// load and validate the response			Properties p = requestResponse(form_data);			if (p.getProperty("status").equals(GR_STAT_SUCCESS)) {				ArrayList mAlbumList = new ArrayList();				// parse and store the data				int albumCount = Integer.parseInt(p.getProperty("album_count"));//	System.err.println( "### albumCount = " + albumCount );				HashMap ref2parKey = new HashMap();				HashMap ref2album = new HashMap();				for (int i = 1; i < albumCount + 1; i++) {					Album a = new Album(g);					String nameKey = "album.name." + i;					String titleKey = "album.title." + i;					String parentKey = "album.parent." + i;					String permsAddKey = "album.perms.add." + i;					String permsWriteKey = "album.perms.write." + i;					String permsDelItemKey = "album.perms.del_item." + i;					String permsDelAlbKey = "album.perms.del_alb." + i;					String permsCreateSubKey = "album.perms.create_sub." + i;					String infoExtraFieldsKey = "album.info.extrafields." + i;					a.setCanAdd(isTrue(p.getProperty(permsAddKey)));					a.setCanWrite(isTrue(p.getProperty(permsWriteKey)));					a.setCanDeleteFrom(isTrue(p.getProperty(permsDelItemKey)));					a.setCanDeleteThisAlbum(isTrue(p.getProperty(permsDelAlbKey)));					a.setCanCreateSubAlbum(isTrue(p.getProperty(permsCreateSubKey)));					a.setExtraFieldsString(HTMLEscaper.unescape(p.getProperty(infoExtraFieldsKey)));					a.setName(p.getProperty(nameKey));					a.setTitle(HTMLEscaper.unescape(p.getProperty(titleKey)));					mAlbumList.add(a);					// map album ref nums to albums					ref2album.put("" + i, a);					// map album refs to parent refs					String parentRefS = p.getProperty(parentKey);					int parentRef = Integer.parseInt(parentRefS);					if (parentRef != 0) {						ref2parKey.put("" + i, parentRefS);					} else {						a.setParentAlbum(null);					}				}				// link albums to parents				for (int i = 1; i < albumCount + 1; i++) {					String parentKey = (String) ref2parKey.get("" + i);					if (parentKey != null) {						Album a = (Album) ref2album.get("" + i);						if (a != null) {							Album pa = (Album) ref2album.get(parentKey);							a.setParentAlbum(pa);						}					}				}				status(su, StatusUpdate.LEVEL_BACKGROUND, GRI18n.getString(MODULE, "ftchdAlbms"));				g.setAlbumList(mAlbumList);			} else {				Object[] params = {p.getProperty("status_text")};				error(su, GRI18n.getString(MODULE, "error", params));			}		}