Use decode instead of parseLong for query params.

This makes it possible to enter a hex id of an object in the url,
where before you had to manually translate the hex id to decimal
first.

Switch to using the hex format for the id in links to be more consistent
with the summary presentation of objects.

Bug: 28669428
Test: m ahat-test
Test: ahat test-dump/O.hprof, visit http://localhost:7100/object?id=0x6004fdb8
Test: launch ahat and click on object links and confirm they still work.
Test: run ahat on a heap dump with bitmaps and confirm they still show up.
Change-Id: Ia6a84b4674a95519dce1ff701086a86d551a51d1
diff --git a/tools/ahat/src/ObjectHandler.java b/tools/ahat/src/ObjectHandler.java
index 79f8b76..da4d9cc 100644
--- a/tools/ahat/src/ObjectHandler.java
+++ b/tools/ahat/src/ObjectHandler.java
@@ -257,7 +257,7 @@
     if (bitmap != null) {
       doc.section("Bitmap Image");
       doc.println(DocString.image(
-            DocString.formattedUri("bitmap?id=%d", bitmap.getId()), "bitmap image"));
+            DocString.formattedUri("bitmap?id=0x%x", bitmap.getId()), "bitmap image"));
     }
   }
 
diff --git a/tools/ahat/src/Query.java b/tools/ahat/src/Query.java
index f910608..9c2783c 100644
--- a/tools/ahat/src/Query.java
+++ b/tools/ahat/src/Query.java
@@ -65,7 +65,7 @@
    */
   public long getLong(String name, long defaultValue) {
     String value = get(name, null);
-    return value == null ? defaultValue : Long.parseLong(value);
+    return value == null ? defaultValue : Long.decode(value);
   }
 
   /**
@@ -73,7 +73,7 @@
    */
   public int getInt(String name, int defaultValue) {
     String value = get(name, null);
-    return value == null ? defaultValue : Integer.parseInt(value);
+    return value == null ? defaultValue : Integer.decode(value);
   }
 
   /**
diff --git a/tools/ahat/src/Summarizer.java b/tools/ahat/src/Summarizer.java
index 50b2e4b..da95a14 100644
--- a/tools/ahat/src/Summarizer.java
+++ b/tools/ahat/src/Summarizer.java
@@ -65,7 +65,7 @@
       // Don't make links to placeholder objects.
       formatted.append(linkText);
     } else {
-      URI objTarget = DocString.formattedUri("object?id=%d", inst.getId());
+      URI objTarget = DocString.formattedUri("object?id=0x%x", inst.getId());
       formatted.appendLink(objTarget, linkText);
     }
 
@@ -100,7 +100,7 @@
     AhatInstance bitmap = inst.getAssociatedBitmapInstance();
     String thumbnail = "";
     if (bitmap != null) {
-      URI uri = DocString.formattedUri("bitmap?id=%d", bitmap.getId());
+      URI uri = DocString.formattedUri("bitmap?id=0x%x", bitmap.getId());
       formatted.appendThumbnail(uri, "bitmap image");
     }
     return formatted;