Log.log(Log.TRACE, MODULE, "Url: " + url + urlPath);
Log.log(Log.TRACE, MODULE, "Url: " + url + SCRIPT_NAME);
		void runTask() {			status("Fetching albums from " + g.toString());						try {				URL url = new URL(g.getUrl());				String urlPath = url.getFile() + SCRIPT_NAME;				Log.log(Log.TRACE, MODULE, "Url: " + url + urlPath);								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("Received redirect, following...");										rsp = mConnection.Post(urlPath, form_data);				}								if (rsp.getStatusCode() >= 300)	{					error("HTTP Error: "+ rsp.getStatusCode()+" "+rsp.getReasonLine());					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");							Hashtable h = new Hashtable();							if (colT.countTokens() == 2) {								h.put("name", URLDecoder.decode(colT.nextToken()));								h.put("title", URLDecoder.decode(colT.nextToken()));								mAlbumList.add(h);							}						}												status("Fetched albums");												g.setAlbumList(mAlbumList);					} else {						error("Error: " + response);					}				}			} catch (IOException ioe) {				Log.logException(Log.ERROR, MODULE, ioe);				status("Error: " + ioe.toString());			} catch (ModuleException me) {				Log.logException(Log.ERROR, MODULE, me);				status("Error: " + me.toString());			} catch (Exception ee) {				Log.logException(Log.ERROR, MODULE, ee);				status("Error: " + ee.toString());			}		}