diff --git a/WORKSPACE b/WORKSPACE
index 73b8d44..6fbf259 100644
--- a/WORKSPACE
+++ b/WORKSPACE
@@ -3,7 +3,7 @@
 load("//:bazlets.bzl", "load_bazlets")
 
 load_bazlets(
-    commit = "a010a539824bd467059f414412a47b80101352d7",
+    commit = "3f9dadc615dc4053369a42d9ada37dafd8d4763c",
     #local_path = "/home/<user>/projects/bazlets",
 )
 
diff --git a/src/test/java/com/googlesource/gerrit/plugins/javamelody/GerritMonitoringFilterTest.java b/src/test/java/com/googlesource/gerrit/plugins/javamelody/GerritMonitoringFilterTest.java
index 1686414..3c0311f 100644
--- a/src/test/java/com/googlesource/gerrit/plugins/javamelody/GerritMonitoringFilterTest.java
+++ b/src/test/java/com/googlesource/gerrit/plugins/javamelody/GerritMonitoringFilterTest.java
@@ -14,7 +14,7 @@
 
 package com.googlesource.gerrit.plugins.javamelody;
 
-import static com.google.common.truth.Truth.assertThat;
+import static com.google.common.truth.Truth.assertWithMessage;
 
 import java.util.regex.Pattern;
 import org.junit.Test;
@@ -37,40 +37,46 @@
             .matcher(
                 "/plugins/lfs/content/default/a55dc67374da05f4e1eb736f8ad2147d0a6964ed41d28462fd7e2fe86bea78ed")
             .replaceAll(dollar);
-    assertThat(result).named("Long SHA (LFS) grouping").isEqualTo("/plugins/lfs/content/default/$");
+    assertWithMessage("Long SHA (LFS) grouping")
+        .that(result)
+        .isEqualTo("/plugins/lfs/content/default/$");
 
     result =
         GROUPING_PATTERN
             .matcher("/changes/?q=05810c7a315ba6c52c150c237d84d05b2ebc3086&n=")
             .replaceAll(dollar);
-    assertThat(result).named("SHA-1 grouping").isEqualTo("/changes/?q=$&n=");
+    assertWithMessage("SHA-1 grouping").that(result).isEqualTo("/changes/?q=$&n=");
 
     result =
         GROUPING_PATTERN
             .matcher("/gerrit_ui/gwt/chrome/7CF1DE6EF2AABFEFAE4D469A16D60071.cache.css")
             .replaceAll(dollar);
-    assertThat(result).named("GWT cache grouping").isEqualTo("/gerrit_ui/gwt/chrome/$.cache.css");
+    assertWithMessage("GWT cache grouping")
+        .that(result)
+        .isEqualTo("/gerrit_ui/gwt/chrome/$.cache.css");
 
     result = GROUPING_PATTERN.matcher("/files/test_dir%2Funder_dir.file/diff").replaceAll(dollar);
-    assertThat(result).named("Grouping by file").isEqualTo("/files/$/diff");
+    assertWithMessage("Grouping by file").that(result).isEqualTo("/files/$/diff");
 
     result = GROUPING_PATTERN.matcher("/projects/plugins%2Fjavamelody/config").replaceAll(dollar);
-    assertThat(result).named("Grouping by projects").isEqualTo("/projects/$/config");
+    assertWithMessage("Grouping by projects").that(result).isEqualTo("/projects/$/config");
 
     result = GROUPING_PATTERN.matcher("/accounts/self/avatar.change.url").replaceAll(dollar);
-    assertThat(result).named("Grouping by account").isEqualTo("/accounts/$/avatar.change.url");
+    assertWithMessage("Grouping by account")
+        .that(result)
+        .isEqualTo("/accounts/$/avatar.change.url");
 
     result = GROUPING_PATTERN.matcher("/test_repo/git-upload-pack").replaceAll(dollar);
-    assertThat(result).named("Grouping git-upload-pack").isEqualTo("$/git-upload-pack");
+    assertWithMessage("Grouping git-upload-pack").that(result).isEqualTo("$/git-upload-pack");
 
     result = GROUPING_PATTERN.matcher("/test_repo/git-receive-pack").replaceAll(dollar);
-    assertThat(result).named("Grouping git-receive-pack").isEqualTo("$/git-receive-pack");
+    assertWithMessage("Grouping git-receive-pack").that(result).isEqualTo("$/git-receive-pack");
 
     result = GROUPING_PATTERN.matcher("/test_repo.git/info/lfs/locks").replaceAll(dollar);
-    assertThat(result).named("Grouping Git and LFS operations").isEqualTo("$/info/lfs/locks");
+    assertWithMessage("Grouping Git and LFS operations").that(result).isEqualTo("$/info/lfs/locks");
 
     result = GROUPING_PATTERN.matcher("/changes/30/revisions/1/commit").replaceAll(dollar);
-    assertThat(result).named("Grouping numbers").isEqualTo("/changes/$/revisions/$/commit");
+    assertWithMessage("Grouping numbers").that(result).isEqualTo("/changes/$/revisions/$/commit");
 
     // grouping multiple patterns in one input
     result =
@@ -78,8 +84,8 @@
             .matcher(
                 "/changes/30/revisions/05810c7a315ba6c52c150c237d84d05b2ebc3086/files/test_dir%2Funder_dir.file/diff")
             .replaceAll(dollar);
-    assertThat(result)
-        .named("Grouping by number, SHA-1 and file")
+    assertWithMessage("Grouping by number, SHA-1 and file")
+        .that(result)
         .isEqualTo("/changes/$/revisions/$/files/$/diff");
 
     result =
@@ -87,6 +93,8 @@
             .matcher(
                 "/test_repo.git/info/lfs/locks/8020e4344e49a6928e03b6db69ead86624ffb4aeb1477a7d741a5e2fee9544cd/unlock")
             .replaceAll(dollar);
-    assertThat(result).named("Grouping LFS with Long SHA").isEqualTo("$/info/lfs/locks/$/unlock");
+    assertWithMessage("Grouping LFS with Long SHA")
+        .that(result)
+        .isEqualTo("$/info/lfs/locks/$/unlock");
   }
 }
