diff options
Diffstat (limited to 'sdkmanager')
4 files changed, 35 insertions, 8 deletions
diff --git a/sdkmanager/libs/sdklib/src/com/android/sdklib/internal/repository/AddonPackage.java b/sdkmanager/libs/sdklib/src/com/android/sdklib/internal/repository/AddonPackage.java index 4a19206..3c7b8c6 100755 --- a/sdkmanager/libs/sdklib/src/com/android/sdklib/internal/repository/AddonPackage.java +++ b/sdkmanager/libs/sdklib/src/com/android/sdklib/internal/repository/AddonPackage.java @@ -126,8 +126,12 @@ public class AddonPackage extends Package { super.saveProperties(props);
mVersion.saveProperties(props);
- props.setProperty(PROP_NAME, mName);
- props.setProperty(PROP_VENDOR, mVendor);
+ if (mName != null) {
+ props.setProperty(PROP_NAME, mName);
+ }
+ if (mVendor != null) {
+ props.setProperty(PROP_VENDOR, mVendor);
+ }
}
/**
diff --git a/sdkmanager/libs/sdklib/src/com/android/sdklib/internal/repository/Package.java b/sdkmanager/libs/sdklib/src/com/android/sdklib/internal/repository/Package.java index 1fcd6b1..a637fde 100755 --- a/sdkmanager/libs/sdklib/src/com/android/sdklib/internal/repository/Package.java +++ b/sdkmanager/libs/sdklib/src/com/android/sdklib/internal/repository/Package.java @@ -145,9 +145,15 @@ public abstract class Package implements IDescription { */
void saveProperties(Properties props) {
props.setProperty(PROP_REVISION, Integer.toString(mRevision));
- props.setProperty(PROP_LICENSE, mLicense);
- props.setProperty(PROP_DESC, mDescription);
- props.setProperty(PROP_DESC_URL, mDescUrl);
+ if (mLicense != null) {
+ props.setProperty(PROP_LICENSE, mLicense);
+ }
+ if (mDescription != null) {
+ props.setProperty(PROP_DESC, mDescription);
+ }
+ if (mDescUrl != null) {
+ props.setProperty(PROP_DESC_URL, mDescUrl);
+ }
if (mSource != null) {
props.setProperty(PROP_SOURCE_URL, mSource.getUrl());
diff --git a/sdkmanager/libs/sdklib/src/com/android/sdklib/internal/repository/PlatformPackage.java b/sdkmanager/libs/sdklib/src/com/android/sdklib/internal/repository/PlatformPackage.java index 324f51d..c9a58f7 100755 --- a/sdkmanager/libs/sdklib/src/com/android/sdklib/internal/repository/PlatformPackage.java +++ b/sdkmanager/libs/sdklib/src/com/android/sdklib/internal/repository/PlatformPackage.java @@ -87,7 +87,9 @@ public class PlatformPackage extends Package { super.saveProperties(props);
mVersion.saveProperties(props);
- props.setProperty(PROP_VERSION, mVersionName);
+ if (mVersionName != null) {
+ props.setProperty(PROP_VERSION, mVersionName);
+ }
}
/** Returns the version, a string, for platform packages. */
diff --git a/sdkmanager/libs/sdkuilib/src/com/android/sdkuilib/internal/repository/UpdaterData.java b/sdkmanager/libs/sdkuilib/src/com/android/sdkuilib/internal/repository/UpdaterData.java index 321f5ca..a9e8afa 100755 --- a/sdkmanager/libs/sdkuilib/src/com/android/sdkuilib/internal/repository/UpdaterData.java +++ b/sdkmanager/libs/sdkuilib/src/com/android/sdkuilib/internal/repository/UpdaterData.java @@ -36,6 +36,8 @@ import com.android.sdkuilib.repository.UpdaterWindow.ISdkListener; import org.eclipse.swt.widgets.Shell;
+import java.io.ByteArrayOutputStream;
+import java.io.PrintStream;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
@@ -304,8 +306,21 @@ class UpdaterData { } catch (Throwable t) {
// Display anything unexpected in the monitor.
- monitor.setResult("Unexpected Error: %1$s", t.getMessage());
-
+ String msg = t.getMessage();
+ if (msg != null) {
+ monitor.setResult("Unexpected Error installing '%1%s: %2$s",
+ archive.getParentPackage().getShortDescription(), msg);
+ } else {
+ // no error info? get the stack call to display it
+ // At least that'll give us a better bug report.
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
+ t.printStackTrace(new PrintStream(baos));
+
+ // and display it
+ monitor.setResult("Unexpected Error installing '%1$s\n%2$s",
+ archive.getParentPackage().getShortDescription(),
+ baos.toString());
+ }
} finally {
// Always move the progress bar to the desired position.
|