diff --git a/WORKSPACE b/WORKSPACE
index c156344..78c73b8 100644
--- a/WORKSPACE
+++ b/WORKSPACE
@@ -3,7 +3,7 @@
 load("//:bazlets.bzl", "load_bazlets")
 
 load_bazlets(
-    commit = "7ff4605f48db148197675a0d2ea41ee07cb72fd3",
+    commit = "e68cc7a45d9ee2b100024b9b12533b50a4598585",
 )
 
 load(
diff --git a/src/main/java/com/googlesource/gerrit/plugins/events/StreamEvents.java b/src/main/java/com/googlesource/gerrit/plugins/events/StreamEvents.java
index c22cb4b..45549aa 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/events/StreamEvents.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/events/StreamEvents.java
@@ -47,13 +47,11 @@
 
   protected static final int BATCH_SIZE = 32; // yield thread after
   protected static final Gson gson = new Gson();
-  protected static final JsonParser parser = new JsonParser();
 
   @Option(
-    name = "--resume-after",
-    metaVar = "RESUME_AFTER",
-    usage = "event id after which to resume playing events on connection"
-  )
+      name = "--resume-after",
+      metaVar = "RESUME_AFTER",
+      usage = "event id after which to resume playing events on connection")
   protected void parseId(String arg) throws IOException {
     resume = 0;
     if ("0".equals(arg)) {
@@ -104,8 +102,7 @@
 
   @Override
   public void start(ChannelSession channel, Environment env) throws IOException {
-    try (DynamicOptions pluginOptions =
-        new DynamicOptions(injector, dynamicBeans)) {
+    try (DynamicOptions pluginOptions = new DynamicOptions(injector, dynamicBeans)) {
       try {
         parseCommandLine(pluginOptions);
       } catch (UnloggedFailure e) {
@@ -191,7 +188,8 @@
 
   protected void subscribe() {
     subscription =
-        subscriptionListeners.add(pluginName,
+        subscriptionListeners.add(
+            pluginName,
             new StreamEventListener() {
               @Override
               public void onStreamEventUpdate() {
@@ -233,7 +231,7 @@
 
   protected void flush(String uuid, long number, String json) {
     if (json != null) {
-      JsonElement el = parser.parse(json);
+      JsonElement el = JsonParser.parseString(json);
       if (perms.isVisibleTo(el, currentUser)) {
         if (includeIds) {
           el.getAsJsonObject().addProperty("id", uuid + ":" + number);
diff --git a/test/docker/gerrit/Dockerfile b/test/docker/gerrit/Dockerfile
index d6e7699..0bc19e2 100755
--- a/test/docker/gerrit/Dockerfile
+++ b/test/docker/gerrit/Dockerfile
@@ -1,4 +1,4 @@
-FROM gerritcodereview/gerrit:3.4.0-ubuntu20
+FROM gerritcodereview/gerrit:3.6.1-ubuntu20
 
 USER root
 
diff --git a/test/test_events_plugin.sh b/test/test_events_plugin.sh
index 6d88db9..84e0a6d 100755
--- a/test/test_events_plugin.sh
+++ b/test/test_events_plugin.sh
@@ -245,7 +245,7 @@
 result_type "$GROUP $type" "ref-updated" 2
 
 type=change-abandoned
-capture_events 3
+capture_events 2
 review "$ch1,1" --abandon
 result_type "$GROUP" "$type"
 
