From 9a5e6ce17eb2f1c607b9bcb86e6a3b3c2d424337 Mon Sep 17 00:00:00 2001 From: Michael Bayne Date: Thu, 23 Oct 2008 21:00:12 +0000 Subject: [PATCH] Converted Getdown over to the new samskivert Logger. Added a patch from Elias to recreate getdown.txt using the information provided to the applet if the version on the filesystem is corrupt or references an old appbase. --- src/java/com/threerings/getdown/Log.java | 27 +----- .../threerings/getdown/data/Application.java | 87 ++++++++--------- .../com/threerings/getdown/data/Digest.java | 7 +- .../com/threerings/getdown/data/Resource.java | 14 +-- .../getdown/launcher/AbortPanel.java | 4 +- .../threerings/getdown/launcher/Getdown.java | 95 +++++++++---------- .../getdown/launcher/GetdownApp.java | 34 +++---- .../getdown/launcher/GetdownApplet.java | 70 +++++++++----- .../getdown/launcher/ProxyPanel.java | 4 +- .../getdown/launcher/RotatingBackgrounds.java | 28 +++++- .../getdown/launcher/StatusPanel.java | 6 +- .../threerings/getdown/net/Downloader.java | 9 +- .../getdown/net/HTTPDownloader.java | 6 +- .../getdown/net/TorrentDownloader.java | 9 +- .../com/threerings/getdown/tools/Patcher.java | 5 +- .../threerings/getdown/util/ConfigUtil.java | 8 +- .../com/threerings/getdown/util/FileUtil.java | 10 +- .../threerings/getdown/util/LaunchUtil.java | 6 +- 18 files changed, 225 insertions(+), 204 deletions(-) diff --git a/src/java/com/threerings/getdown/Log.java b/src/java/com/threerings/getdown/Log.java index 2fcce85..4719554 100644 --- a/src/java/com/threerings/getdown/Log.java +++ b/src/java/com/threerings/getdown/Log.java @@ -20,8 +20,7 @@ package com.threerings.getdown; -import java.util.logging.Level; -import java.util.logging.Logger; +import com.samskivert.util.Logger; /** * A placeholder class that contains a reference to the log object used by the Getdown code. @@ -30,28 +29,4 @@ public class Log { /** We dispatch our log messages through this logger. */ public static Logger log = Logger.getLogger("com.threerings.getdown"); - - /** Convenience function. */ - public static void debug (String message) - { - log.fine(message); - } - - /** Convenience function. */ - public static void info (String message) - { - log.info(message); - } - - /** Convenience function. */ - public static void warning (String message) - { - log.warning(message); - } - - /** Convenience function. */ - public static void logStackTrace (Throwable t) - { - log.log(Level.WARNING, t.getMessage(), t); - } } diff --git a/src/java/com/threerings/getdown/data/Application.java b/src/java/com/threerings/getdown/data/Application.java index 22c424a..7ad1c11 100644 --- a/src/java/com/threerings/getdown/data/Application.java +++ b/src/java/com/threerings/getdown/data/Application.java @@ -64,7 +64,7 @@ import com.samskivert.text.MessageUtil; import com.samskivert.util.ArrayIntSet; import com.samskivert.util.RunAnywhere; import com.samskivert.util.StringUtil; -import com.threerings.getdown.Log; + import com.threerings.getdown.launcher.RotatingBackgrounds; import com.threerings.getdown.util.ConfigUtil; import com.threerings.getdown.util.FileUtil; @@ -72,6 +72,8 @@ import com.threerings.getdown.util.LaunchUtil; import com.threerings.getdown.util.MetaProgressObserver; import com.threerings.getdown.util.ProgressObserver; +import static com.threerings.getdown.Log.log; + /** * Parses and provide access to the information contained in the getdown.txt * configuration file. @@ -293,7 +295,7 @@ public class Application public Resource getPatchResource (String auxgroup) { if (_targetVersion <= _version) { - Log.warning("Requested patch resource for up-to-date or non-versioned application " + + log.warning("Requested patch resource for up-to-date or non-versioned application " + "[cvers=" + _version + ", tvers=" + _targetVersion + "]."); return null; } @@ -304,7 +306,7 @@ public class Application URL remote = new URL(createVAppBase(_targetVersion), pfile); return new Resource(pfile, remote, getLocalPath(pfile), false); } catch (Exception e) { - Log.warning("Failed to create patch resource path [pfile=" + pfile + + log.warning("Failed to create patch resource path [pfile=" + pfile + ", appbase=" + _appbase + ", tvers=" + _targetVersion + ", error=" + e + "]."); return null; @@ -327,7 +329,7 @@ public class Application URL remote = new URL(createVAppBase(_targetVersion), _javaLocation); return new Resource(vmfile, remote, getLocalPath(vmfile), true); } catch (Exception e) { - Log.warning("Failed to create VM resource [vmfile=" + vmfile + ", appbase=" + _appbase + + log.warning("Failed to create VM resource [vmfile=" + vmfile + ", appbase=" + _appbase + ", tvers=" + _targetVersion + ", javaloc=" + _javaLocation + ", error=" + e + "]."); return null; @@ -345,7 +347,7 @@ public class Application URL remote = new URL(createVAppBase(_targetVersion), file); return new Resource(file, remote, getLocalPath(file), false); } catch (Exception e) { - Log.warning("Failed to create full resource path [file=" + file + + log.warning("Failed to create full resource path [file=" + file + ", appbase=" + _appbase + ", tvers=" + _targetVersion + ", error=" + e + "]."); return null; @@ -364,7 +366,7 @@ public class Application String suffix = _trackingURLSuffix == null ? "" : _trackingURLSuffix; return _trackingURL == null ? null : new URL(_trackingURL + event + suffix); } catch (MalformedURLException mue) { - Log.warning("Invalid tracking URL [path=" + _trackingURL + ", event=" + event + + log.warning("Invalid tracking URL [path=" + _trackingURL + ", event=" + event + ", error=" + mue + "]."); return null; } @@ -565,7 +567,7 @@ public class Application _jvmargs.add(pair[0] + "=" + pair[1]); } } catch (Throwable t) { - Log.warning("Failed to parse '" + file + "': " + t); + log.warning("Failed to parse '" + file + "': " + t); } } @@ -650,7 +652,7 @@ public class Application if (!m.matches()) { // if we can't parse the java version we're in weird land and should probably just try // our luck with what we've got rather than try to download a new jvm - Log.warning("Unable to parse VM version, hoping for the best [version=" + verstr + + log.warning("Unable to parse VM version, hoping for the best [version=" + verstr + ", needed=" + _javaVersion + "]."); return true; } @@ -759,7 +761,7 @@ public class Application String[] sargs = new String[args.size()]; args.toArray(sargs); - Log.info("Running " + StringUtil.join(sargs, "\n ")); + log.info("Running " + StringUtil.join(sargs, "\n ")); return Runtime.getRuntime().exec(sargs, null); } @@ -793,7 +795,7 @@ public class Application jvmarg = processArg(jvmarg.substring(2)); int eqidx = jvmarg.indexOf("="); if (eqidx == -1) { - Log.warning("Bogus system property: '" + jvmarg + "'?"); + log.warning("Bogus system property: '" + jvmarg + "'?"); } else { System.setProperty(jvmarg.substring(0, eqidx), jvmarg.substring(eqidx+1)); } @@ -857,21 +859,21 @@ public class Application public boolean verifyMetadata (StatusDisplay status) throws IOException { - Log.info("Verifying application: " + _vappbase); - Log.info("Version: " + _version); - Log.info("Class: " + _class); -// Log.info("Code: " + + log.info("Verifying application: " + _vappbase); + log.info("Version: " + _version); + log.info("Class: " + _class); +// log.info("Code: " + // StringUtil.toString(getCodeResources().iterator())); -// Log.info("Resources: " + +// log.info("Resources: " + // StringUtil.toString(getActiveResources().iterator())); -// Log.info("JVM Args: " + StringUtil.toString(_jvmargs.iterator())); -// Log.info("App Args: " + StringUtil.toString(_appargs.iterator())); +// log.info("JVM Args: " + StringUtil.toString(_jvmargs.iterator())); +// log.info("App Args: " + StringUtil.toString(_appargs.iterator())); // this will read in the contents of the digest file and validate itself try { _digest = new Digest(_appdir); } catch (IOException ioe) { - Log.info("Failed to load digest: " + ioe.getMessage() + ". Attempting recovery..."); + log.info("Failed to load digest: " + ioe.getMessage() + ". Attempting recovery..."); } // if we have no version, then we are running in unversioned mode so we need to download @@ -885,12 +887,12 @@ public class Application downloadDigestFile(); _digest = new Digest(_appdir); if (!olddig.equals(_digest.getMetaDigest())) { - Log.info("Unversioned digest changed. Revalidating..."); + log.info("Unversioned digest changed. Revalidating..."); status.updateStatus("m.validating"); clearValidationMarkers(); } } catch (IOException ioe) { - Log.warning("Failed to refresh non-versioned digest: " + + log.warning("Failed to refresh non-versioned digest: " + ioe.getMessage() + ". Proceeding..."); } } @@ -919,7 +921,7 @@ public class Application if (_digest.validateResource(crsrc, null)) { init(true); } else { - Log.warning(CONFIG_FILE + " failed to validate even after redownloading. " + + log.warning(CONFIG_FILE + " failed to validate even after redownloading. " + "Blindly forging onward."); } } @@ -939,7 +941,7 @@ public class Application _targetVersion = Long.parseLong(vstr); } } catch (Exception e) { - Log.info("Unable to read version file: " + e.getMessage()); + log.info("Unable to read version file: " + e.getMessage()); } finally { StreamUtil.close(fin); } @@ -992,11 +994,11 @@ public class Application rsrc.markAsValid(); continue; } - Log.info("Failure unpacking resource [rsrc=" + rsrc + "]."); + log.info("Failure unpacking resource [rsrc=" + rsrc + "]."); } } catch (Exception e) { - Log.info("Failure validating resource [rsrc=" + rsrc + ", error=" + e + "]. " + + log.info("Failure validating resource [rsrc=" + rsrc + ", error=" + e + "]. " + "Requesting redownload..."); } finally { @@ -1056,22 +1058,19 @@ public class Application try { _lockChannel = new RandomAccessFile(getLocalPath("gettingdown.lock"), "rw").getChannel(); } catch (FileNotFoundException e) { - Log.warning("Unable to create lock file [message=" + e.getMessage() + "]"); - Log.logStackTrace(e); + log.warning("Unable to create lock file [message=" + e.getMessage() + "]", e); return false; } try { _lock = _lockChannel.tryLock(); } catch (IOException e) { - Log.warning("Unable to create lock [message=" + e.getMessage() + "]"); - Log.logStackTrace(e); + log.warning("Unable to create lock [message=" + e.getMessage() + "]", e); return false; } catch (OverlappingFileLockException e) { - Log.warning("The lock is held elsewhere in this JVM"); - Log.logStackTrace(e); + log.warning("The lock is held elsewhere in this JVM", e); return false; } - Log.info("Able to lock for updates: " + (_lock != null)); + log.info("Able to lock for updates: " + (_lock != null)); return _lock != null; } @@ -1081,18 +1080,16 @@ public class Application public synchronized void releaseLock () { if (_lock != null) { - Log.info("Releasing lock"); + log.info("Releasing lock"); try { _lock.release(); } catch (IOException e) { - Log.warning("Unable to release lock [message=" + e.getMessage() + "]"); - Log.logStackTrace(e); + log.warning("Unable to release lock [message=" + e.getMessage() + "]", e); } try { _lockChannel.close(); } catch (IOException e) { - Log.warning("Unable to close lock channel [message=" + e.getMessage() + "]"); - Log.logStackTrace(e); + log.warning("Unable to close lock channel [message=" + e.getMessage() + "]", e); } _lockChannel = null; _lock = null; @@ -1128,7 +1125,7 @@ public class Application if (validateSignature) { if (_signers == null) { - Log.info("No signers, not verifying file [path=" + path + "]."); + log.info("No signers, not verifying file [path=" + path + "]."); } else { File signatureFile = downloadFile(path + SIGNATURE_SUFFIX); @@ -1160,15 +1157,15 @@ public class Application } if (!sig.verify(Base64.decodeBase64(signature))) { - Log.info("Signature does not match [cert=" + cert.getPublicKey() + "]"); + log.info("Signature does not match [cert=" + cert.getPublicKey() + "]"); continue; } else { - Log.info("Signature matches [cert=" + cert.getPublicKey() + "]"); + log.info("Signature matches [cert=" + cert.getPublicKey() + "]"); validated++; } } catch (IOException ioe) { - Log.warning("Failure validating signature of " + target + ": " + ioe); + log.warning("Failure validating signature of " + target + ": " + ioe); } catch (GeneralSecurityException gse) { // no problem! @@ -1208,12 +1205,12 @@ public class Application try { targetURL = getRemoteURL(path); } catch (Exception e) { - Log.warning("Requested to download invalid control file [appbase=" + _vappbase + + log.warning("Requested to download invalid control file [appbase=" + _vappbase + ", path=" + path + ", error=" + e + "]."); throw (IOException) new IOException("Invalid path '" + path + "'.").initCause(e); } - Log.info("Attempting to refetch '" + path + "' from '" + targetURL + "'."); + log.info("Attempting to refetch '" + path + "' from '" + targetURL + "'."); // stream the URL into our temporary file InputStream fin = null; @@ -1249,7 +1246,7 @@ public class Application try { list.add(createResource(rsrc, unpack)); } catch (Exception e) { - Log.warning("Invalid resource '" + rsrc + "'. " + e); + log.warning("Invalid resource '" + rsrc + "'. " + e); } } } @@ -1263,7 +1260,7 @@ public class Application if (v != null && v.length == 4) { return new Rectangle(v[0], v[1], v[2], v[3]); } else { - Log.warning("Ignoring invalid '" + name + "' config '" + value + "'."); + log.warning("Ignoring invalid '" + name + "' config '" + value + "'."); } } return def; @@ -1277,7 +1274,7 @@ public class Application try { return new Color(Integer.parseInt(value, 16)); } catch (Exception e) { - Log.warning("Ignoring invalid '" + name + "' config '" + value + "'."); + log.warning("Ignoring invalid '" + name + "' config '" + value + "'."); } } return def; diff --git a/src/java/com/threerings/getdown/data/Digest.java b/src/java/com/threerings/getdown/data/Digest.java index 7be6389..4bc8ab2 100644 --- a/src/java/com/threerings/getdown/data/Digest.java +++ b/src/java/com/threerings/getdown/data/Digest.java @@ -36,10 +36,11 @@ import java.util.List; import com.samskivert.text.MessageUtil; import com.samskivert.util.StringUtil; -import com.threerings.getdown.Log; import com.threerings.getdown.util.ConfigUtil; import com.threerings.getdown.util.ProgressObserver; +import static com.threerings.getdown.Log.log; + /** * Manages the digest.txt file and the computing and * processing of MD5 digests for an application. @@ -106,10 +107,10 @@ public class Digest if (cmd5.equals(emd5)) { return true; } - Log.info("Resource failed digest check [rsrc=" + resource + + log.info("Resource failed digest check [rsrc=" + resource + ", computed=" + cmd5 + ", expected=" + emd5 + "]."); } catch (Throwable t) { - Log.info("Resource failed digest check [rsrc=" + resource + + log.info("Resource failed digest check [rsrc=" + resource + ", error=" + t + "]."); } return false; diff --git a/src/java/com/threerings/getdown/data/Resource.java b/src/java/com/threerings/getdown/data/Resource.java index 6908ec9..9b6cbef 100644 --- a/src/java/com/threerings/getdown/data/Resource.java +++ b/src/java/com/threerings/getdown/data/Resource.java @@ -39,9 +39,10 @@ import com.samskivert.util.FileUtil; import com.samskivert.util.SortableArrayList; import com.samskivert.util.StringUtil; -import com.threerings.getdown.Log; import com.threerings.getdown.util.ProgressObserver; +import static com.threerings.getdown.Log.log; + /** * Models a single file resource used by an {@link Application}. */ @@ -135,7 +136,7 @@ public class Resource { if (_marker.exists()) { if (!_marker.delete()) { - Log.warning("Failed to erase marker file '" + _marker + "'."); + log.warning("Failed to erase marker file '" + _marker + "'."); } } } @@ -148,13 +149,13 @@ public class Resource { // sanity check if (!_local.getPath().endsWith(".jar")) { - Log.warning("Requested to unpack non-jar file '" + _local + "'."); + log.warning("Requested to unpack non-jar file '" + _local + "'."); return false; } try { return FileUtil.unpackJar(new JarFile(_local), _local.getParentFile()); } catch (IOException ioe) { - Log.warning("Failed to create JarFile from '" + _local + "': " + ioe); + log.warning("Failed to create JarFile from '" + _local + "': " + ioe); return false; } } @@ -168,7 +169,7 @@ public class Resource clearMarker(); if (_local.exists()) { if (!_local.delete()) { - Log.warning("Failed to erase resource '" + _local + "'."); + log.warning("Failed to erase resource '" + _local + "'."); } } } @@ -250,8 +251,7 @@ public class Resource try { jar.close(); } catch (IOException ioe) { - Log.warning("Error closing jar [path=" + target + - ", error=" + ioe + "]."); + log.warning("Error closing jar [path=" + target + ", error=" + ioe + "]."); } } diff --git a/src/java/com/threerings/getdown/launcher/AbortPanel.java b/src/java/com/threerings/getdown/launcher/AbortPanel.java index 1e828c4..037511c 100644 --- a/src/java/com/threerings/getdown/launcher/AbortPanel.java +++ b/src/java/com/threerings/getdown/launcher/AbortPanel.java @@ -38,7 +38,7 @@ import com.samskivert.swing.Spacer; import com.samskivert.swing.VGroupLayout; import com.samskivert.text.MessageUtil; -import com.threerings.getdown.Log; +import static com.threerings.getdown.Log.log; /** * Displays a confirmation that the user wants to abort installation. @@ -104,7 +104,7 @@ public class AbortPanel extends JFrame try { return _msgs.getString(key); } catch (MissingResourceException mre) { - Log.warning("Missing translation message '" + key + "'."); + log.warning("Missing translation message '" + key + "'."); return key; } } diff --git a/src/java/com/threerings/getdown/launcher/Getdown.java b/src/java/com/threerings/getdown/launcher/Getdown.java index 4432fca..77ac59c 100644 --- a/src/java/com/threerings/getdown/launcher/Getdown.java +++ b/src/java/com/threerings/getdown/launcher/Getdown.java @@ -59,7 +59,6 @@ import com.samskivert.text.MessageUtil; import com.samskivert.util.RunAnywhere; import com.samskivert.util.StringUtil; -import com.threerings.getdown.Log; import com.threerings.getdown.data.Application; import com.threerings.getdown.data.Resource; import com.threerings.getdown.net.Downloader; @@ -70,6 +69,8 @@ import com.threerings.getdown.util.ConfigUtil; import com.threerings.getdown.util.LaunchUtil; import com.threerings.getdown.util.ProgressObserver; +import static com.threerings.getdown.Log.log; + /** * Manages the main control for the Getdown application updater and deployment system. */ @@ -130,7 +131,7 @@ public abstract class Getdown extends Thread _ifc = _app.init(true); createInterface(true); } catch (Exception e) { - Log.warning("Failed to preinit: " + e); + log.warning("Failed to preinit: " + e); createInterface(true); } } @@ -159,7 +160,7 @@ public abstract class Getdown extends Thread if (detectProxy()) { getdown(); } else if (_silent) { - Log.warning("Need a proxy, but we don't want to bother anyone. Exiting"); + log.warning("Need a proxy, but we don't want to bother anyone. Exiting."); } else { // create a panel they can use to configure the proxy settings _container = createContainer(); @@ -170,7 +171,7 @@ public abstract class Getdown extends Thread } } catch (Exception e) { - Log.logStackTrace(e); + log.warning("run() failed.", e); String msg = e.getMessage(); if (msg == null) { msg = MessageUtil.compose("m.unknown_error", _ifc.installError); @@ -193,7 +194,7 @@ public abstract class Getdown extends Thread */ public void configureProxy (String host, String port) { - Log.info("User configured proxy [host=" + host + ", port=" + port + "]."); + log.info("User configured proxy [host=" + host + ", port=" + port + "]."); // if we're provided with valid values, create a proxy.txt file if (!StringUtil.isBlank(host)) { @@ -206,7 +207,7 @@ public abstract class Getdown extends Thread } pout.close(); } catch (IOException ioe) { - Log.warning("Error creating proxy file '" + pfile + "': " + ioe); + log.warning("Error creating proxy file '" + pfile + "': " + ioe); } // also configure them in the JVM @@ -261,11 +262,11 @@ public abstract class Getdown extends Thread setProxyProperties(host, port); return true; } else { - Log.info("Detected no proxy settings in the registry."); + log.info("Detected no proxy settings in the registry."); } } catch (Throwable t) { - Log.info("Failed to find proxy settings in Windows registry [error=" + t + "]."); + log.info("Failed to find proxy settings in Windows registry [error=" + t + "]."); } } @@ -277,13 +278,13 @@ public abstract class Getdown extends Thread setProxyProperties((String)pconf.get("host"), (String)pconf.get("port")); return true; } catch (IOException ioe) { - Log.warning("Failed to read '" + pfile + "': " + ioe); + log.warning("Failed to read '" + pfile + "': " + ioe); } } // otherwise see if we actually need a proxy; first we have to initialize our application // to get some sort of interface configuration and the appbase URL - Log.info("Checking whether we need to use a proxy..."); + log.info("Checking whether we need to use a proxy..."); try { _ifc = _app.init(true); } catch (IOException ioe) { @@ -300,23 +301,23 @@ public abstract class Getdown extends Thread // make sure we got a satisfactory response code if (ucon.getResponseCode() != HttpURLConnection.HTTP_OK) { - Log.warning("Got a non-200 response but assuming we're OK because we got " + + log.warning("Got a non-200 response but assuming we're OK because we got " + "something... [url=" + rurl + ", rsp=" + ucon.getResponseCode() + "]."); } // we got through, so we appear not to require a proxy; make a blank proxy config and // get on gettin' down - Log.info("No proxy appears to be needed."); + log.info("No proxy appears to be needed."); try { pfile.createNewFile(); } catch (IOException ioe) { - Log.warning("Failed to create blank proxy file '" + pfile + "': " + ioe); + log.warning("Failed to create blank proxy file '" + pfile + "': " + ioe); } return true; } catch (IOException ioe) { - Log.info("Failed to HEAD " + rurl + ": " + ioe); - Log.info("We probably need a proxy, but auto-detection failed."); + log.info("Failed to HEAD " + rurl + ": " + ioe); + log.info("We probably need a proxy, but auto-detection failed."); } // let the caller know that we need a proxy but can't detect it @@ -333,7 +334,7 @@ public abstract class Getdown extends Thread if (!StringUtil.isBlank(port)) { System.setProperty("http.proxyPort", port); } - Log.info("Using proxy [host=" + host + ", port=" + port + "]."); + log.info("Using proxy [host=" + host + ", port=" + port + "]."); } } @@ -342,17 +343,17 @@ public abstract class Getdown extends Thread */ protected void getdown () { - Log.info("---------------- Proxy Info -----------------"); - Log.info("-- Proxy Host: " + System.getProperty("http.proxyHost")); - Log.info("-- Proxy Port: " + System.getProperty("http.proxyPort")); - Log.info("---------------------------------------------"); + log.info("---------------- Proxy Info -----------------"); + log.info("-- Proxy Host: " + System.getProperty("http.proxyHost")); + log.info("-- Proxy Port: " + System.getProperty("http.proxyPort")); + log.info("---------------------------------------------"); try { // first parses our application deployment file try { _ifc = _app.init(true); } catch (IOException ioe) { - Log.warning("Failed to parse 'getdown.txt': " + ioe); + log.warning("Failed to parse 'getdown.txt': " + ioe); _app.attemptRecovery(this); // and re-initalize _ifc = _app.init(true); @@ -366,18 +367,18 @@ public abstract class Getdown extends Thread // Update the config modtime so a sleeping getdown will notice the change. File config = _app.getLocalPath(Application.CONFIG_FILE); if (!config.setLastModified(System.currentTimeMillis())) { - Log.warning("Unable to set modtime on config file, will be unable to check for " - + "another instance of getdown running while this one waits."); + log.warning("Unable to set modtime on config file, will be unable to check for " + + "another instance of getdown running while this one waits."); } if (_delay > 0) { // don't hold the lock while waiting, let another getdown proceed if it starts. _app.releaseLock(); // Store the config modtime before waiting the delay amount of time long lastConfigModtime = config.lastModified(); - Log.info("Waiting " + _delay + " minutes before beginning actual work"); + log.info("Waiting " + _delay + " minutes before beginning actual work."); Thread.sleep(_delay * 60 * 1000); if (lastConfigModtime < config.lastModified()) { - Log.warning("getdown.txt was modified while getdown was waiting"); + log.warning("getdown.txt was modified while getdown was waiting."); throw new MultipleGetdownRunning(); } } @@ -396,7 +397,7 @@ public abstract class Getdown extends Thread if (!_app.haveValidJavaVersion()) { // download and install the necessary version of java, then loop back again and // reverify everything; if we can't download java; we'll throw an exception - Log.info("Attempting to update Java VM..."); + log.info("Attempting to update Java VM..."); _enableTracking = true; // always track JVM downloads try { updateJava(); @@ -409,7 +410,7 @@ public abstract class Getdown extends Thread // make sure we have the desired version and that the metadata files are valid... setStatus("m.validating", -1, -1L, false); if (_app.verifyMetadata(this)) { - Log.info("Application requires update."); + log.info("Application requires update."); update(); // loop back again and reverify the metadata continue; @@ -419,7 +420,7 @@ public abstract class Getdown extends Thread setStatus("m.validating", -1, -1L, false); List failures = _app.verifyResources(_progobs, alreadyValid); if (failures == null) { - Log.info("Resources verified."); + log.info("Resources verified."); // Only launch if we aren't in silent mode. Some mystery program starting out // of the blue would be disconcerting. if (!_silent || _launchInSilent) { @@ -442,7 +443,7 @@ public abstract class Getdown extends Thread reportTrackingEvent("app_start", -1); // redownload any that are corrupt or invalid... - Log.info(failures.size() + " of " + _app.getAllResources().size() + + log.info(failures.size() + " of " + _app.getAllResources().size() + " rsrcs require update (" + alreadyValid[0] + " assumed valid)."); download(failures); @@ -454,11 +455,11 @@ public abstract class Getdown extends Thread // now we'll loop back and try it all again } - Log.warning("Pants! We couldn't get the job done."); + log.warning("Pants! We couldn't get the job done."); throw new IOException("m.unable_to_repair"); } catch (Exception e) { - Log.logStackTrace(e); + log.warning("getdown() failed.", e); String msg = e.getMessage(); if (msg == null) { msg = MessageUtil.compose("m.unknown_error", _ifc.installError); @@ -511,7 +512,7 @@ public abstract class Getdown extends Thread imgpath = _app.getLocalPath(path); return ImageIO.read(imgpath); } catch (IOException ioe2) { - Log.warning("Failed to load image [path=" + imgpath + ", error=" + ioe2 + "]."); + log.warning("Failed to load image [path=" + imgpath + ", error=" + ioe2 + "]."); return null; } } @@ -551,10 +552,10 @@ public abstract class Getdown extends Thread File.separator + "java"; String cmd = "chmod a+rx " + _app.getLocalPath(vmbin); try { - Log.info("Please smack a Java engineer. Running: " + cmd); + log.info("Please smack a Java engineer. Running: " + cmd); Runtime.getRuntime().exec(cmd); } catch (Exception e) { - Log.warning("Failed to mark VM binary as executable [cmd=" + cmd + + log.warning("Failed to mark VM binary as executable [cmd=" + cmd + ", error=" + e + "]."); // we should do something like tell the user or something but fucking fuck } @@ -563,10 +564,10 @@ public abstract class Getdown extends Thread // lastly regenerate the .jsa dump file that helps Java to start up faster String vmpath = LaunchUtil.getJVMPath(_app.getLocalPath("")); try { - Log.info("Regenerating classes.jsa for " + vmpath + "..."); + log.info("Regenerating classes.jsa for " + vmpath + "..."); Runtime.getRuntime().exec(vmpath + " -Xshare:dump"); } catch (Exception e) { - Log.warning("Failed to regenerate .jsa dum file [error=" + e + "]."); + log.warning("Failed to regenerate .jsa dum file [error=" + e + "]."); } reportTrackingEvent("jvm_complete", -1); @@ -607,13 +608,12 @@ public abstract class Getdown extends Thread Patcher patcher = new Patcher(); patcher.patch(prsrc.getLocal().getParentFile(), prsrc.getLocal(), _progobs); } catch (Exception e) { - Log.warning("Failed to apply patch [prsrc=" + prsrc + "]."); - Log.logStackTrace(e); + log.warning("Failed to apply patch [prsrc=" + prsrc + "].", e); } // clean up the patch file if (!prsrc.getLocal().delete()) { - Log.warning("Failed to delete '" + prsrc + "'."); + log.warning("Failed to delete '" + prsrc + "'."); prsrc.getLocal().deleteOnExit(); } } @@ -670,8 +670,7 @@ public abstract class Getdown extends Thread public void downloadFailed (Resource rsrc, Exception e) { updateStatus(MessageUtil.tcompose("m.failure", e.getMessage())); - Log.warning("Download failed [rsrc=" + rsrc + "]."); - Log.logStackTrace(e); + log.warning("Download failed [rsrc=" + rsrc + "].", e); } /** The last percentage at which we checked for another getdown running, or -1 for not @@ -736,7 +735,7 @@ public abstract class Getdown extends Thread disposeContainer(); _status = null; copyStream(stderr, System.err); - Log.info("Process exited: " + proc.waitFor()); + log.info("Process exited: " + proc.waitFor()); } else { // spawn a daemon thread that will catch the early bits of stderr in case the @@ -764,7 +763,7 @@ public abstract class Getdown extends Thread exit(0); } catch (Exception e) { - Log.logStackTrace(e); + log.warning("launch() failed.", e); } } @@ -813,7 +812,7 @@ public abstract class Getdown extends Thread { if (_ifc.rotatingBackgrounds != null) { if (_ifc.backgroundImage != null) { - Log.warning("ui.background_image and ui.rotating_background were both specified. " + + log.warning("ui.background_image and ui.rotating_background were both specified. " + "The rotating images are being used."); } return new RotatingBackgrounds(_ifc.rotatingBackgrounds, _ifc.errorBackground, @@ -865,7 +864,7 @@ public abstract class Getdown extends Thread public void run () { if (_status == null) { if (message != null) { - Log.info("Dropping status '" + message + "'."); + log.info("Dropping status '" + message + "'."); } return; } @@ -956,7 +955,7 @@ public abstract class Getdown extends Thread out.flush(); } } catch (IOException ioe) { - Log.warning("Failure copying [in=" + in + ", out=" + out + ", error=" + ioe + "]."); + log.warning("Failure copying [in=" + in + ", out=" + out + ", error=" + ioe + "]."); } } @@ -985,7 +984,7 @@ public abstract class Getdown extends Thread ucon.connect(); try { if (ucon.getResponseCode() != HttpURLConnection.HTTP_OK) { - Log.warning("Failed to report tracking event [url=" + _url + + log.warning("Failed to report tracking event [url=" + _url + ", rcode=" + ucon.getResponseCode() + "]."); } } finally { @@ -993,7 +992,7 @@ public abstract class Getdown extends Thread } } catch (IOException ioe) { - Log.warning("Failed to report tracking event [url=" + _url + + log.warning("Failed to report tracking event [url=" + _url + ", error=" + ioe + "]."); } } diff --git a/src/java/com/threerings/getdown/launcher/GetdownApp.java b/src/java/com/threerings/getdown/launcher/GetdownApp.java index 383951f..f101449 100644 --- a/src/java/com/threerings/getdown/launcher/GetdownApp.java +++ b/src/java/com/threerings/getdown/launcher/GetdownApp.java @@ -34,7 +34,7 @@ import java.io.PrintStream; import com.samskivert.swing.util.SwingUtil; import com.samskivert.util.StringUtil; -import com.threerings.getdown.Log; +import static com.threerings.getdown.Log.log; /** * Does something extraordinary. @@ -65,35 +65,34 @@ public class GetdownApp // ensure a valid directory was supplied File appDir = new File(adarg); if (!appDir.exists() || !appDir.isDirectory()) { - Log.warning("Invalid app_dir '" + adarg + "'."); + log.warning("Invalid app_dir '" + adarg + "'."); System.exit(-1); } // pipe our output into a file in the application directory if (System.getProperty("no_log_redir") == null) { - File log = new File(appDir, "launcher.log"); + File logFile = new File(appDir, "launcher.log"); try { PrintStream logOut = new PrintStream( - new BufferedOutputStream(new FileOutputStream(log)), true); + new BufferedOutputStream(new FileOutputStream(logFile)), true); System.setOut(logOut); System.setErr(logOut); } catch (IOException ioe) { - Log.warning("Unable to redirect output to '" + log + - "': " + ioe); + log.warning("Unable to redirect output to '" + logFile + "': " + ioe); } } // record a few things for posterity - Log.info("------------------ VM Info ------------------"); - Log.info("-- OS Name: " + System.getProperty("os.name")); - Log.info("-- OS Arch: " + System.getProperty("os.arch")); - Log.info("-- OS Vers: " + System.getProperty("os.version")); - Log.info("-- Java Vers: " + System.getProperty("java.version")); - Log.info("-- Java Home: " + System.getProperty("java.home")); - Log.info("-- User Name: " + System.getProperty("user.name")); - Log.info("-- User Home: " + System.getProperty("user.home")); - Log.info("-- Cur dir: " + System.getProperty("user.dir")); - Log.info("---------------------------------------------"); + log.info("------------------ VM Info ------------------"); + log.info("-- OS Name: " + System.getProperty("os.name")); + log.info("-- OS Arch: " + System.getProperty("os.arch")); + log.info("-- OS Vers: " + System.getProperty("os.version")); + log.info("-- Java Vers: " + System.getProperty("java.version")); + log.info("-- Java Home: " + System.getProperty("java.home")); + log.info("-- User Name: " + System.getProperty("user.name")); + log.info("-- User Home: " + System.getProperty("user.home")); + log.info("-- Cur dir: " + System.getProperty("user.dir")); + log.info("---------------------------------------------"); try { Getdown app = new Getdown(appDir, appId) { @@ -135,8 +134,9 @@ public class GetdownApp protected JFrame _frame; }; app.start(); + } catch (Exception e) { - Log.logStackTrace(e); + log.warning("main() failed.", e); } } } diff --git a/src/java/com/threerings/getdown/launcher/GetdownApplet.java b/src/java/com/threerings/getdown/launcher/GetdownApplet.java index 57b6a35..0698697 100644 --- a/src/java/com/threerings/getdown/launcher/GetdownApplet.java +++ b/src/java/com/threerings/getdown/launcher/GetdownApplet.java @@ -31,10 +31,18 @@ import java.net.URL; import javax.swing.JApplet; import javax.swing.JPanel; +import java.io.IOException; +import java.io.FileOutputStream; +import java.io.File; +import java.io.PrintStream; +import java.util.Map; + import com.samskivert.util.RunAnywhere; import com.samskivert.util.StringUtil; -import com.threerings.getdown.Log; +import com.threerings.getdown.util.ConfigUtil; + +import static com.threerings.getdown.Log.log; /** * An applet that can be used to launch a Getdown application (when signed and @@ -68,24 +76,24 @@ public class GetdownApplet extends JApplet bgimages = new RotatingBackgrounds(loadImage(imgpath)); } - Log.info("App Base: " + appbase); - Log.info("App Name: " + appname); + log.info("App Base: " + appbase); + log.info("App Name: " + appname); File appdir = null; try { appdir = initGetdown(appbase, appname, imgpath); // record a few things for posterity - Log.info("------------------ VM Info ------------------"); - Log.info("-- OS Name: " + System.getProperty("os.name")); - Log.info("-- OS Arch: " + System.getProperty("os.arch")); - Log.info("-- OS Vers: " + System.getProperty("os.version")); - Log.info("-- Java Vers: " + System.getProperty("java.version")); - Log.info("-- Java Home: " + System.getProperty("java.home")); - Log.info("-- User Name: " + System.getProperty("user.name")); - Log.info("-- User Home: " + System.getProperty("user.home")); - Log.info("-- Cur dir: " + System.getProperty("user.dir")); - Log.info("---------------------------------------------"); + log.info("------------------ VM Info ------------------"); + log.info("-- OS Name: " + System.getProperty("os.name")); + log.info("-- OS Arch: " + System.getProperty("os.arch")); + log.info("-- OS Vers: " + System.getProperty("os.version")); + log.info("-- Java Vers: " + System.getProperty("java.version")); + log.info("-- Java Home: " + System.getProperty("java.home")); + log.info("-- User Name: " + System.getProperty("user.name")); + log.info("-- User Home: " + System.getProperty("user.home")); + log.info("-- Cur dir: " + System.getProperty("user.dir")); + log.info("---------------------------------------------"); } catch (Exception e) { _errmsg = e.getMessage(); @@ -139,7 +147,7 @@ public class GetdownApplet extends JApplet try { dest = new URL(getParameter("redirect_on_finish")); } catch (MalformedURLException e) { - Log.warning("URL in redirect_on_finish param is malformed: " + e); + log.warning("URL in redirect_on_finish param is malformed: " + e); return; } String target = getParameter("redirect_on_finish_target"); @@ -156,7 +164,7 @@ public class GetdownApplet extends JApplet _getdown.preInit(); } catch (Exception e) { - Log.logStackTrace(e); + log.warning("init() failed.", e); } } @@ -165,8 +173,7 @@ public class GetdownApplet extends JApplet try { return getImage(new URL(getDocumentBase(), path)); } catch (MalformedURLException e) { - Log.warning("Failed to load background image [path=" + path + "]."); - Log.logStackTrace(e); + log.warning("Failed to load background image", "path", path, e); return null; } } @@ -180,7 +187,7 @@ public class GetdownApplet extends JApplet try { _getdown.start(); } catch (Exception e) { - Log.logStackTrace(e); + log.warning("start() failed.", e); } } } @@ -213,7 +220,7 @@ public class GetdownApplet extends JApplet sm.checkWrite("getdown"); sm.checkPropertiesAccess(); } catch (SecurityException se) { - Log.warning("Signed applet rejected by user [se=" + se + "]."); + log.warning("Signed applet rejected by user", "se", se); throw new Exception("m.insufficient_permissions_error"); } } @@ -240,7 +247,7 @@ public class GetdownApplet extends JApplet root = "AppData" + File.separator + "LocalLow"; } } catch (Exception e) { - Log.warning("Couldn't parse OS version [vers=" + verStr + ", error=" + e + "]."); + log.warning("Couldn't parse OS version", "vers", verStr, "error", e); } } else if (RunAnywhere.isMacOS()) { root = "Library" + File.separator + "Application Support"; @@ -266,9 +273,25 @@ public class GetdownApplet extends JApplet } } - // if our getdown.txt file does not exist, auto-create it + // if our getdown.txt file does not exist, or it is corrupt, auto-/recreate it File gdfile = new File(appdir, "getdown.txt"); - if (!gdfile.exists()) { + boolean createGetdown = !gdfile.exists(); + if (!createGetdown) { + try { + Map cdata = ConfigUtil.parseConfig(gdfile, false); + String oappbase = StringUtil.trim((String)cdata.get("appbase")); + createGetdown = (appbase != null && !appbase.trim().equals(oappbase)); + if (createGetdown) { + log.warning("Recreating getdown.txt due to appbase mismatch", + "nappbase", appbase, "oappbase", oappbase); + } + } catch (Exception e) { + log.warning("Failure checking validity of getdown.txt, forcing recreate.", + "error", e); + createGetdown = true; + } + } + if (createGetdown) { if (StringUtil.isBlank(appbase)) { throw new Exception("m.missing_appbase"); } @@ -291,8 +314,7 @@ public class GetdownApplet extends JApplet out.close(); return true; } catch (IOException ioe) { - Log.warning("Failed to create '" + tofile + "'."); - Log.logStackTrace(ioe); + log.warning("Failed to create '" + tofile + "'.", ioe); return false; } } diff --git a/src/java/com/threerings/getdown/launcher/ProxyPanel.java b/src/java/com/threerings/getdown/launcher/ProxyPanel.java index 4a14eab..cee370f 100644 --- a/src/java/com/threerings/getdown/launcher/ProxyPanel.java +++ b/src/java/com/threerings/getdown/launcher/ProxyPanel.java @@ -39,7 +39,7 @@ import com.samskivert.swing.Spacer; import com.samskivert.swing.VGroupLayout; import com.samskivert.text.MessageUtil; -import com.threerings.getdown.Log; +import static com.threerings.getdown.Log.log; /** * Displays an interface with which the user can configure their proxy @@ -134,7 +134,7 @@ public class ProxyPanel extends JPanel try { return _msgs.getString(key); } catch (MissingResourceException mre) { - Log.warning("Missing translation message '" + key + "'."); + log.warning("Missing translation message '" + key + "'."); return key; } } diff --git a/src/java/com/threerings/getdown/launcher/RotatingBackgrounds.java b/src/java/com/threerings/getdown/launcher/RotatingBackgrounds.java index b95b949..9f9eab5 100644 --- a/src/java/com/threerings/getdown/launcher/RotatingBackgrounds.java +++ b/src/java/com/threerings/getdown/launcher/RotatingBackgrounds.java @@ -1,8 +1,28 @@ +// +// $Id$ +// +// Getdown - application installer, patcher and launcher +// Copyright (C) 2004-2006 Three Rings Design, Inc. +// +// This program is free software; you can redistribute it and/or modify it +// under the terms of the GNU General Public License as published by the Free +// Software Foundation; either version 2 of the License, or (at your option) +// any later version. +// +// This program is distributed in the hope that it will be useful, but WITHOUT +// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for +// more details. +// +// You should have received a copy of the GNU General Public License along with +// this program; if not, write to the: Free Software Foundation, Inc., +// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA + package com.threerings.getdown.launcher; import java.awt.Image; -import com.threerings.getdown.Log; +import static com.threerings.getdown.Log.log; public class RotatingBackgrounds { @@ -41,7 +61,7 @@ public class RotatingBackgrounds for (int ii = 0; ii < backgrounds.length; ii++) { String[] pieces = backgrounds[ii].split(";"); if (pieces.length != 2) { - Log.warning("Unable to parse background image '" + backgrounds[ii] + "'"); + log.warning("Unable to parse background image '" + backgrounds[ii] + "'"); makeEmpty(); return; } @@ -49,8 +69,8 @@ public class RotatingBackgrounds try { minDisplayTime[ii] = Integer.parseInt(pieces[1]); } catch (NumberFormatException e) { - Log.warning("Unable to parse background image display time '" - + backgrounds[ii] + "'"); + log.warning("Unable to parse background image display time '" + + backgrounds[ii] + "'"); makeEmpty(); return; } diff --git a/src/java/com/threerings/getdown/launcher/StatusPanel.java b/src/java/com/threerings/getdown/launcher/StatusPanel.java index a199b33..b3b1c5e 100644 --- a/src/java/com/threerings/getdown/launcher/StatusPanel.java +++ b/src/java/com/threerings/getdown/launcher/StatusPanel.java @@ -37,9 +37,11 @@ import com.samskivert.swing.util.SwingUtil; import com.samskivert.text.MessageUtil; import com.samskivert.util.StringUtil; import com.samskivert.util.Throttle; -import com.threerings.getdown.Log; + import com.threerings.getdown.data.Application.UpdateInterface; +import static com.threerings.getdown.Log.log; + /** * Displays download and patching status. */ @@ -257,7 +259,7 @@ public class StatusPanel extends JComponent try { return _msgs.getString(key); } catch (MissingResourceException mre) { - Log.warning("Missing translation message '" + key + "'."); + log.warning("Missing translation message '" + key + "'."); return key; } } diff --git a/src/java/com/threerings/getdown/net/Downloader.java b/src/java/com/threerings/getdown/net/Downloader.java index 300e021..cca6162 100644 --- a/src/java/com/threerings/getdown/net/Downloader.java +++ b/src/java/com/threerings/getdown/net/Downloader.java @@ -25,9 +25,10 @@ import java.io.IOException; import java.util.List; -import com.threerings.getdown.Log; import com.threerings.getdown.data.Resource; +import static com.threerings.getdown.Log.log; + /** * Handles the download of a collection of files, first issuing HTTP head requests to obtain size * information and then downloading the files individually, reporting progress back via a callback @@ -112,7 +113,7 @@ public abstract class Downloader extends Thread discoverSize(resource); } - Log.info("Downloading " + _totalSize + " bytes..."); + log.info("Downloading " + _totalSize + " bytes..."); // make a note of the time at which we started the download _start = System.currentTimeMillis(); @@ -137,7 +138,7 @@ public abstract class Downloader extends Thread if (_obs != null) { _obs.downloadFailed(current, e); } else { - Log.logStackTrace(e); + log.warning("Observer failed.", e); } } return true; @@ -168,7 +169,7 @@ public abstract class Downloader extends Thread File parent = new File(rsrc.getLocal().getParent()); if (!parent.exists()) { if (!parent.mkdirs()) { - Log.warning("Failed to create target directory for resource '" + rsrc + "'. " + + log.warning("Failed to create target directory for resource '" + rsrc + "'. " + "Download will certainly fail."); } } diff --git a/src/java/com/threerings/getdown/net/HTTPDownloader.java b/src/java/com/threerings/getdown/net/HTTPDownloader.java index 0a645e8..ab3d5cd 100644 --- a/src/java/com/threerings/getdown/net/HTTPDownloader.java +++ b/src/java/com/threerings/getdown/net/HTTPDownloader.java @@ -27,9 +27,11 @@ import java.net.HttpURLConnection; import java.util.List; import com.samskivert.io.StreamUtil; -import com.threerings.getdown.Log; + import com.threerings.getdown.data.Resource; +import static com.threerings.getdown.Log.log; + /** * Implements downloading files over HTTP */ @@ -89,7 +91,7 @@ public class HTTPDownloader extends Downloader throw new IOException(errmsg); } - Log.info("Downloading resource [url=" + rsrc.getRemote() + "]."); + log.info("Downloading resource [url=" + rsrc.getRemote() + "]."); InputStream in = null; FileOutputStream out = null; try { diff --git a/src/java/com/threerings/getdown/net/TorrentDownloader.java b/src/java/com/threerings/getdown/net/TorrentDownloader.java index 912ea5a..60a1b69 100644 --- a/src/java/com/threerings/getdown/net/TorrentDownloader.java +++ b/src/java/com/threerings/getdown/net/TorrentDownloader.java @@ -27,9 +27,10 @@ import java.util.List; import org.klomp.snark.Snark; import org.klomp.snark.SnarkShutdown; -import com.threerings.getdown.Log; import com.threerings.getdown.data.Resource; +import static com.threerings.getdown.Log.log; + /** * Implements downloading data using BitTorrent */ @@ -38,7 +39,7 @@ public class TorrentDownloader extends Downloader public TorrentDownloader (List resources, Observer obs) { super(resources, obs); - Log.info("Using bittorrent to fetch files"); + log.info("Using bittorrent to fetch files"); for (Resource resource : resources) { String url = resource.getRemote().toString() + ".torrent"; Snark snark = new Snark(url, null, -1, null, null); @@ -69,7 +70,7 @@ public class TorrentDownloader extends Downloader snark.setupNetwork(); length = snark.meta.getTotalLength(); } catch (IOException ioe) { - Log.warning("Bittorrent failed, falling back to HTTP"); + log.warning("Bittorrent failed, falling back to HTTP"); SnarkShutdown stopper = _stoppermap.get(rsrc); stopper.run(); Runtime.getRuntime().removeShutdownHook(stopper); @@ -111,7 +112,7 @@ public class TorrentDownloader extends Downloader _currentSize = snark.coordinator.getDownloaded(); if ((_currentSize < SIZE_THRESHOLD && (now - _start) >= TIME_THRESHOLD)) { - Log.info("Torrenting too slow, falling back to HTTP."); + log.info("Torrenting too slow, falling back to HTTP."); // The download isn't going as planned, abort; snarkStopper.run(); Runtime.getRuntime().removeShutdownHook(snarkStopper); diff --git a/src/java/com/threerings/getdown/tools/Patcher.java b/src/java/com/threerings/getdown/tools/Patcher.java index d1b7bb6..c273abe 100644 --- a/src/java/com/threerings/getdown/tools/Patcher.java +++ b/src/java/com/threerings/getdown/tools/Patcher.java @@ -32,10 +32,11 @@ import java.util.zip.ZipEntry; import com.samskivert.io.StreamUtil; import org.apache.commons.io.IOUtils; -import com.threerings.getdown.Log; import com.threerings.getdown.util.FileUtil; import com.threerings.getdown.util.ProgressObserver; +import static com.threerings.getdown.Log.log; + /** * Applies a unified patch file to an application directory, providing * percentage completion feedback along the way. Note: the @@ -122,7 +123,7 @@ public class Patcher File pdir = target.getParentFile(); if (!pdir.exists()) { if (!pdir.mkdirs()) { - Log.warning("Failed to create parent for '" + target + "'."); + log.warning("Failed to create parent for '" + target + "'."); } } diff --git a/src/java/com/threerings/getdown/util/ConfigUtil.java b/src/java/com/threerings/getdown/util/ConfigUtil.java index cef98ed..82c5ebc 100644 --- a/src/java/com/threerings/getdown/util/ConfigUtil.java +++ b/src/java/com/threerings/getdown/util/ConfigUtil.java @@ -34,7 +34,7 @@ import java.util.List; import com.samskivert.io.StreamUtil; import com.samskivert.util.StringUtil; -import com.threerings.getdown.Log; +import static com.threerings.getdown.Log.log; /** * Parses a file containing key/value pairs and returns a {@link HashMap} with the values. Keys may @@ -90,7 +90,7 @@ public class ConfigUtil if (pair[1].startsWith("[")) { cidx = pair[1].indexOf("]"); if (cidx == -1) { - Log.warning("Bogus platform specifier [key=" + pair[0] + + log.warning("Bogus platform specifier [key=" + pair[0] + ", value=" + pair[1] + "]."); } else { String platform = pair[1].substring(1, cidx); @@ -100,12 +100,12 @@ public class ConfigUtil if (platform.startsWith("!")) { platform = platform.substring(1); if (osname.indexOf(platform) != -1) { - Log.info("Skipping [platform=!" + platform + + log.info("Skipping [platform=!" + platform + ", key=" + pair[0] + ", value=" + pair[1] + "]."); continue; } } else if (osname.indexOf(platform) == -1) { - Log.info("Skipping [platform=" + platform + + log.info("Skipping [platform=" + platform + ", key=" + pair[0] + ", value=" + pair[1] + "]."); continue; } diff --git a/src/java/com/threerings/getdown/util/FileUtil.java b/src/java/com/threerings/getdown/util/FileUtil.java index 56d46bb..5b6e76a 100644 --- a/src/java/com/threerings/getdown/util/FileUtil.java +++ b/src/java/com/threerings/getdown/util/FileUtil.java @@ -29,7 +29,7 @@ import com.samskivert.io.StreamUtil; import org.apache.commons.io.IOUtils; -import com.threerings.getdown.Log; +import static com.threerings.getdown.Log.log; /** * File related utilities. @@ -55,14 +55,14 @@ public class FileUtil File temp = new File(dest.getPath() + "_old"); if (temp.exists()) { if (!temp.delete()) { - Log.warning("Failed to delete old intermediate file " + temp + "."); + log.warning("Failed to delete old intermediate file " + temp + "."); // the subsequent code will probably fail } } if (dest.renameTo(temp)) { if (source.renameTo(dest)) { if (temp.delete()) { - Log.warning("Failed to delete intermediate file " + temp + "."); + log.warning("Failed to delete intermediate file " + temp + "."); } return true; } @@ -77,13 +77,13 @@ public class FileUtil fout = new FileOutputStream(dest); IOUtils.copy(fin, fout); if (!source.delete()) { - Log.warning("Failed to delete " + source + + log.warning("Failed to delete " + source + " after brute force copy to " + dest + "."); } return true; } catch (IOException ioe) { - Log.warning("Failed to copy " + source + " to " + dest + ": " + ioe); + log.warning("Failed to copy " + source + " to " + dest + ": " + ioe); return false; } finally { diff --git a/src/java/com/threerings/getdown/util/LaunchUtil.java b/src/java/com/threerings/getdown/util/LaunchUtil.java index 85d6aff..c824c2f 100644 --- a/src/java/com/threerings/getdown/util/LaunchUtil.java +++ b/src/java/com/threerings/getdown/util/LaunchUtil.java @@ -90,7 +90,7 @@ public class LaunchUtil Runtime.getRuntime().exec(args, null); return true; } catch (IOException ioe) { - log.log(Level.WARNING, "Failed to run getdown", ioe); + log.warning("Failed to run getdown", ioe); return false; } } @@ -136,7 +136,7 @@ public class LaunchUtil vmpath = "/usr/bin/java"; } } catch (IOException ioe) { - log.log(Level.WARNING, "Failed to check Mac OS canonical VM path.", ioe); + log.warning("Failed to check Mac OS canonical VM path.", ioe); } } @@ -192,7 +192,7 @@ public class LaunchUtil try { IOUtils.copy(new FileInputStream(newgd), new FileOutputStream(curgd)); } catch (IOException ioe) { - log.log(Level.WARNING, "Mayday! Brute force copy method also failed.", ioe); + log.warning("Mayday! Brute force copy method also failed.", ioe); } }