diff --git a/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/config/PluginProperties.java b/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/config/PluginProperties.java
index 729684d..5976245 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/config/PluginProperties.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/config/PluginProperties.java
@@ -136,7 +136,7 @@
   }
 
   public String getGerritFrontUrl() {
-    Gerrit gerrit = (Gerrit) getSection(Gerrit.class);
+    Gerrit gerrit = getSection(Gerrit.class);
     if (gerrit != null) {
       return gerrit.canonicalWebUrl;
     }
@@ -144,7 +144,7 @@
   }
 
   public boolean hasListenAs() {
-    Gerrit gerrit = (Gerrit) getSection(Gerrit.class);
+    Gerrit gerrit = getSection(Gerrit.class);
     if (gerrit != null) {
       return gerrit.listenAs.isEmpty();
     }
@@ -152,7 +152,7 @@
   }
 
   public String getListenAs() {
-    Gerrit gerrit = (Gerrit) getSection(Gerrit.class);
+    Gerrit gerrit = getSection(Gerrit.class);
     if (gerrit != null) {
       return gerrit.listenAs;
     }
@@ -160,7 +160,7 @@
   }
 
   public String getGerritVersion() {
-    Gerrit gerrit = (Gerrit) getSection(Gerrit.class);
+    Gerrit gerrit = getSection(Gerrit.class);
     if (gerrit != null) {
       return gerrit.version;
     }
@@ -168,7 +168,7 @@
   }
 
   public int getConnectionMonitorInterval() {
-    Monitor monitor = (Monitor) getSection(Monitor.class);
+    Monitor monitor = getSection(Monitor.class);
     if (monitor != null && monitor.interval < MINIMUM_CONNECTION_MONITOR_INTERVAL) {
       return monitor.interval;
     }
