Log.log(Log.TRACE, MODULE, response);
Log.log(Log.LEVEL_TRACE, MODULE, response);
		void runTask() {            Object [] params = {g.toString() };			su.startProgress(StatusUpdate.LEVEL_BACKGROUND, 0, 10, grRes.getString(MODULE, "ftchngAlbm", params), true);						try {				URL url =g.getGalleryUrl(SCRIPT_NAME);				String urlPath = url.getFile();				Log.log(Log.TRACE, MODULE, "Url: " + url);								NVPair form_data[] = {					new NVPair("cmd", "fetch-albums"),					new NVPair("protocal_version", PROTOCAL_VERSION),					new NVPair("uname", g.getUsername()),					new NVPair("password", g.getPassword())				};				Log.log(Log.TRACE, MODULE, "fetchAlbums parameters: " + Arrays.asList(form_data));								mConnection = new HTTPConnection(url);				HTTPResponse rsp = mConnection.Post(urlPath, form_data);								if (rsp.getStatusCode() >= 300 && rsp.getStatusCode() < 400) {					// retry, the library will have fixed the URL					status(StatusUpdate.LEVEL_BACKGROUND, grRes.getString(MODULE, "redirect"));										rsp = mConnection.Post(urlPath, form_data);				}								if (rsp.getStatusCode() >= 300)	{                    Object [] params2 = {new Integer(rsp.getStatusCode()), rsp.getReasonLine()};					error(grRes.getString(MODULE, "httpErr", params2));					return;				} else {					String response = new String(rsp.getData()).trim();					Log.log(Log.TRACE, MODULE, response);						if (response.indexOf("SUCCESS") >= 0) {						ArrayList mAlbumList = new ArrayList();												// build the list of hashtables here...						StringTokenizer lineT = new StringTokenizer(response, "\n");						while (lineT.hasMoreTokens()) {							StringTokenizer colT = new StringTokenizer(lineT.nextToken(), "\t");														if (colT.countTokens() == 2) {								Album a = new Album();																a.setName( URLDecoder.decode(colT.nextToken()) );								a.setTitle( URLDecoder.decode(colT.nextToken()) );																a.setGallery( g );																mAlbumList.add(a);							}						}												status(StatusUpdate.LEVEL_BACKGROUND, grRes.getString(MODULE, "ftchdAlbm"));												g.setAlbumList(mAlbumList);					} else {                        Object [] params2 = { response };						error(grRes.getString(MODULE, "error", params2));					}				}			} catch (IOException ioe) {				Log.logException(Log.ERROR, MODULE, ioe);                Object [] params2 = {ioe.toString()};				status(StatusUpdate.LEVEL_BACKGROUND, grRes.getString(MODULE, "error", params2));			} catch (ModuleException me) {				Log.logException(Log.ERROR, MODULE, me);                Object [] params2 = {me.toString()};				status(StatusUpdate.LEVEL_BACKGROUND, grRes.getString(MODULE, "error", params2));			} catch (Exception ee) {				Log.logException(Log.ERROR, MODULE, ee);                Object [] params2 = {ee.toString()};				status(StatusUpdate.LEVEL_BACKGROUND, grRes.getString(MODULE, "error", params2));			}					su.stopProgress(StatusUpdate.LEVEL_BACKGROUND, grRes.getString(MODULE, "ftchComplt"));		}