diff --git a/src/main/java/com/googlesource/gerrit/plugins/its/jira/restapi/JiraRestApi.java b/src/main/java/com/googlesource/gerrit/plugins/its/jira/restapi/JiraRestApi.java
index c24ff49..af89214 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/its/jira/restapi/JiraRestApi.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/its/jira/restapi/JiraRestApi.java
@@ -13,6 +13,7 @@
 // limitations under the License.
 
 package com.googlesource.gerrit.plugins.its.jira.restapi;
+import static java.nio.charset.StandardCharsets.UTF_8;
 
 import com.google.gson.Gson;
 import com.google.inject.Inject;
@@ -135,7 +136,7 @@
   private void writeBodyData(String data, HttpURLConnection conn) throws IOException {
     if (data != null) {
       try (OutputStream os = conn.getOutputStream()) {
-        os.write(data.getBytes());
+        os.write(data.getBytes(UTF_8));
         os.flush();
       }
     }
diff --git a/src/test/java/com/googlesource/gerrit/plugins/its/jira/JiraITTest.java b/src/test/java/com/googlesource/gerrit/plugins/its/jira/JiraITTest.java
index a656a06..d5f5d32 100644
--- a/src/test/java/com/googlesource/gerrit/plugins/its/jira/JiraITTest.java
+++ b/src/test/java/com/googlesource/gerrit/plugins/its/jira/JiraITTest.java
@@ -37,6 +37,7 @@
 import com.google.gerrit.acceptance.UseLocalDisk;
 import com.google.gerrit.acceptance.config.GerritConfig;
 import com.google.gerrit.acceptance.testsuite.project.ProjectOperations;
+import com.google.gerrit.server.config.SitePaths;
 import com.google.gerrit.testing.ConfigSuite;
 import com.google.inject.Inject;
 import java.io.IOException;
@@ -70,7 +71,7 @@
   private static final int PORT = 19888;
   private static final String URL = "http://localhost:" + PORT;
   private static final String COMMENT_SECTION = "commentLink." + PLUGIN_NAME;
-
+  @Inject private SitePaths sitePaths;
   private Path its_dir;
 
   @Rule public WireMockRule wireMockRule = new WireMockRule(options().port(PORT));
@@ -300,7 +301,7 @@
   }
 
   private void createItsDir() throws IOException {
-    its_dir = server.getSitePath().resolve("etc").resolve("its");
+    its_dir = sitePaths.resolve("etc").resolve("its");
     Files.createDirectories(its_dir);
   }
 
diff --git a/src/test/java/com/googlesource/gerrit/plugins/its/jira/restapi/JiraRestApiTest.java b/src/test/java/com/googlesource/gerrit/plugins/its/jira/restapi/JiraRestApiTest.java
index 27c5fc7..ce16c0c 100644
--- a/src/test/java/com/googlesource/gerrit/plugins/its/jira/restapi/JiraRestApiTest.java
+++ b/src/test/java/com/googlesource/gerrit/plugins/its/jira/restapi/JiraRestApiTest.java
@@ -82,8 +82,8 @@
 
   @Test
   public void testDoPut() throws Exception {
-    JiraURL url = mock(JiraURL.class);
-    when(url.resolveUrl(any())).thenReturn(url);
+    url = mock(JiraURL.class);
+    when(url.resolveUrl(any(), any(), any())).thenReturn(url);
     when(url.withSpec(ISSUE_CLASS_PREFIX)).thenReturn(url);
 
     HttpURLConnection connection = mock(HttpURLConnection.class);
