diff --git a/checkstyle.xml b/checkstyle.xml
index 89f130ae3dbb0a54965d330c4a65818c1ac7771c..b95092f43b6e811e7950451ef132fc91ca246dbe 100644
--- a/checkstyle.xml
+++ b/checkstyle.xml
@@ -271,5 +271,11 @@
 			<property name="exceptionVariableName" value="expected"/>
 		</module>
 		<module name="CommentsIndentation"/>
+
+		<!-- ARSnova-specific rules -->
+		<module name="FinalLocalVariable">
+			<property name="tokens" value="VARIABLE_DEF,PARAMETER_DEF"/>
+			<property name="validateEnhancedForLoopVariable" value="true"/>
+		</module>
 	</module>
 </module>
diff --git a/src/main/java/de/thm/arsnova/cache/CacheBusterImpl.java b/src/main/java/de/thm/arsnova/cache/CacheBusterImpl.java
index 2eb5a718b31dcb409dfcd001019c9c037040d821..4d8a7ed9289f6979627e961cd53ffe925b2aff60 100644
--- a/src/main/java/de/thm/arsnova/cache/CacheBusterImpl.java
+++ b/src/main/java/de/thm/arsnova/cache/CacheBusterImpl.java
@@ -38,37 +38,37 @@ public class CacheBusterImpl implements CacheBuster {
 
 	@CacheEvict(value = "statistics", allEntries = true)
 	@EventListener
-	public void handleAfterCommentCreation(AfterCreationEvent<Comment> event) {
+	public void handleAfterCommentCreation(final AfterCreationEvent<Comment> event) {
 
 	}
 
 	@CacheEvict(value = "statistics", allEntries = true)
 	@EventListener
-	public void handleAfterCommentDeletion(AfterDeletionEvent<Comment> event) {
+	public void handleAfterCommentDeletion(final AfterDeletionEvent<Comment> event) {
 
 	}
 
 	@CacheEvict(value = "answerlists", key = "#event.content.id")
 	@EventListener
-	public void handleAfterAnswerCreation(AfterCreationEvent<Answer> event) {
+	public void handleAfterAnswerCreation(final AfterCreationEvent<Answer> event) {
 
 	}
 
 	@CacheEvict(value = "statistics", allEntries = true)
 	@EventListener
-	public void handleChangeScore(ChangeScoreEvent event) {
+	public void handleChangeScore(final ChangeScoreEvent event) {
 
 	}
 
 	@CacheEvict(value = "statistics", allEntries = true)
 	@EventListener
-	public void handleAfterRoomCreation(AfterCreationEvent<Room> event) {
+	public void handleAfterRoomCreation(final AfterCreationEvent<Room> event) {
 
 	}
 
 	@CacheEvict(value = "statistics", allEntries = true)
 	@EventListener
-	public void handleAfterRoomDeletion(AfterDeletionEvent<Room> event) {
+	public void handleAfterRoomDeletion(final AfterDeletionEvent<Room> event) {
 
 	}
 }
diff --git a/src/main/java/de/thm/arsnova/config/AppConfig.java b/src/main/java/de/thm/arsnova/config/AppConfig.java
index ec88034756b958d5be953a4c240c307a023e6605..fc360c599a66a0a15f3e026c7ac4e00050508e4f 100644
--- a/src/main/java/de/thm/arsnova/config/AppConfig.java
+++ b/src/main/java/de/thm/arsnova/config/AppConfig.java
@@ -122,7 +122,7 @@ public class AppConfig implements WebMvcConfigurer {
 	@Value(value = "${api.indent-response-body:false}") private boolean apiIndent;
 
 	@Override
-	public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
+	public void configureMessageConverters(final List<HttpMessageConverter<?>> converters) {
 		converters.add(defaultJsonMessageConverter());
 		converters.add(apiV2JsonMessageConverter());
 		converters.add(stringMessageConverter());
@@ -130,8 +130,8 @@ public class AppConfig implements WebMvcConfigurer {
 	}
 
 	@Override
-	public void configureContentNegotiation(ContentNegotiationConfigurer configurer) {
-		PathApiVersionContentNegotiationStrategy strategy =
+	public void configureContentNegotiation(final ContentNegotiationConfigurer configurer) {
+		final PathApiVersionContentNegotiationStrategy strategy =
 				new PathApiVersionContentNegotiationStrategy(API_V3_MEDIA_TYPE);
 		configurer.mediaType("json", MediaType.APPLICATION_JSON_UTF8);
 		configurer.mediaType("xml", MediaType.APPLICATION_XML);
@@ -147,19 +147,19 @@ public class AppConfig implements WebMvcConfigurer {
 	}
 
 	@Override
-	public void configureViewResolvers(ViewResolverRegistry registry) {
+	public void configureViewResolvers(final ViewResolverRegistry registry) {
 		registry.viewResolver(new InternalResourceViewResolver());
 	}
 
 	@Override
-	public void addInterceptors(InterceptorRegistry registry) {
+	public void addInterceptors(final InterceptorRegistry registry) {
 		registry.addInterceptor(cacheControlInterceptorHandler());
 		registry.addInterceptor(deprecatedApiInterceptorHandler());
 		registry.addInterceptor(responseInterceptorHandler());
 	}
 
 	@Override
-	public void addResourceHandlers(ResourceHandlerRegistry registry) {
+	public void addResourceHandlers(final ResourceHandlerRegistry registry) {
 		registry.addResourceHandler("swagger.json").addResourceLocations("classpath:/");
 	}
 
@@ -180,10 +180,10 @@ public class AppConfig implements WebMvcConfigurer {
 
 	@Bean
 	public StringHttpMessageConverter stringMessageConverter() {
-		StringHttpMessageConverter messageConverter = new StringHttpMessageConverter();
+		final StringHttpMessageConverter messageConverter = new StringHttpMessageConverter();
 		messageConverter.setDefaultCharset(Charset.forName("UTF-8"));
 		messageConverter.setWriteAcceptCharset(false);
-		List<MediaType> mediaTypes = new ArrayList<>();
+		final List<MediaType> mediaTypes = new ArrayList<>();
 		mediaTypes.add(MediaType.TEXT_PLAIN);
 		messageConverter.setSupportedMediaTypes(mediaTypes);
 
@@ -192,16 +192,16 @@ public class AppConfig implements WebMvcConfigurer {
 
 	@Bean
 	public MappingJackson2HttpMessageConverter defaultJsonMessageConverter() {
-		Jackson2ObjectMapperBuilder builder = new Jackson2ObjectMapperBuilder();
+		final Jackson2ObjectMapperBuilder builder = new Jackson2ObjectMapperBuilder();
 		builder
 				.serializationInclusion(JsonInclude.Include.NON_EMPTY)
 				.defaultViewInclusion(false)
 				.indentOutput(apiIndent)
 				.simpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ");
-		ObjectMapper mapper = builder.build();
+		final ObjectMapper mapper = builder.build();
 		mapper.setConfig(mapper.getSerializationConfig().withView(View.Public.class));
-		MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter(mapper);
-		List<MediaType> mediaTypes = new ArrayList<>();
+		final MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter(mapper);
+		final List<MediaType> mediaTypes = new ArrayList<>();
 		mediaTypes.add(API_V3_MEDIA_TYPE);
 		mediaTypes.add(MediaType.APPLICATION_JSON_UTF8);
 		converter.setSupportedMediaTypes(mediaTypes);
@@ -211,7 +211,7 @@ public class AppConfig implements WebMvcConfigurer {
 
 	@Bean
 	public MappingJackson2HttpMessageConverter apiV2JsonMessageConverter() {
-		Jackson2ObjectMapperBuilder builder = new Jackson2ObjectMapperBuilder();
+		final Jackson2ObjectMapperBuilder builder = new Jackson2ObjectMapperBuilder();
 		builder
 				.serializationInclusion(JsonInclude.Include.NON_NULL)
 				.defaultViewInclusion(false)
@@ -219,10 +219,10 @@ public class AppConfig implements WebMvcConfigurer {
 				.featuresToEnable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS)
 				.featuresToEnable(SerializationFeature.WRITE_DATE_TIMESTAMPS_AS_NANOSECONDS)
 				.modules(new CouchDbDocumentModule());
-		ObjectMapper mapper = builder.build();
+		final ObjectMapper mapper = builder.build();
 		mapper.setConfig(mapper.getSerializationConfig().withView(View.Public.class));
-		MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter(mapper);
-		List<MediaType> mediaTypes = new ArrayList<>();
+		final MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter(mapper);
+		final List<MediaType> mediaTypes = new ArrayList<>();
 		mediaTypes.add(API_V2_MEDIA_TYPE);
 		mediaTypes.add(MediaType.APPLICATION_JSON_UTF8);
 		converter.setSupportedMediaTypes(mediaTypes);
@@ -240,7 +240,7 @@ public class AppConfig implements WebMvcConfigurer {
 
 	@Bean
 	public PropertiesFactoryBean versionInfoProperties() {
-		PropertiesFactoryBean propertiesFactoryBean = new PropertiesFactoryBean();
+		final PropertiesFactoryBean propertiesFactoryBean = new PropertiesFactoryBean();
 		propertiesFactoryBean.setLocation(new ClassPathResource("version.properties"));
 
 		return propertiesFactoryBean;
diff --git a/src/main/java/de/thm/arsnova/config/AppInitializer.java b/src/main/java/de/thm/arsnova/config/AppInitializer.java
index 780b342f0c028deb681ef513916034af76dee41a..74e069a743af0bc36b2bebd1e8cd6df9426a6c7b 100644
--- a/src/main/java/de/thm/arsnova/config/AppInitializer.java
+++ b/src/main/java/de/thm/arsnova/config/AppInitializer.java
@@ -49,10 +49,10 @@ public class AppInitializer extends AbstractAnnotationConfigDispatcherServletIni
 
 	@Override
 	protected Filter[] getServletFilters() {
-		CharacterEncodingFilter characterEncodingFilter = new CharacterEncodingFilter("UTF-8");
-		DelegatingFilterProxy corsFilter = new DelegatingFilterProxy("corsFilter");
-		DelegatingFilterProxy maintenanceModeFilter = new DelegatingFilterProxy("maintenanceModeFilter");
-		DelegatingFilterProxy v2ContentTypeOverrideFilter = new DelegatingFilterProxy("v2ContentTypeOverrideFilter");
+		final CharacterEncodingFilter characterEncodingFilter = new CharacterEncodingFilter("UTF-8");
+		final DelegatingFilterProxy corsFilter = new DelegatingFilterProxy("corsFilter");
+		final DelegatingFilterProxy maintenanceModeFilter = new DelegatingFilterProxy("maintenanceModeFilter");
+		final DelegatingFilterProxy v2ContentTypeOverrideFilter = new DelegatingFilterProxy("v2ContentTypeOverrideFilter");
 
 		return new Filter[] {
 				characterEncodingFilter,
diff --git a/src/main/java/de/thm/arsnova/config/SecurityConfig.java b/src/main/java/de/thm/arsnova/config/SecurityConfig.java
index eb10e7ff92b5d42f44e04a818d9b92f68de7528d..bd832e20f6d7c258bc31bd964851f0d4df1d679a 100644
--- a/src/main/java/de/thm/arsnova/config/SecurityConfig.java
+++ b/src/main/java/de/thm/arsnova/config/SecurityConfig.java
@@ -144,7 +144,7 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter {
 
 	public class HttpSecurityConfig extends WebSecurityConfigurerAdapter {
 		@Override
-		protected void configure(HttpSecurity http) throws Exception {
+		protected void configure(final HttpSecurity http) throws Exception {
 			http.exceptionHandling().authenticationEntryPoint(restAuthenticationEntryPoint());
 			http.csrf().disable();
 			http.headers().addHeaderWriter(new HstsHeaderWriter(false));
@@ -166,7 +166,7 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter {
 	@Profile("!test")
 	public class StatelessHttpSecurityConfig extends HttpSecurityConfig {
 		@Override
-		protected void configure(HttpSecurity http) throws Exception {
+		protected void configure(final HttpSecurity http) throws Exception {
 			super.configure(http);
 			http.antMatcher("/**");
 			http.sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS);
@@ -178,7 +178,7 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter {
 	@Profile("!test")
 	public class StatefulHttpSecurityConfig extends HttpSecurityConfig {
 		@Override
-		protected void configure(HttpSecurity http) throws Exception {
+		protected void configure(final HttpSecurity http) throws Exception {
 			super.configure(http);
 			http.antMatcher("/v2/**");
 			http.sessionManagement().sessionCreationPolicy(SessionCreationPolicy.IF_REQUIRED);
@@ -190,8 +190,8 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter {
 	public class MethodSecurityConfig extends GlobalMethodSecurityConfiguration {
 		@Override
 		protected RunAsManager runAsManager() {
-			StringKeyGenerator keyGenerator = new Base64StringKeyGenerator();
-			RunAsManagerImpl runAsManager = new RunAsManagerImpl();
+			final StringKeyGenerator keyGenerator = new Base64StringKeyGenerator();
+			final RunAsManagerImpl runAsManager = new RunAsManagerImpl();
 			/* Since RunAsTokens should currently only be used internally, we generate a random key. */
 			runAsManager.setKey(RUN_AS_KEY_PREFIX + keyGenerator.generateKey());
 
@@ -207,8 +207,8 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter {
 	}
 
 	@Override
-	protected void configure(AuthenticationManagerBuilder auth) throws Exception {
-		List<String> providers = new ArrayList<>();
+	protected void configure(final AuthenticationManagerBuilder auth) throws Exception {
+		final List<String> providers = new ArrayList<>();
 		auth.authenticationProvider(jwtAuthenticationProvider());
 		if (ldapEnabled) {
 			providers.add("ldap");
@@ -270,7 +270,7 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter {
 
 	@Bean
 	public JwtTokenFilter jwtTokenFilter() throws Exception {
-		JwtTokenFilter jwtTokenFilter = new JwtTokenFilter();
+		final JwtTokenFilter jwtTokenFilter = new JwtTokenFilter();
 		return jwtTokenFilter;
 	}
 
@@ -320,7 +320,7 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter {
 
 	@Bean
 	public LdapAuthenticationProvider ldapAuthenticationProvider() {
-		LdapAuthenticationProvider ldapAuthenticationProvider =
+		final LdapAuthenticationProvider ldapAuthenticationProvider =
 				new LdapAuthenticationProvider(ldapAuthenticator(), ldapAuthoritiesPopulator());
 		ldapAuthenticationProvider.setUserDetailsContextMapper(customLdapUserDetailsMapper());
 
@@ -329,7 +329,7 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter {
 
 	@Bean
 	public LdapContextSource ldapContextSource() {
-		DefaultSpringSecurityContextSource contextSource = new DefaultSpringSecurityContextSource(ldapUrl);
+		final DefaultSpringSecurityContextSource contextSource = new DefaultSpringSecurityContextSource(ldapUrl);
 		/* TODO: implement support for LDAP bind using manager credentials */
 		if (!"".equals(ldapManagerUserDn) && !"".equals(ldapManagerPassword)) {
 			logger.debug("ldapManagerUserDn: {}", ldapManagerUserDn);
@@ -342,7 +342,7 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter {
 
 	@Bean
 	public LdapAuthenticator ldapAuthenticator() {
-		BindAuthenticator authenticator = new BindAuthenticator(ldapContextSource());
+		final BindAuthenticator authenticator = new BindAuthenticator(ldapContextSource());
 		authenticator.setUserAttributes(new String[] {ldapUserIdAttr});
 		if (!"".equals(ldapSearchFilter)) {
 			logger.debug("ldapSearch: {} {}", ldapSearchBase, ldapSearchFilter);
@@ -371,7 +371,7 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter {
 
 	@Bean
 	public CasAuthenticationProvider casAuthenticationProvider() {
-		CasAuthenticationProvider authProvider = new CasAuthenticationProvider();
+		final CasAuthenticationProvider authProvider = new CasAuthenticationProvider();
 		authProvider.setAuthenticationUserDetailsService(casUserDetailsService());
 		authProvider.setServiceProperties(casServiceProperties());
 		authProvider.setTicketValidator(casTicketValidator());
@@ -387,7 +387,7 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter {
 
 	@Bean
 	public ServiceProperties casServiceProperties() {
-		ServiceProperties properties = new ServiceProperties();
+		final ServiceProperties properties = new ServiceProperties();
 		properties.setService(rootUrl + apiPath + CAS_LOGIN_PATH_SUFFIX);
 		properties.setSendRenew(false);
 
@@ -401,7 +401,7 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter {
 
 	@Bean
 	public CasAuthenticationEntryPoint casAuthenticationEntryPoint() {
-		CasAuthenticationEntryPoint entryPoint = new CasAuthenticationEntryPoint();
+		final CasAuthenticationEntryPoint entryPoint = new CasAuthenticationEntryPoint();
 		entryPoint.setLoginUrl(casUrl + "/login");
 		entryPoint.setServiceProperties(casServiceProperties());
 
@@ -410,7 +410,7 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter {
 
 	@Bean
 	public CasAuthenticationFilter casAuthenticationFilter() throws Exception {
-		CasAuthenticationFilter filter = new CasAuthenticationFilter();
+		final CasAuthenticationFilter filter = new CasAuthenticationFilter();
 		filter.setAuthenticationManager(authenticationManager());
 		filter.setServiceProperties(casServiceProperties());
 		filter.setFilterProcessesUrl("/**" + CAS_LOGIN_PATH_SUFFIX);
@@ -422,7 +422,7 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter {
 
 	@Bean
 	public LogoutFilter casLogoutFilter() {
-		LogoutFilter filter = new LogoutFilter(casLogoutSuccessHandler(), logoutHandler());
+		final LogoutFilter filter = new LogoutFilter(casLogoutSuccessHandler(), logoutHandler());
 		filter.setLogoutRequestMatcher(new AntPathRequestMatcher("/**" + CAS_LOGOUT_PATH_SUFFIX));
 
 		return filter;
@@ -430,7 +430,7 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter {
 
 	@Bean
 	public LogoutSuccessHandler casLogoutSuccessHandler() {
-		CasLogoutSuccessHandler handler = new CasLogoutSuccessHandler();
+		final CasLogoutSuccessHandler handler = new CasLogoutSuccessHandler();
 		handler.setCasUrl(casUrl);
 		handler.setDefaultTarget(rootUrl);
 
@@ -441,7 +441,7 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter {
 
 	@Bean
 	public Config oauthConfig() {
-		List<Client> clients = new ArrayList<>();
+		final List<Client> clients = new ArrayList<>();
 		if (oidcEnabled) {
 			clients.add(oidcClient());
 		}
@@ -460,7 +460,7 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter {
 
 	@Bean
 	public OauthCallbackFilter oauthCallbackFilter() throws Exception {
-		OauthCallbackFilter callbackFilter = new OauthCallbackFilter(oauthConfig());
+		final OauthCallbackFilter callbackFilter = new OauthCallbackFilter(oauthConfig());
 		callbackFilter.setAuthenticationManager(authenticationManager());
 		callbackFilter.setFilterProcessesUrl("/**" + OAUTH_CALLBACK_PATH_SUFFIX);
 
@@ -474,12 +474,12 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter {
 
 	@Bean
 	public OidcClient oidcClient() {
-		OidcConfiguration config = new OidcConfiguration();
+		final OidcConfiguration config = new OidcConfiguration();
 		config.setDiscoveryURI(oidcIssuer + OIDC_DISCOVERY_PATH_SUFFIX);
 		config.setClientId(oidcClientId);
 		config.setSecret(oidcSecret);
 		config.setScope("openid");
-		OidcClient client = new OidcClient(config);
+		final OidcClient client = new OidcClient(config);
 		client.setCallbackUrl(rootUrl + apiPath + OAUTH_CALLBACK_PATH_SUFFIX + "?client_name=OidcClient");
 
 		return client;
@@ -503,7 +503,7 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter {
 
 	@Bean
 	public GoogleOidcClient googleClient() {
-		OidcConfiguration config = new OidcConfiguration();
+		final OidcConfiguration config = new OidcConfiguration();
 		config.setClientId(googleKey);
 		config.setSecret(googleSecret);
 		config.setScope("openid email");
diff --git a/src/main/java/de/thm/arsnova/config/WebSocketConfig.java b/src/main/java/de/thm/arsnova/config/WebSocketConfig.java
index f8dd3dee2cc43c38cf04d13f4d69e079e26e99c5..e2dee780a5049239adf638361ab6a95acdddf296 100644
--- a/src/main/java/de/thm/arsnova/config/WebSocketConfig.java
+++ b/src/main/java/de/thm/arsnova/config/WebSocketConfig.java
@@ -29,12 +29,12 @@ public class WebSocketConfig implements WebSocketMessageBrokerConfigurer {
 	@Value(value = "${security.cors.origins:}") private String[] corsOrigins;
 
 	@Autowired
-	public WebSocketConfig(AuthChannelInterceptorAdapter authChannelInterceptorAdapter) {
+	public WebSocketConfig(final AuthChannelInterceptorAdapter authChannelInterceptorAdapter) {
 		this.authChannelInterceptorAdapter = authChannelInterceptorAdapter;
 	}
 
 	@Override
-	public void configureMessageBroker(MessageBrokerRegistry config) {
+	public void configureMessageBroker(final MessageBrokerRegistry config) {
 		config.setApplicationDestinationPrefixes(MESSAGING_PREFIX);
 
 		if (relayEnabled) {
@@ -52,12 +52,12 @@ public class WebSocketConfig implements WebSocketMessageBrokerConfigurer {
 	}
 
 	@Override
-	public void registerStompEndpoints(StompEndpointRegistry registry) {
+	public void registerStompEndpoints(final StompEndpointRegistry registry) {
 		registry.addEndpoint("/ws").setAllowedOrigins(corsOrigins).withSockJS();
 	}
 
 	@Override
-	public void configureClientInboundChannel(ChannelRegistration registration) {
+	public void configureClientInboundChannel(final ChannelRegistration registration) {
 		registration.setInterceptors(authChannelInterceptorAdapter);
 	}
 }
diff --git a/src/main/java/de/thm/arsnova/controller/AbstractEntityController.java b/src/main/java/de/thm/arsnova/controller/AbstractEntityController.java
index f87c4fc5c50f675f1e7a10a4cc7eb8c6110abb9a..fd32ace4749879a219401083605fee05114b6db4 100644
--- a/src/main/java/de/thm/arsnova/controller/AbstractEntityController.java
+++ b/src/main/java/de/thm/arsnova/controller/AbstractEntityController.java
@@ -98,7 +98,7 @@ public abstract class AbstractEntityController<E extends Entity> {
 
 	@PutMapping(PUT_MAPPING)
 	public E put(@RequestBody final E entity, final HttpServletResponse httpServletResponse) {
-		E oldEntity = entityService.get(entity.getId());
+		final E oldEntity = entityService.get(entity.getId());
 		entityService.update(oldEntity, entity);
 		httpServletResponse.setHeader(ENTITY_ID_HEADER, entity.getId());
 		httpServletResponse.setHeader(ENTITY_REVISION_HEADER, entity.getRevision());
@@ -134,7 +134,7 @@ public abstract class AbstractEntityController<E extends Entity> {
 	@PatchMapping(PATCH_MAPPING)
 	public E patch(@PathVariable final String id, @RequestBody final Map<String, Object> changes,
 			final HttpServletResponse httpServletResponse) throws IOException {
-		E entity = entityService.get(id);
+		final E entity = entityService.get(id);
 		entityService.patch(entity, changes);
 		httpServletResponse.setHeader(ENTITY_ID_HEADER, entity.getId());
 		httpServletResponse.setHeader(ENTITY_REVISION_HEADER, entity.getRevision());
@@ -144,7 +144,7 @@ public abstract class AbstractEntityController<E extends Entity> {
 
 	@DeleteMapping(DELETE_MAPPING)
 	public void delete(@PathVariable final String id) {
-		E entity = entityService.get(id);
+		final E entity = entityService.get(id);
 		entityService.delete(entity);
 	}
 
@@ -152,7 +152,7 @@ public abstract class AbstractEntityController<E extends Entity> {
 	public Iterable<E> find(@RequestBody final FindQuery<E> findQuery) throws OperationNotSupportedException {
 		if (findQueryService != null) {
 			logger.debug("Resolving find query: {}", findQuery);
-			Set<String> ids = findQueryService.resolveQuery(findQuery);
+			final Set<String> ids = findQueryService.resolveQuery(findQuery);
 			logger.debug("Resolved find query to IDs: {}", ids);
 
 			return entityService.get(ids);
@@ -162,8 +162,8 @@ public abstract class AbstractEntityController<E extends Entity> {
 	}
 
 	@RequestMapping(value = {DEFAULT_ALIAS_MAPPING, DEFAULT_ALIAS_MAPPING + ALIAS_SUBPATH})
-	public void forwardAlias(@PathVariable final String alias, @PathVariable(required = false) String subPath,
-			HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse)
+	public void forwardAlias(@PathVariable final String alias, @PathVariable(required = false) final String subPath,
+			final HttpServletRequest httpServletRequest, final HttpServletResponse httpServletResponse)
 			throws ServletException, IOException {
 		final String targetPath = String.format(
 				"%s/%s%s", getMapping(), resolveAlias(alias), subPath != null ? "/" + subPath : "");
diff --git a/src/main/java/de/thm/arsnova/controller/AuthenticationController.java b/src/main/java/de/thm/arsnova/controller/AuthenticationController.java
index f9bd848ac838c1610d325d7d6ca972e24e1f202b..7c7df3663b54acfed83a8525134117b2375604e5 100644
--- a/src/main/java/de/thm/arsnova/controller/AuthenticationController.java
+++ b/src/main/java/de/thm/arsnova/controller/AuthenticationController.java
@@ -44,7 +44,7 @@ public class AuthenticationController {
 	}
 
 	@PostMapping("/login/registered")
-	public ClientAuthentication loginRegistered(@RequestBody LoginCredentials loginCredentials) {
+	public ClientAuthentication loginRegistered(@RequestBody final LoginCredentials loginCredentials) {
 		final String loginId = loginCredentials.getLoginId().toLowerCase();
 		userService.authenticate(new UsernamePasswordAuthenticationToken(loginId, loginCredentials.getPassword()),
 				UserProfile.AuthProvider.ARSNOVA);
diff --git a/src/main/java/de/thm/arsnova/controller/ConfigurationController.java b/src/main/java/de/thm/arsnova/controller/ConfigurationController.java
index 6a69d8b279af5afa80a79afae8edd5db7e0c082d..b530717f037e343c110ce2ac3bac877821b1b14e 100644
--- a/src/main/java/de/thm/arsnova/controller/ConfigurationController.java
+++ b/src/main/java/de/thm/arsnova/controller/ConfigurationController.java
@@ -162,7 +162,7 @@ public class ConfigurationController extends AbstractController {
 
 	@RequestMapping(method = RequestMethod.GET)
 	@ResponseBody
-	public Map<String, Object> getConfiguration(HttpServletRequest request) {
+	public Map<String, Object> getConfiguration(final HttpServletRequest request) {
 		final Map<String, Object> config = new HashMap<>();
 		final Map<String, Boolean> features = new HashMap<>();
 		final Map<String, String> publicPool = new HashMap<>();
@@ -269,7 +269,7 @@ public class ConfigurationController extends AbstractController {
 		}
 
 		if (!"".equals(trackingTrackerUrl)) {
-			Map<String, String> tracking = new HashMap<>();
+			final Map<String, String> tracking = new HashMap<>();
 			config.put("tracking", tracking);
 
 			tracking.put("provider", trackingProvider);
diff --git a/src/main/java/de/thm/arsnova/controller/ControllerExceptionHelper.java b/src/main/java/de/thm/arsnova/controller/ControllerExceptionHelper.java
index 55972994e779bcc1972decec9ed66d5319f7d17e..ea7336c0674cfa002a85c46884088e8fec7d9268 100644
--- a/src/main/java/de/thm/arsnova/controller/ControllerExceptionHelper.java
+++ b/src/main/java/de/thm/arsnova/controller/ControllerExceptionHelper.java
@@ -34,7 +34,7 @@ public class ControllerExceptionHelper {
 	/* Since exception messages might contain sensitive data, they are not exposed by default. */
 	@Value("${api.expose-error-messages:false}") private boolean exposeMessages;
 
-	protected Map<String, Object> handleException(@NonNull Throwable e, @NonNull Level level) {
+	protected Map<String, Object> handleException(@NonNull final Throwable e, @NonNull final Level level) {
 		final String message = e.getMessage() != null ? e.getMessage() : "";
 		log(level, message, e);
 		final Map<String, Object> result = new HashMap<>();
@@ -46,7 +46,7 @@ public class ControllerExceptionHelper {
 		return result;
 	}
 
-	private void log(Level level, String message, Throwable e) {
+	private void log(final Level level, final String message, final Throwable e) {
 		switch (level) {
 			case ERROR:
 				logger.error(message, e);
diff --git a/src/main/java/de/thm/arsnova/controller/PaginationController.java b/src/main/java/de/thm/arsnova/controller/PaginationController.java
index 3f0983db48f00d45265304206d6f93081aa15c15..e51e9806c2e65b55be6d5e2145285095e7d37557 100644
--- a/src/main/java/de/thm/arsnova/controller/PaginationController.java
+++ b/src/main/java/de/thm/arsnova/controller/PaginationController.java
@@ -25,7 +25,7 @@ public abstract class PaginationController extends AbstractController {
 	protected int offset = -1;
 	protected int limit = -1;
 
-	public void setRange(int start, int end) {
+	public void setRange(final int start, final int end) {
 		this.offset = start;
 		this.limit = end != -1 && start <= end ? end - start + 1 : -1;
 	}
diff --git a/src/main/java/de/thm/arsnova/controller/UserController.java b/src/main/java/de/thm/arsnova/controller/UserController.java
index cd6519a23a2498c3364be3567c381ec3e3718b4e..fb8880f249752cbc05a0b385ba0b81dfce4cd01c 100644
--- a/src/main/java/de/thm/arsnova/controller/UserController.java
+++ b/src/main/java/de/thm/arsnova/controller/UserController.java
@@ -95,7 +95,7 @@ public class UserController extends AbstractEntityController<UserProfile> {
 	}
 
 	@PostMapping(REGISTER_MAPPING)
-	public void register(@RequestBody LoginCredentials loginCredentials) {
+	public void register(@RequestBody final LoginCredentials loginCredentials) {
 		if (userService.create(loginCredentials.getLoginId(), loginCredentials.getPassword()) == null) {
 			throw new ForbiddenException();
 		}
@@ -105,7 +105,7 @@ public class UserController extends AbstractEntityController<UserProfile> {
 	public void activate(
 			@PathVariable final String id,
 			@RequestParam final String key) {
-		UserProfile userProfile = userService.get(id, true);
+		final UserProfile userProfile = userService.get(id, true);
 		if (userProfile == null || !key.equals(userProfile.getAccount().getActivationKey())) {
 			throw new BadRequestException();
 		}
@@ -117,7 +117,7 @@ public class UserController extends AbstractEntityController<UserProfile> {
 	public void resetPassword(
 			@PathVariable final String id,
 			@RequestBody final PasswordReset passwordReset) {
-		UserProfile userProfile = userService.get(id, true);
+		final UserProfile userProfile = userService.get(id, true);
 		if (userProfile == null) {
 			throw new BadRequestException();
 		}
diff --git a/src/main/java/de/thm/arsnova/controller/WelcomeController.java b/src/main/java/de/thm/arsnova/controller/WelcomeController.java
index 779d9a2a0190a5b12675acd515720d54034f89b0..8ce005e5084572e210ef09a8a299c45576ef8296 100644
--- a/src/main/java/de/thm/arsnova/controller/WelcomeController.java
+++ b/src/main/java/de/thm/arsnova/controller/WelcomeController.java
@@ -94,21 +94,21 @@ public class WelcomeController extends AbstractController {
 			if (addr.isSiteLocalAddress()) {
 				throw new BadRequestException("Access to site-local addresses not allowed.");
 			}
-		} catch (UnknownHostException | MalformedURLException e) {
+		} catch (final UnknownHostException | MalformedURLException e) {
 			throw new BadRequestException();
 		}
 
-		RestTemplate restTemplate = new RestTemplate();
-		SimpleClientHttpRequestFactory rf = (SimpleClientHttpRequestFactory) restTemplate.getRequestFactory();
+		final RestTemplate restTemplate = new RestTemplate();
+		final SimpleClientHttpRequestFactory rf = (SimpleClientHttpRequestFactory) restTemplate.getRequestFactory();
 		rf.setConnectTimeout(2000);
 		rf.setReadTimeout(2000);
 
 		try {
-			HttpHeaders headers = restTemplate.headForHeaders(url);
+			final HttpHeaders headers = restTemplate.headForHeaders(url);
 			if (headers.isEmpty() || headers.containsKey("x-frame-options")) {
 				throw new NoContentException();
 			}
-		} catch (RestClientException e) {
+		} catch (final RestClientException e) {
 			throw new NoContentException();
 		}
 	}
diff --git a/src/main/java/de/thm/arsnova/controller/v2/AuthenticationController.java b/src/main/java/de/thm/arsnova/controller/v2/AuthenticationController.java
index e4e601f8c6632ed0b6382427daabbf675c764baa..8a1b43f79335b699428fbffe386a6a38977ad85f 100644
--- a/src/main/java/de/thm/arsnova/controller/v2/AuthenticationController.java
+++ b/src/main/java/de/thm/arsnova/controller/v2/AuthenticationController.java
@@ -157,12 +157,12 @@ public class AuthenticationController extends AbstractController {
 	@RequestMapping(value = { "/login", "/doLogin" }, method = { RequestMethod.POST, RequestMethod.GET })
 	public void doLogin(
 			@RequestParam("type") final String type,
-			@RequestParam(value = "user", required = false) String username,
+			@RequestParam(value = "user", required = false) final String username,
 			@RequestParam(required = false) final String password,
 			final HttpServletRequest request,
 			final HttpServletResponse response
 	) throws IOException {
-		String addr = request.getRemoteAddr();
+		final String addr = request.getRemoteAddr();
 		if (userService.isBannedFromLogin(addr)) {
 			response.sendError(429, "Too Many Requests");
 
@@ -174,7 +174,7 @@ public class AuthenticationController extends AbstractController {
 		if (dbAuthEnabled && "arsnova".equals(type)) {
 			try {
 				userService.authenticate(authRequest, UserProfile.AuthProvider.ARSNOVA);
-			} catch (AuthenticationException e) {
+			} catch (final AuthenticationException e) {
 				logger.info("Database authentication failed.", e);
 				userService.increaseFailedLoginCount(addr);
 				response.setStatus(HttpStatus.UNAUTHORIZED.value());
@@ -182,7 +182,7 @@ public class AuthenticationController extends AbstractController {
 		} else if (ldapEnabled && "ldap".equals(type)) {
 			try {
 				userService.authenticate(authRequest, UserProfile.AuthProvider.LDAP);
-			} catch (AuthenticationException e) {
+			} catch (final AuthenticationException e) {
 				logger.info("LDAP authentication failed.", e);
 				userService.increaseFailedLoginCount(addr);
 				response.setStatus(HttpStatus.UNAUTHORIZED.value());
@@ -263,7 +263,7 @@ public class AuthenticationController extends AbstractController {
 
 	@RequestMapping(value = { "/", "/whoami" }, method = RequestMethod.GET)
 	@ResponseBody
-	public ClientAuthentication whoami(@AuthenticationPrincipal User user) {
+	public ClientAuthentication whoami(@AuthenticationPrincipal final User user) {
 		if (user == null) {
 			throw new UnauthorizedException();
 		}
@@ -285,13 +285,13 @@ public class AuthenticationController extends AbstractController {
 	@RequestMapping(value = { "/services" }, method = RequestMethod.GET)
 	@ResponseBody
 	public List<ServiceDescription> getServices(final HttpServletRequest request) {
-		List<ServiceDescription> services = new ArrayList<>();
+		final List<ServiceDescription> services = new ArrayList<>();
 
 		/* The first parameter is replaced by the backend, the second one by the frondend */
-		String dialogUrl = apiPath + "/auth/dialog?type={0}&successurl='{0}'";
+		final String dialogUrl = apiPath + "/auth/dialog?type={0}&successurl='{0}'";
 
 		if (guestEnabled) {
-			ServiceDescription sdesc = new ServiceDescription(
+			final ServiceDescription sdesc = new ServiceDescription(
 					"guest",
 					"Guest",
 					null,
@@ -302,7 +302,7 @@ public class AuthenticationController extends AbstractController {
 		}
 
 		if (customLoginEnabled && !"".equals(customLoginDialog)) {
-			ServiceDescription sdesc = new ServiceDescription(
+			final ServiceDescription sdesc = new ServiceDescription(
 					"custom",
 					customLoginTitle,
 					customizationPath + "/" + customLoginDialog + "?redirect={0}",
@@ -314,7 +314,7 @@ public class AuthenticationController extends AbstractController {
 		}
 
 		if (dbAuthEnabled && !"".equals(dbAuthDialog)) {
-			ServiceDescription sdesc = new ServiceDescription(
+			final ServiceDescription sdesc = new ServiceDescription(
 					"arsnova",
 					dbAuthTitle,
 					customizationPath + "/" + dbAuthDialog + "?redirect={0}",
@@ -326,7 +326,7 @@ public class AuthenticationController extends AbstractController {
 		}
 
 		if (ldapEnabled && !"".equals(ldapDialog)) {
-			ServiceDescription sdesc = new ServiceDescription(
+			final ServiceDescription sdesc = new ServiceDescription(
 					"ldap",
 					ldapTitle,
 					customizationPath + "/" + ldapDialog + "?redirect={0}",
@@ -338,7 +338,7 @@ public class AuthenticationController extends AbstractController {
 		}
 
 		if (casEnabled) {
-			ServiceDescription sdesc = new ServiceDescription(
+			final ServiceDescription sdesc = new ServiceDescription(
 					"cas",
 					casTitle,
 					MessageFormat.format(dialogUrl, "cas"),
@@ -350,7 +350,7 @@ public class AuthenticationController extends AbstractController {
 		}
 
 		if (oidcEnabled) {
-			ServiceDescription sdesc = new ServiceDescription(
+			final ServiceDescription sdesc = new ServiceDescription(
 					"oidc",
 					oidcTitle,
 					MessageFormat.format(dialogUrl, "oidc"),
@@ -362,7 +362,7 @@ public class AuthenticationController extends AbstractController {
 		}
 
 		if (facebookEnabled) {
-			ServiceDescription sdesc = new ServiceDescription(
+			final ServiceDescription sdesc = new ServiceDescription(
 					"facebook",
 					"Facebook",
 					MessageFormat.format(dialogUrl, "facebook"),
@@ -373,7 +373,7 @@ public class AuthenticationController extends AbstractController {
 		}
 
 		if (googleEnabled) {
-			ServiceDescription sdesc = new ServiceDescription(
+			final ServiceDescription sdesc = new ServiceDescription(
 					"google",
 					"Google",
 					MessageFormat.format(dialogUrl, "google"),
@@ -384,7 +384,7 @@ public class AuthenticationController extends AbstractController {
 		}
 
 		if (twitterEnabled) {
-			ServiceDescription sdesc = new ServiceDescription(
+			final ServiceDescription sdesc = new ServiceDescription(
 					"twitter",
 					"Twitter",
 					MessageFormat.format(dialogUrl, "twitter"),
@@ -398,7 +398,7 @@ public class AuthenticationController extends AbstractController {
 	}
 
 	private Collection<GrantedAuthority> getAuthorities(final boolean admin) {
-		List<GrantedAuthority> authList = new ArrayList<>();
+		final List<GrantedAuthority> authList = new ArrayList<>();
 		authList.add(new SimpleGrantedAuthority("ROLE_USER"));
 		if (admin) {
 			authList.add(new SimpleGrantedAuthority("ROLE_ADMIN"));
diff --git a/src/main/java/de/thm/arsnova/controller/v2/CommentController.java b/src/main/java/de/thm/arsnova/controller/v2/CommentController.java
index 4b0cc2c204895cadbef59f824be538b804470f1e..9ee584c8e160268eba13ad15d4de94d1de73fa5d 100644
--- a/src/main/java/de/thm/arsnova/controller/v2/CommentController.java
+++ b/src/main/java/de/thm/arsnova/controller/v2/CommentController.java
@@ -91,7 +91,7 @@ public class CommentController extends PaginationController {
 	@Deprecated
 	public CommentReadingCount getUnreadCommentCount(
 			@ApiParam(value = "Room-Key from current room", required = true)
-			@RequestParam("sessionkey") final String roomShortId, String user) {
+			@RequestParam("sessionkey") final String roomShortId, final String user) {
 		return commentService.countRead(roomService.getIdByShortId(roomShortId), user);
 	}
 
@@ -132,8 +132,8 @@ public class CommentController extends PaginationController {
 			@ApiParam(value = "the body from the new comment", required = true)
 			@RequestBody
 			final Comment comment) {
-		de.thm.arsnova.model.Comment commentV3 = fromV2Migrator.migrate(comment);
-		Room roomV3 = roomService.getByShortId(roomShortId);
+		final de.thm.arsnova.model.Comment commentV3 = fromV2Migrator.migrate(comment);
+		final Room roomV3 = roomService.getByShortId(roomShortId);
 		commentV3.setRoomId(roomV3.getId());
 		commentService.create(commentV3);
 	}
diff --git a/src/main/java/de/thm/arsnova/controller/v2/ContentController.java b/src/main/java/de/thm/arsnova/controller/v2/ContentController.java
index 5aff031c6ec7c8c6f41f188c9e60e39b2473f463..88eb31b51f90251c1755c9808d75169ec6c431ab 100644
--- a/src/main/java/de/thm/arsnova/controller/v2/ContentController.java
+++ b/src/main/java/de/thm/arsnova/controller/v2/ContentController.java
@@ -111,7 +111,7 @@ public class ContentController extends PaginationController {
 	@RequestMapping(value = "/", method = RequestMethod.POST)
 	@ResponseStatus(HttpStatus.CREATED)
 	public Content postContent(@RequestBody final Content content) {
-		de.thm.arsnova.model.Content contentV3 = fromV2Migrator.migrate(content);
+		final de.thm.arsnova.model.Content contentV3 = fromV2Migrator.migrate(content);
 		final String roomId = roomService.getIdByShortId(content.getSessionKeyword());
 		contentV3.setRoomId(roomId);
 		contentService.create(contentV3);
@@ -126,7 +126,7 @@ public class ContentController extends PaginationController {
 	@RequestMapping(value = "/bulk", method = RequestMethod.POST)
 	@ResponseStatus(HttpStatus.CREATED)
 	public List<Content> bulkPostContents(@RequestBody final List<Content> contents) {
-		List<de.thm.arsnova.model.Content> contentsV3 =
+		final List<de.thm.arsnova.model.Content> contentsV3 =
 				contents.stream().map(c -> contentService.create(fromV2Migrator.migrate(c))).collect(Collectors.toList());
 		return contentsV3.stream().map(toV2Migrator::migrate).collect(Collectors.toList());
 	}
@@ -204,13 +204,13 @@ public class ContentController extends PaginationController {
 			final String roomShortId,
 			@RequestParam(value = "disable", defaultValue = "false", required = false)
 			final Boolean disableVote,
-			@RequestParam(value = "lecturequestionsonly", defaultValue = "false", required = false)
+			@RequestParam(value = "lecturequestionsonly", defaultValue = "false", required = false) final
 			boolean lectureContentsOnly,
-			@RequestParam(value = "preparationquestionsonly", defaultValue = "false", required = false)
+			@RequestParam(value = "preparationquestionsonly", defaultValue = "false", required = false) final
 			boolean preparationContentsOnly) {
-		String roomId = roomService.getIdByShortId(roomShortId);
+		final String roomId = roomService.getIdByShortId(roomShortId);
 		boolean disable = false;
-		Iterable<de.thm.arsnova.model.Content> contents;
+		final Iterable<de.thm.arsnova.model.Content> contents;
 
 		if (disableVote != null) {
 			disable = disableVote;
@@ -236,7 +236,7 @@ public class ContentController extends PaginationController {
 			@RequestParam(defaultValue = "true", required = false) final boolean publish,
 			@RequestBody final Content content
 	) throws IOException {
-		de.thm.arsnova.model.Content contentV3 = fromV2Migrator.migrate(content);
+		final de.thm.arsnova.model.Content contentV3 = fromV2Migrator.migrate(content);
 		boolean p = publish;
 		if (content != null) {
 			p = contentV3.getState().isVisible();
@@ -252,14 +252,14 @@ public class ContentController extends PaginationController {
 			final String roomShortId,
 			@RequestParam(required = false)
 			final Boolean publish,
-			@RequestParam(value = "lecturequestionsonly", defaultValue = "false", required = false)
+			@RequestParam(value = "lecturequestionsonly", defaultValue = "false", required = false) final
 			boolean lectureContentsOnly,
-			@RequestParam(value = "preparationquestionsonly", defaultValue = "false", required = false)
+			@RequestParam(value = "preparationquestionsonly", defaultValue = "false", required = false) final
 			boolean preparationContentsOnly
 	) throws IOException {
-		String roomId = roomService.getIdByShortId(roomShortId);
-		boolean p = publish == null || publish;
-		Iterable<de.thm.arsnova.model.Content> contents;
+		final String roomId = roomService.getIdByShortId(roomShortId);
+		final boolean p = publish == null || publish;
+		final Iterable<de.thm.arsnova.model.Content> contents;
 
 		if (lectureContentsOnly) {
 			contents = contentService.getByRoomIdAndGroup(roomId, "lecture");
@@ -280,7 +280,7 @@ public class ContentController extends PaginationController {
 			@RequestParam(defaultValue = "true", required = false) final Boolean showStatistics,
 			@RequestBody final Content content
 	) throws IOException {
-		de.thm.arsnova.model.Content contentV3 = fromV2Migrator.migrate(content);
+		final de.thm.arsnova.model.Content contentV3 = fromV2Migrator.migrate(content);
 		boolean p = showStatistics;
 		if (content != null) {
 			p = contentV3.getState().isResponsesVisible();
@@ -297,7 +297,7 @@ public class ContentController extends PaginationController {
 			@RequestParam(defaultValue = "true", required = false) final boolean showCorrectAnswer,
 			@RequestBody final Content content
 	) throws IOException {
-		de.thm.arsnova.model.Content contentV3 = fromV2Migrator.migrate(content);
+		final de.thm.arsnova.model.Content contentV3 = fromV2Migrator.migrate(content);
 		boolean p = showCorrectAnswer;
 		if (content != null) {
 			p = contentV3.getState().isSolutionVisible();
@@ -312,13 +312,13 @@ public class ContentController extends PaginationController {
 	@Pagination
 	public List<Content> getContents(
 			@RequestParam(value = "sessionkey") final String roomShortId,
-			@RequestParam(value = "lecturequestionsonly", defaultValue = "false") boolean lectureContentsOnly,
-			@RequestParam(value = "flashcardsonly", defaultValue = "false") boolean flashcardsOnly,
-			@RequestParam(value = "preparationquestionsonly", defaultValue = "false") boolean preparationContentsOnly,
-			@RequestParam(value = "requestImageData", defaultValue = "false") boolean requestImageData,
+			@RequestParam(value = "lecturequestionsonly", defaultValue = "false") final boolean lectureContentsOnly,
+			@RequestParam(value = "flashcardsonly", defaultValue = "false") final boolean flashcardsOnly,
+			@RequestParam(value = "preparationquestionsonly", defaultValue = "false") final boolean preparationContentsOnly,
+			@RequestParam(value = "requestImageData", defaultValue = "false") final boolean requestImageData,
 			final HttpServletResponse response) {
-		String roomId = roomService.getIdByShortId(roomShortId);
-		Iterable<de.thm.arsnova.model.Content> contents;
+		final String roomId = roomService.getIdByShortId(roomShortId);
+		final Iterable<de.thm.arsnova.model.Content> contents;
 		if (lectureContentsOnly) {
 			contents = contentService.getByRoomIdAndGroup(roomId, "lecture");
 		} else if (flashcardsOnly) {
@@ -346,7 +346,7 @@ public class ContentController extends PaginationController {
 			@RequestParam(value = "flashcardsonly", defaultValue = "false") boolean flashcardsOnly,
 			@RequestParam(value = "preparationquestionsonly", defaultValue = "false") boolean preparationContentsOnly,
 			final HttpServletResponse response) {
-		String roomId = roomService.getIdByShortId(roomShortId);
+		final String roomId = roomService.getIdByShortId(roomShortId);
 		/* FIXME: Content variant is ignored for now */
 		lectureContentsOnly = preparationContentsOnly = flashcardsOnly = false;
 		if (lectureContentsOnly) {
@@ -367,11 +367,11 @@ public class ContentController extends PaginationController {
 	@RequestMapping(value = "/count", method = RequestMethod.GET, produces = MediaType.TEXT_PLAIN_VALUE)
 	public String getContentCount(
 			@RequestParam(value = "sessionkey") final String roomShortId,
-			@RequestParam(value = "lecturequestionsonly", defaultValue = "false") boolean lectureContentsOnly,
-			@RequestParam(value = "flashcardsonly", defaultValue = "false") boolean flashcardsOnly,
-			@RequestParam(value = "preparationquestionsonly", defaultValue = "false") boolean preparationContentsOnly) {
-		String roomId = roomService.getIdByShortId(roomShortId);
-		int count;
+			@RequestParam(value = "lecturequestionsonly", defaultValue = "false") final boolean lectureContentsOnly,
+			@RequestParam(value = "flashcardsonly", defaultValue = "false") final boolean flashcardsOnly,
+			@RequestParam(value = "preparationquestionsonly", defaultValue = "false") final boolean preparationContentsOnly) {
+		final String roomId = roomService.getIdByShortId(roomShortId);
+		final int count;
 		if (lectureContentsOnly) {
 			count = contentService.countByRoomIdAndGroup(roomId, "lecture");
 		} else if (preparationContentsOnly) {
@@ -402,8 +402,8 @@ public class ContentController extends PaginationController {
 			@RequestParam(value = "sessionkey") final String roomShortId,
 			@RequestParam(value = "lecturequestionsonly", defaultValue = "false") boolean lectureContentsOnly,
 			@RequestParam(value = "preparationquestionsonly", defaultValue = "false") boolean preparationContentsOnly) {
-		String roomId = roomService.getIdByShortId(roomShortId);
-		List<String> answers;
+		final String roomId = roomService.getIdByShortId(roomShortId);
+		final List<String> answers;
 		/* FIXME: Content variant is ignored for now */
 		lectureContentsOnly = preparationContentsOnly = false;
 		if (lectureContentsOnly) {
@@ -482,7 +482,7 @@ public class ContentController extends PaginationController {
 			return toV2Migrator.migrate(answerService.getAllStatistics(contentId),
 					(ChoiceQuestionContent) content, content.getState().getRound());
 		} else {
-			List<de.thm.arsnova.model.TextAnswer> answers;
+			final List<de.thm.arsnova.model.TextAnswer> answers;
 			if (allAnswers) {
 				answers = answerService.getAllTextAnswers(contentId, -1, -1);
 			} else if (null == piRound) {
@@ -578,7 +578,7 @@ public class ContentController extends PaginationController {
 			@RequestParam(value = "lecturequestionsonly", defaultValue = "false") boolean lectureContentsOnly,
 			@RequestParam(value = "preparationquestionsonly", defaultValue = "false") boolean preparationContentsOnly,
 			final HttpServletResponse response) {
-		String roomId = roomService.getIdByShortId(roomShortId);
+		final String roomId = roomService.getIdByShortId(roomShortId);
 		/* FIXME: Content variant is ignored for now */
 		lectureContentsOnly = preparationContentsOnly = false;
 		if (lectureContentsOnly) {
@@ -674,7 +674,7 @@ public class ContentController extends PaginationController {
 			@RequestParam(value = "sessionkey") final String roomShortId,
 			@RequestParam(value = "lecturequestionsonly", defaultValue = "false") boolean lectureContentsOnly,
 			@RequestParam(value = "preparationquestionsonly", defaultValue = "false") boolean preparationContentsOnly) {
-		String roomId = roomService.getIdByShortId(roomShortId);
+		final String roomId = roomService.getIdByShortId(roomShortId);
 		int count = 0;
 		/* FIXME: Content variant is ignored for now */
 		lectureContentsOnly = preparationContentsOnly = false;
diff --git a/src/main/java/de/thm/arsnova/controller/v2/FeedbackController.java b/src/main/java/de/thm/arsnova/controller/v2/FeedbackController.java
index 3aa4a83ff60a398310f33522b714d57ca3a17974..982ceae9020803af8c9b5fae81237fbe238c6793 100644
--- a/src/main/java/de/thm/arsnova/controller/v2/FeedbackController.java
+++ b/src/main/java/de/thm/arsnova/controller/v2/FeedbackController.java
@@ -67,8 +67,8 @@ public class FeedbackController extends AbstractController {
 	@Deprecated
 	@RequestMapping(value = "/myfeedback", method = RequestMethod.GET, produces = MediaType.TEXT_PLAIN_VALUE)
 	public String getMyFeedback(@PathVariable final String shortId) {
-		String roomId = roomService.getIdByShortId(shortId);
-		Integer value = feedbackService.getByRoomIdAndUserId(roomId, userService.getCurrentUser().getId());
+		final String roomId = roomService.getIdByShortId(shortId);
+		final Integer value = feedbackService.getByRoomIdAndUserId(roomId, userService.getCurrentUser().getId());
 		if (value != null && value >= Feedback.MIN_FEEDBACK_TYPE && value <= Feedback.MAX_FEEDBACK_TYPE) {
 			return value.toString();
 		}
@@ -103,10 +103,10 @@ public class FeedbackController extends AbstractController {
 	public Feedback postFeedback(
 			@PathVariable final String shortId,
 			@RequestBody final int value) {
-		String roomId = roomService.getIdByShortId(shortId);
-		User user = userService.getCurrentUser();
+		final String roomId = roomService.getIdByShortId(shortId);
+		final User user = userService.getCurrentUser();
 		feedbackService.save(roomId, value, user.getId());
-		Feedback feedback = feedbackService.getByRoomId(roomId);
+		final Feedback feedback = feedbackService.getByRoomId(roomId);
 
 		return feedback;
 	}
diff --git a/src/main/java/de/thm/arsnova/controller/v2/MotdController.java b/src/main/java/de/thm/arsnova/controller/v2/MotdController.java
index 2d986e02b5d5eba176968c6fdea122eb22db638e..9667802cfbcb41ac0df61a627e67cd0759f5b1b3 100644
--- a/src/main/java/de/thm/arsnova/controller/v2/MotdController.java
+++ b/src/main/java/de/thm/arsnova/controller/v2/MotdController.java
@@ -92,8 +92,8 @@ public class MotdController extends AbstractController {
 			@ApiParam(value = "sessionkey", required = false)
 			@RequestParam(value = "sessionkey", required = false)
 			final String roomShortId) {
-		List<de.thm.arsnova.model.Motd> motds;
-		Date date = new Date(System.currentTimeMillis());
+		final List<de.thm.arsnova.model.Motd> motds;
+		final Date date = new Date(System.currentTimeMillis());
 		if (!clientdate.isEmpty()) {
 			date.setTime(Long.parseLong(clientdate));
 		}
@@ -124,8 +124,8 @@ public class MotdController extends AbstractController {
 	public Motd postNewMotd(
 			@ApiParam(value = "current motd", required = true) @RequestBody final Motd motd,
 			final HttpServletResponse response) {
-		de.thm.arsnova.model.Motd motdV3 = fromV2Migrator.migrate(motd);
-		String roomId = roomService.getIdByShortId(motd.getSessionkey());
+		final de.thm.arsnova.model.Motd motdV3 = fromV2Migrator.migrate(motd);
+		final String roomId = roomService.getIdByShortId(motd.getSessionkey());
 		if (de.thm.arsnova.model.Motd.Audience.ROOM == motdV3.getAudience() && roomId != null) {
 			motdService.save(roomId, motdV3);
 		} else {
@@ -140,8 +140,8 @@ public class MotdController extends AbstractController {
 	public Motd updateMotd(
 				@ApiParam(value = "motdkey from current motd", required = true) @PathVariable final String motdId,
 				@ApiParam(value = "current motd", required = true) @RequestBody final Motd motd) {
-		de.thm.arsnova.model.Motd motdV3 = fromV2Migrator.migrate(motd);
-		String roomId = roomService.getIdByShortId(motd.getSessionkey());
+		final de.thm.arsnova.model.Motd motdV3 = fromV2Migrator.migrate(motd);
+		final String roomId = roomService.getIdByShortId(motd.getSessionkey());
 		if (motdV3.getAudience() == de.thm.arsnova.model.Motd.Audience.ROOM && roomId != null) {
 			motdService.update(roomId, motdV3);
 		} else {
@@ -157,26 +157,26 @@ public class MotdController extends AbstractController {
 			@ApiParam(value = "Motd-key from the message that shall be deleted", required = true)
 			@PathVariable
 			final String motdId) {
-		de.thm.arsnova.model.Motd motd = motdService.get(motdId);
+		final de.thm.arsnova.model.Motd motd = motdService.get(motdId);
 		motdService.delete(motd);
 	}
 
 	@RequestMapping(value = "/userlist", method =  RequestMethod.GET)
-	public MotdList getAcknowledgedIds(@AuthenticationPrincipal User user, @RequestParam final String username) {
+	public MotdList getAcknowledgedIds(@AuthenticationPrincipal final User user, @RequestParam final String username) {
 		if (user == null || !user.getUsername().equals(username)) {
 			throw new ForbiddenException();
 		}
-		UserProfile profile = userService.get(user.getId());
+		final UserProfile profile = userService.get(user.getId());
 
 		return toV2Migrator.migrateMotdList(profile);
 	}
 
 	@RequestMapping(value = "/userlist", method =  RequestMethod.PUT)
-	public void putAcknowledgedIds(@AuthenticationPrincipal User user, @RequestBody final MotdList motdList) {
+	public void putAcknowledgedIds(@AuthenticationPrincipal final User user, @RequestBody final MotdList motdList) {
 		if (user == null || !user.getUsername().equals(motdList.getUsername())) {
 			throw new ForbiddenException();
 		}
-		UserProfile profile = userService.get(user.getId());
+		final UserProfile profile = userService.get(user.getId());
 		profile.setAcknowledgedMotds(fromV2Migrator.migrate(motdList));
 		userService.update(profile);
 	}
diff --git a/src/main/java/de/thm/arsnova/controller/v2/RoomController.java b/src/main/java/de/thm/arsnova/controller/v2/RoomController.java
index b84c0bfa848176330a187c8fd5cfb1533e17c53d..aa674f9df311796ed6272845476533d25c0181ec 100644
--- a/src/main/java/de/thm/arsnova/controller/v2/RoomController.java
+++ b/src/main/java/de/thm/arsnova/controller/v2/RoomController.java
@@ -103,7 +103,7 @@ public class RoomController extends PaginationController {
 			@ApiParam(value = "Room-Key from current Room", required = true)
 			@PathVariable
 			final String shortId) {
-		de.thm.arsnova.model.Room room = roomService.getByShortId(shortId);
+		final de.thm.arsnova.model.Room room = roomService.getByShortId(shortId);
 		roomService.delete(room);
 	}
 
@@ -188,7 +188,7 @@ public class RoomController extends PaginationController {
 			@RequestParam(value = "username", defaultValue = "")
 			final String username,
 			final HttpServletResponse response) {
-		List<de.thm.arsnova.model.Room> rooms;
+		final List<de.thm.arsnova.model.Room> rooms;
 
 		if (!"".equals(username)) {
 			final String userId = userService.getByUsername(username).getId();
@@ -252,7 +252,7 @@ public class RoomController extends PaginationController {
 			@RequestParam(value = "sortby", defaultValue = "name")
 			final String sortby,
 			final HttpServletResponse response) {
-		List<de.thm.arsnova.model.Room> rooms;
+		final List<de.thm.arsnova.model.Room> rooms;
 		if (!visitedOnly) {
 			rooms = roomService.getMyRoomsInfo(offset, limit);
 		} else {
@@ -281,7 +281,7 @@ public class RoomController extends PaginationController {
 	@RequestMapping(value = "/publicpool", method = RequestMethod.GET, params = "statusonly=true")
 	public List<RoomInfo> getMyPublicPoolRooms(
 			final HttpServletResponse response) {
-		List<de.thm.arsnova.model.Room> rooms = roomService.getMyPublicPoolRoomsInfo();
+		final List<de.thm.arsnova.model.Room> rooms = roomService.getMyPublicPoolRoomsInfo();
 
 		if (rooms == null || rooms.isEmpty()) {
 			response.setStatus(HttpServletResponse.SC_NO_CONTENT);
@@ -299,7 +299,7 @@ public class RoomController extends PaginationController {
 	@RequestMapping(value = "/publicpool", method = RequestMethod.GET)
 	public List<Room> getPublicPoolRooms(
 			final HttpServletResponse response) {
-		List<de.thm.arsnova.model.Room> rooms = roomService.getPublicPoolRoomsInfo();
+		final List<de.thm.arsnova.model.Room> rooms = roomService.getPublicPoolRoomsInfo();
 
 		if (rooms == null || rooms.isEmpty()) {
 			response.setStatus(HttpServletResponse.SC_NO_CONTENT);
@@ -331,10 +331,10 @@ public class RoomController extends PaginationController {
 			@RequestParam(value = "withFeedbackQuestions", defaultValue = "false")
 			final Boolean withFeedbackQuestions,
 			final HttpServletResponse response) throws IOException {
-		List<ImportExportContainer> rooms = new ArrayList<>();
+		final List<ImportExportContainer> rooms = new ArrayList<>();
 		ImportExportContainer temp;
-		for (String shortId : shortIds) {
-			String id = roomService.getIdByShortId(shortId);
+		for (final String shortId : shortIds) {
+			final String id = roomService.getIdByShortId(shortId);
 			roomService.setActive(id, false);
 			temp = roomService.exportRoom(id, withAnswerStatistics, withFeedbackQuestions);
 			if (temp != null) {
@@ -355,9 +355,9 @@ public class RoomController extends PaginationController {
 			@RequestBody
 			final ImportExportContainer.PublicPool publicPool)
 			throws IOException {
-		String id = roomService.getIdByShortId(shortId);
+		final String id = roomService.getIdByShortId(shortId);
 		roomService.setActive(id, false);
-		de.thm.arsnova.model.Room roomInfo = roomService.copyRoomToPublicPool(shortId, publicPool);
+		final de.thm.arsnova.model.Room roomInfo = roomService.copyRoomToPublicPool(shortId, publicPool);
 		roomService.setActive(id, true);
 
 		return toV2Migrator.migrate(roomInfo);
@@ -422,7 +422,7 @@ public class RoomController extends PaginationController {
 	public RoomFeature getRoomFeatures(
 			@ApiParam(value = "Room-Key from current Room", required = true) @PathVariable final String shortId,
 			final HttpServletResponse response) {
-		de.thm.arsnova.model.Room room = roomService.getByShortId(shortId);
+		final de.thm.arsnova.model.Room room = roomService.getByShortId(shortId);
 		return toV2Migrator.migrate(room.getSettings());
 	}
 
@@ -433,7 +433,7 @@ public class RoomController extends PaginationController {
 			@ApiParam(value = "Room-Key from current Room", required = true) @PathVariable final String shortId,
 			@ApiParam(value = "Room feature", required = true) @RequestBody final RoomFeature features,
 			final HttpServletResponse response) {
-		de.thm.arsnova.model.Room room = roomService.getByShortId(shortId);
+		final de.thm.arsnova.model.Room room = roomService.getByShortId(shortId);
 		room.setSettings(fromV2Migrator.migrate(features));
 		roomService.update(room);
 
diff --git a/src/main/java/de/thm/arsnova/controller/v2/SocketController.java b/src/main/java/de/thm/arsnova/controller/v2/SocketController.java
index a84d514080460ab5dac4833f9e358f3e1f330f3f..d3ed9a73702899b77586a0f7f7aa1277ead2e95c 100644
--- a/src/main/java/de/thm/arsnova/controller/v2/SocketController.java
+++ b/src/main/java/de/thm/arsnova/controller/v2/SocketController.java
@@ -69,13 +69,13 @@ public class SocketController extends AbstractController {
 	public void authorize(
 			@ApiParam(value = "sessionMap", required = true) @RequestBody final Map<String, String> sessionMap,
 			@ApiParam(value = "response", required = true) final HttpServletResponse response) {
-		String socketid = sessionMap.get("session");
+		final String socketid = sessionMap.get("session");
 		if (null == socketid) {
 			logger.debug("Expected property 'session' missing.");
 			response.setStatus(HttpStatus.BAD_REQUEST.value());
 			return;
 		}
-		User user = userService.getCurrentUser();
+		final User user = userService.getCurrentUser();
 		if (null == user) {
 			logger.debug("Client {} requested to assign Websocket session but has not authenticated.", socketid);
 			response.setStatus(HttpStatus.FORBIDDEN.value());
diff --git a/src/main/java/de/thm/arsnova/controller/v2/UserController.java b/src/main/java/de/thm/arsnova/controller/v2/UserController.java
index 5bd9c30aa2faed676ccb57998221139dff151a5d..0604ea5a98d47a8c07d7e9edc5377bc86fc7aa28 100644
--- a/src/main/java/de/thm/arsnova/controller/v2/UserController.java
+++ b/src/main/java/de/thm/arsnova/controller/v2/UserController.java
@@ -62,7 +62,7 @@ public class UserController extends AbstractController {
 			@PathVariable final String username,
 			@RequestParam final String key, final HttpServletRequest request,
 			final HttpServletResponse response) {
-		UserProfile userProfile = userService.getByUsername(username);
+		final UserProfile userProfile = userService.getByUsername(username);
 		if (null != userProfile && key.equals(userProfile.getAccount().getActivationKey())) {
 			userProfile.getAccount().setActivationKey(null);
 			userService.update(userProfile);
@@ -90,7 +90,7 @@ public class UserController extends AbstractController {
 			@RequestParam(required = false) final String password,
 			final HttpServletRequest request,
 			final HttpServletResponse response) {
-		UserProfile userProfile = userService.getByUsername(username);
+		final UserProfile userProfile = userService.getByUsername(username);
 		if (null == userProfile) {
 			response.setStatus(HttpServletResponse.SC_NOT_FOUND);
 
diff --git a/src/main/java/de/thm/arsnova/event/ArsnovaEvent.java b/src/main/java/de/thm/arsnova/event/ArsnovaEvent.java
index 66d51c083d0c7ef797c45cb77b8ba48c5a37814b..d370b83c2aff94d6c2b8c3941869b50460e5e812 100644
--- a/src/main/java/de/thm/arsnova/event/ArsnovaEvent.java
+++ b/src/main/java/de/thm/arsnova/event/ArsnovaEvent.java
@@ -27,7 +27,7 @@ public abstract class ArsnovaEvent extends ApplicationEvent {
 
 	private static final long serialVersionUID = 1L;
 
-	public ArsnovaEvent(Object source) {
+	public ArsnovaEvent(final Object source) {
 		super(source);
 	}
 
diff --git a/src/main/java/de/thm/arsnova/event/ChangeScoreEvent.java b/src/main/java/de/thm/arsnova/event/ChangeScoreEvent.java
index 4dc188ddd51a1dbc607fe21892c3f30a70d6d009..b22bea8bfa7ba56e7842b3d013f5f11a36c59d7e 100644
--- a/src/main/java/de/thm/arsnova/event/ChangeScoreEvent.java
+++ b/src/main/java/de/thm/arsnova/event/ChangeScoreEvent.java
@@ -25,7 +25,7 @@ public class ChangeScoreEvent extends RoomEvent {
 
 	private static final long serialVersionUID = 1L;
 
-	public ChangeScoreEvent(Object source, String roomId) {
+	public ChangeScoreEvent(final Object source, final String roomId) {
 		super(source, roomId);
 	}
 
diff --git a/src/main/java/de/thm/arsnova/event/DeleteFeedbackForRoomsEvent.java b/src/main/java/de/thm/arsnova/event/DeleteFeedbackForRoomsEvent.java
index 45729339fbe56d5bb20dc1a2f5161ff0c8707444..7d9d6ea020341329d3c5ece179fca898c855c74e 100644
--- a/src/main/java/de/thm/arsnova/event/DeleteFeedbackForRoomsEvent.java
+++ b/src/main/java/de/thm/arsnova/event/DeleteFeedbackForRoomsEvent.java
@@ -33,7 +33,7 @@ public class DeleteFeedbackForRoomsEvent extends ArsnovaEvent {
 
 	private final String userId;
 
-	public DeleteFeedbackForRoomsEvent(Object source, Set<Room> rooms, String userId) {
+	public DeleteFeedbackForRoomsEvent(final Object source, final Set<Room> rooms, final String userId) {
 		super(source);
 		this.sessions = rooms;
 		this.userId = userId;
diff --git a/src/main/java/de/thm/arsnova/event/FlipFlashcardsEvent.java b/src/main/java/de/thm/arsnova/event/FlipFlashcardsEvent.java
index 73abd1b11bf24ca3f3973055be0534dd370370fb..93ec84c35ad5b688d799d60dd79b634d7c22bdb0 100644
--- a/src/main/java/de/thm/arsnova/event/FlipFlashcardsEvent.java
+++ b/src/main/java/de/thm/arsnova/event/FlipFlashcardsEvent.java
@@ -25,7 +25,7 @@ public class FlipFlashcardsEvent extends RoomEvent {
 
 	private static final long serialVersionUID = 1L;
 
-	public FlipFlashcardsEvent(Object source, String roomId) {
+	public FlipFlashcardsEvent(final Object source, final String roomId) {
 		super(source, roomId);
 	}
 }
diff --git a/src/main/java/de/thm/arsnova/event/NewFeedbackEvent.java b/src/main/java/de/thm/arsnova/event/NewFeedbackEvent.java
index 07e54276ad7870c918895feb222c11ae76ba8a28..7550f6508acc921e3c0338fcd3a80a7acee320a6 100644
--- a/src/main/java/de/thm/arsnova/event/NewFeedbackEvent.java
+++ b/src/main/java/de/thm/arsnova/event/NewFeedbackEvent.java
@@ -25,7 +25,7 @@ public class NewFeedbackEvent extends RoomEvent {
 
 	private static final long serialVersionUID = 1L;
 
-	public NewFeedbackEvent(Object source, String roomId) {
+	public NewFeedbackEvent(final Object source, final String roomId) {
 		super(source, roomId);
 	}
 
diff --git a/src/main/java/de/thm/arsnova/event/RoomEvent.java b/src/main/java/de/thm/arsnova/event/RoomEvent.java
index 93352387bd91030c53007ec0402b6dd05f0feecd..c260a14c83de3955988824bc7ec79d1532f3580a 100644
--- a/src/main/java/de/thm/arsnova/event/RoomEvent.java
+++ b/src/main/java/de/thm/arsnova/event/RoomEvent.java
@@ -27,7 +27,7 @@ public abstract class RoomEvent extends ArsnovaEvent {
 
 	private final String roomId;
 
-	public RoomEvent(Object source, String roomId) {
+	public RoomEvent(final Object source, final String roomId) {
 		super(source);
 		this.roomId = roomId;
 	}
diff --git a/src/main/java/de/thm/arsnova/event/StateEventDispatcher.java b/src/main/java/de/thm/arsnova/event/StateEventDispatcher.java
index 243a32e598a1a817be6ef763a11e5b3243e0a0f4..6b2a34c96b84ae7626e955b1af4df9021ea9cc60 100644
--- a/src/main/java/de/thm/arsnova/event/StateEventDispatcher.java
+++ b/src/main/java/de/thm/arsnova/event/StateEventDispatcher.java
@@ -58,7 +58,7 @@ public class StateEventDispatcher implements ApplicationEventPublisherAware {
 	public void dispatchContentStateEvent(final AfterFullUpdateEvent<Content> event) {
 		final Content newContent = event.getEntity();
 		final Content oldContent = event.getOldEntity();
-		Function<Content, Content.State> f = Content::getState;
+		final Function<Content, Content.State> f = Content::getState;
 		f.apply(newContent);
 		publishEventIfPropertyChanged(newContent, oldContent, Content::getState, "state");
 	}
@@ -71,8 +71,8 @@ public class StateEventDispatcher implements ApplicationEventPublisherAware {
 
 	private <E extends Entity, T extends Object> void publishEventIfPropertyChanged(
 			final E newEntity, final E oldEntity, final Function<E, T> propertyGetter, final String stateName) {
-		T newValue = propertyGetter.apply(newEntity);
-		T oldValue = propertyGetter.apply(oldEntity);
+		final T newValue = propertyGetter.apply(newEntity);
+		final T oldValue = propertyGetter.apply(oldEntity);
 		if (!newValue.equals(oldValue)) {
 			eventPublisher.publishEvent(new StateChangeEvent<>(this, newEntity, stateName, newValue, oldValue));
 		}
diff --git a/src/main/java/de/thm/arsnova/model/Answer.java b/src/main/java/de/thm/arsnova/model/Answer.java
index 6c78689409891d8c123876ac87e373f3edf1e8d6..551fb7484d2d62a4a6e6ffb7e1178f91a6791b24 100644
--- a/src/main/java/de/thm/arsnova/model/Answer.java
+++ b/src/main/java/de/thm/arsnova/model/Answer.java
@@ -59,7 +59,7 @@ public class Answer extends Entity {
 	}
 
 	@JsonView(View.Persistence.class)
-	public void setRoomId(String roomId) {
+	public void setRoomId(final String roomId) {
 		this.roomId = roomId;
 	}
 
@@ -98,7 +98,7 @@ public class Answer extends Entity {
 	}
 
 	@JsonView({View.Persistence.class, View.Public.class})
-	public void setExtensions(Map<String, Map<String, ?>> extensions) {
+	public void setExtensions(final Map<String, Map<String, ?>> extensions) {
 		this.extensions = extensions;
 	}
 
diff --git a/src/main/java/de/thm/arsnova/model/AnswerStatistics.java b/src/main/java/de/thm/arsnova/model/AnswerStatistics.java
index a0a9f049cc6e75b26b16aa4256de13ab701918f8..7fb3d10e5b0469f91d7523d13d262fed7cdb2578 100644
--- a/src/main/java/de/thm/arsnova/model/AnswerStatistics.java
+++ b/src/main/java/de/thm/arsnova/model/AnswerStatistics.java
@@ -65,7 +65,7 @@ public class AnswerStatistics {
 			return round;
 		}
 
-		public void setRound(int round) {
+		public void setRound(final int round) {
 			this.round = round;
 		}
 
@@ -83,7 +83,7 @@ public class AnswerStatistics {
 			return combinatedCounts;
 		}
 
-		public void setCombinatedCounts(Collection<Combination> combinatedCounts) {
+		public void setCombinatedCounts(final Collection<Combination> combinatedCounts) {
 			this.combinatedCounts = combinatedCounts;
 		}
 
@@ -92,7 +92,7 @@ public class AnswerStatistics {
 			return abstentionCount;
 		}
 
-		public void setAbstentionCount(int abstentionCount) {
+		public void setAbstentionCount(final int abstentionCount) {
 			this.abstentionCount = abstentionCount;
 		}
 
@@ -178,7 +178,7 @@ public class AnswerStatistics {
 		return roundStatistics;
 	}
 
-	public void setRoundStatistics(List<RoundStatistics> roundStatistics) {
+	public void setRoundStatistics(final List<RoundStatistics> roundStatistics) {
 		this.roundStatistics = roundStatistics;
 	}
 
@@ -187,7 +187,7 @@ public class AnswerStatistics {
 		return roundTransitions;
 	}
 
-	public void setRoundTransitions(List<RoundTransition> roundTransitions) {
+	public void setRoundTransitions(final List<RoundTransition> roundTransitions) {
 		this.roundTransitions = roundTransitions;
 	}
 
diff --git a/src/main/java/de/thm/arsnova/model/Attachment.java b/src/main/java/de/thm/arsnova/model/Attachment.java
index 3941c93e7ef1d534de5f32c758a03bf2eb3c76ab..6bb0af0040312eebc6b25d6844d3e7396dbcf580 100644
--- a/src/main/java/de/thm/arsnova/model/Attachment.java
+++ b/src/main/java/de/thm/arsnova/model/Attachment.java
@@ -60,7 +60,7 @@ public class Attachment extends Entity {
 	}
 
 	@JsonView(View.Persistence.class)
-	public void setMediaType(String mediaType) {
+	public void setMediaType(final String mediaType) {
 		this.mediaType = mediaType;
 	}
 
@@ -70,7 +70,7 @@ public class Attachment extends Entity {
 	}
 
 	@JsonView(View.Persistence.class)
-	public void setSize(long size) {
+	public void setSize(final long size) {
 		this.size = size;
 	}
 
@@ -80,7 +80,7 @@ public class Attachment extends Entity {
 	}
 
 	@JsonView({View.Persistence.class, View.Public.class})
-	public void setOriginalSourceUrl(String originalSourceUrl) {
+	public void setOriginalSourceUrl(final String originalSourceUrl) {
 		this.originalSourceUrl = originalSourceUrl;
 	}
 
@@ -90,7 +90,7 @@ public class Attachment extends Entity {
 	}
 
 	@JsonView(View.Persistence.class)
-	public void setStorageLocation(String storageLocation) {
+	public void setStorageLocation(final String storageLocation) {
 		this.storageLocation = storageLocation;
 	}
 
diff --git a/src/main/java/de/thm/arsnova/model/ChoiceQuestionContent.java b/src/main/java/de/thm/arsnova/model/ChoiceQuestionContent.java
index 5c92d6528a77b8323fa1b7225933fd6d00cf5d89..39fd66f894d27c0aefb0c9bebf70c3177941fbe1 100644
--- a/src/main/java/de/thm/arsnova/model/ChoiceQuestionContent.java
+++ b/src/main/java/de/thm/arsnova/model/ChoiceQuestionContent.java
@@ -37,7 +37,7 @@ public class ChoiceQuestionContent extends Content {
 		}
 
 		@JsonView({View.Persistence.class, View.Public.class})
-		public void setLabel(String label) {
+		public void setLabel(final String label) {
 			this.label = label;
 		}
 
@@ -47,7 +47,7 @@ public class ChoiceQuestionContent extends Content {
 		}
 
 		@JsonView({View.Persistence.class, View.Public.class})
-		public void setPoints(int points) {
+		public void setPoints(final int points) {
 			this.points = points;
 		}
 
diff --git a/src/main/java/de/thm/arsnova/model/Comment.java b/src/main/java/de/thm/arsnova/model/Comment.java
index b5c66bc14e83b6cca486f308d0926b5a116e6167..97160635e933275953617faa337b315ac320b5e2 100644
--- a/src/main/java/de/thm/arsnova/model/Comment.java
+++ b/src/main/java/de/thm/arsnova/model/Comment.java
@@ -101,7 +101,7 @@ public class Comment extends Entity {
 	}
 
 	@JsonView({View.Persistence.class, View.Public.class})
-	public void setExtensions(Map<String, Map<String, ?>> extensions) {
+	public void setExtensions(final Map<String, Map<String, ?>> extensions) {
 		this.extensions = extensions;
 	}
 
diff --git a/src/main/java/de/thm/arsnova/model/Content.java b/src/main/java/de/thm/arsnova/model/Content.java
index e01aa2bdf2fd864fcf0dfc0bc9b1398998d34434..f708e6f9fb7453e56a057af3fa8440cb2d90a6f7 100644
--- a/src/main/java/de/thm/arsnova/model/Content.java
+++ b/src/main/java/de/thm/arsnova/model/Content.java
@@ -72,7 +72,7 @@ public class Content extends Entity {
 		}
 
 		@JsonView({View.Persistence.class, View.Public.class})
-		public void setRoundEndTimestamp(Date roundEndTimestamp) {
+		public void setRoundEndTimestamp(final Date roundEndTimestamp) {
 			this.roundEndTimestamp = roundEndTimestamp;
 		}
 
@@ -238,7 +238,7 @@ public class Content extends Entity {
 	}
 
 	@JsonView(View.Persistence.class)
-	public void setTimestamp(Date timestamp) {
+	public void setTimestamp(final Date timestamp) {
 		this.timestamp = timestamp;
 	}
 
@@ -248,7 +248,7 @@ public class Content extends Entity {
 	}
 
 	@JsonView({View.Persistence.class, View.Public.class})
-	public void setExtensions(Map<String, Map<String, ?>> extensions) {
+	public void setExtensions(final Map<String, Map<String, ?>> extensions) {
 		this.extensions = extensions;
 	}
 
diff --git a/src/main/java/de/thm/arsnova/model/Entity.java b/src/main/java/de/thm/arsnova/model/Entity.java
index 4d653ea90af874a0598f9309e70cb697c8cebb94..09df82537fa273b1e7fe10066d191175f55c00ce 100644
--- a/src/main/java/de/thm/arsnova/model/Entity.java
+++ b/src/main/java/de/thm/arsnova/model/Entity.java
@@ -108,7 +108,7 @@ public abstract class Entity {
 		if (additionalFields == null) {
 			return result;
 		}
-		for (Object element : additionalFields) {
+		for (final Object element : additionalFields) {
 			result = 31 * result + (element == null ? 0 : element.hashCode());
 		}
 
@@ -116,7 +116,7 @@ public abstract class Entity {
 	}
 
 	@Override
-	public boolean equals(Object o) {
+	public boolean equals(final Object o) {
 		if (this == o) {
 			return true;
 		}
@@ -143,7 +143,7 @@ public abstract class Entity {
 	 * {@link org.springframework.core.style.ToStringCreator#append} on the <tt>ToStringCreator</tt>.
 	 */
 	protected ToStringCreator buildToString() {
-		ToStringCreator toStringCreator = new ToStringCreator(this);
+		final ToStringCreator toStringCreator = new ToStringCreator(this);
 		toStringCreator
 				.append("id", id)
 				.append("revision", rev)
diff --git a/src/main/java/de/thm/arsnova/model/Feedback.java b/src/main/java/de/thm/arsnova/model/Feedback.java
index c645217962cfc5a18607ff7f857b326d90b08f79..478a0b52f0e7f134f46e97125063aac3611596c1 100644
--- a/src/main/java/de/thm/arsnova/model/Feedback.java
+++ b/src/main/java/de/thm/arsnova/model/Feedback.java
@@ -78,7 +78,7 @@ public class Feedback {
 		if (!(obj instanceof Feedback)) {
 			return false;
 		}
-		Feedback other = (Feedback) obj;
+		final Feedback other = (Feedback) obj;
 
 		if (this.values.size() != other.values.size()) {
 			return false;
@@ -95,7 +95,7 @@ public class Feedback {
 	public int hashCode() {
 		// See http://stackoverflow.com/a/113600
 		int result = 42;
-		for (Integer v : values) {
+		for (final Integer v : values) {
 			result = 37 * result + v;
 		}
 		return result;
diff --git a/src/main/java/de/thm/arsnova/model/LogEntry.java b/src/main/java/de/thm/arsnova/model/LogEntry.java
index 4e1eaa86ee92e6540630bd3a4f48ee49f48e79b7..5f6c48c330a7e24abd196e184548905154591097 100644
--- a/src/main/java/de/thm/arsnova/model/LogEntry.java
+++ b/src/main/java/de/thm/arsnova/model/LogEntry.java
@@ -44,7 +44,8 @@ public class LogEntry extends Entity {
 	private int level;
 	private Map<String, Object> payload;
 
-	public LogEntry(@JsonProperty String event, @JsonProperty int level, @JsonProperty Map<String, Object> payload) {
+	public LogEntry(@JsonProperty final String event, @JsonProperty final int level,
+			@JsonProperty final Map<String, Object> payload) {
 		this.event = event;
 		this.level = level;
 		this.payload = payload;
diff --git a/src/main/java/de/thm/arsnova/model/MigrationState.java b/src/main/java/de/thm/arsnova/model/MigrationState.java
index 5a96ead2061bc133a420d2c2c7bd7dc586420742..23d4dc28c00efaedc8d6a85be4425331253954e9 100644
--- a/src/main/java/de/thm/arsnova/model/MigrationState.java
+++ b/src/main/java/de/thm/arsnova/model/MigrationState.java
@@ -35,7 +35,7 @@ public class MigrationState extends Entity {
 
 		}
 
-		public Migration(String id, Date start) {
+		public Migration(final String id, final Date start) {
 			this.id = id;
 			this.start = start;
 		}
diff --git a/src/main/java/de/thm/arsnova/model/Room.java b/src/main/java/de/thm/arsnova/model/Room.java
index 2fcbc65dbaa6fd727883a97b4f853d23fb62bb3f..142ad48f8f19ddb99c7b680a6156d8bc8efb5008 100644
--- a/src/main/java/de/thm/arsnova/model/Room.java
+++ b/src/main/java/de/thm/arsnova/model/Room.java
@@ -191,7 +191,7 @@ public class Room extends Entity {
 		}
 
 		@JsonView({View.Persistence.class, View.Public.class})
-		public void setQuickSurveyEnabled(boolean quickSurveyEnabled) {
+		public void setQuickSurveyEnabled(final boolean quickSurveyEnabled) {
 			this.quickSurveyEnabled = quickSurveyEnabled;
 		}
 
@@ -201,7 +201,7 @@ public class Room extends Entity {
 		}
 
 		@JsonView({View.Persistence.class, View.Public.class})
-		public void setQuickFeedbackEnabled(boolean quickFeedbackEnabled) {
+		public void setQuickFeedbackEnabled(final boolean quickFeedbackEnabled) {
 			this.quickFeedbackEnabled = quickFeedbackEnabled;
 		}
 
@@ -569,7 +569,7 @@ public class Room extends Entity {
 	}
 
 	@JsonView({View.Persistence.class, View.Public.class})
-	public void setSettings(Settings settings) {
+	public void setSettings(final Settings settings) {
 		this.settings = settings;
 	}
 
diff --git a/src/main/java/de/thm/arsnova/model/TextAnswer.java b/src/main/java/de/thm/arsnova/model/TextAnswer.java
index ac84b9d59996a2ef5a0c9c2913ed789b93ded493..f4a2069970bc705e162eb403c481423d1f873a06 100644
--- a/src/main/java/de/thm/arsnova/model/TextAnswer.java
+++ b/src/main/java/de/thm/arsnova/model/TextAnswer.java
@@ -55,7 +55,7 @@ public class TextAnswer extends Answer {
 	}
 
 	@JsonView({View.Persistence.class, View.Public.class})
-	public void setRead(boolean read) {
+	public void setRead(final boolean read) {
 		this.read = read;
 	}
 
diff --git a/src/main/java/de/thm/arsnova/model/UserProfile.java b/src/main/java/de/thm/arsnova/model/UserProfile.java
index dfbf10f2124cb6a4cbf1b0e89880a3732201a9c0..7d17f9fcf9cc70b10f752d8fec3778f96d8bd490 100644
--- a/src/main/java/de/thm/arsnova/model/UserProfile.java
+++ b/src/main/java/de/thm/arsnova/model/UserProfile.java
@@ -128,7 +128,7 @@ public class UserProfile extends Entity {
 
 		}
 
-		public RoomHistoryEntry(String roomId, Date lastVisit) {
+		public RoomHistoryEntry(final String roomId, final Date lastVisit) {
 			this.roomId = roomId;
 			this.lastVisit = lastVisit;
 		}
@@ -139,7 +139,7 @@ public class UserProfile extends Entity {
 		}
 
 		@JsonView(View.Persistence.class)
-		public void setRoomId(String roomId) {
+		public void setRoomId(final String roomId) {
 			this.roomId = roomId;
 		}
 
@@ -149,7 +149,7 @@ public class UserProfile extends Entity {
 		}
 
 		@JsonView(View.Persistence.class)
-		public void setLastVisit(Date lastVisit) {
+		public void setLastVisit(final Date lastVisit) {
 			this.lastVisit = lastVisit;
 		}
 
@@ -267,7 +267,7 @@ public class UserProfile extends Entity {
 	}
 
 	@JsonView({View.Persistence.class, View.Public.class})
-	public void setExtensions(Map<String, Map<String, ?>> extensions) {
+	public void setExtensions(final Map<String, Map<String, ?>> extensions) {
 		this.extensions = extensions;
 	}
 
diff --git a/src/main/java/de/thm/arsnova/model/migration/FromV2Migrator.java b/src/main/java/de/thm/arsnova/model/migration/FromV2Migrator.java
index 30f7f1936b7d2a773e8822efd62b9e9c40ecdbc5..9e7f218d254ebc3dd4ca7ab46de24eaabe9a27d8 100644
--- a/src/main/java/de/thm/arsnova/model/migration/FromV2Migrator.java
+++ b/src/main/java/de/thm/arsnova/model/migration/FromV2Migrator.java
@@ -98,7 +98,7 @@ public class FromV2Migrator {
 			profile.setAuthProvider(UserProfile.AuthProvider.ARSNOVA);
 			profile.setCreationTimestamp(new Date(dbUser.getCreation()));
 			profile.setUpdateTimestamp(new Date());
-			UserProfile.Account account = new UserProfile.Account();
+			final UserProfile.Account account = new UserProfile.Account();
 			profile.setAccount(account);
 			account.setPassword(dbUser.getPassword());
 			account.setActivationKey(dbUser.getActivationKey());
@@ -113,7 +113,7 @@ public class FromV2Migrator {
 				profile.setCreationTimestamp(new Date());
 			}
 			profile.setLastLoginTimestamp(new Date(loggedIn.getTimestamp()));
-			Set<UserProfile.RoomHistoryEntry> sessionHistory = loggedIn.getVisitedSessions().stream()
+			final Set<UserProfile.RoomHistoryEntry> sessionHistory = loggedIn.getVisitedSessions().stream()
 					.map(entry -> new UserProfile.RoomHistoryEntry(entry.getId(), new Date(0)))
 					.collect(Collectors.toSet());
 			profile.setRoomHistory(sessionHistory);
@@ -172,7 +172,7 @@ public class FromV2Migrator {
 	}
 
 	public de.thm.arsnova.model.Room.Settings migrate(final RoomFeature feature) {
-		de.thm.arsnova.model.Room.Settings settings = new de.thm.arsnova.model.Room.Settings();
+		final de.thm.arsnova.model.Room.Settings settings = new de.thm.arsnova.model.Room.Settings();
 		if (feature != null) {
 			settings.setCommentsEnabled(feature.isInterposed() || feature.isInterposedFeedback()
 					|| feature.isTwitterWall() || feature.isTotal());
@@ -190,7 +190,7 @@ public class FromV2Migrator {
 	}
 
 	public de.thm.arsnova.model.Content migrate(final Content from) {
-		de.thm.arsnova.model.Content to;
+		final de.thm.arsnova.model.Content to;
 		switch (from.getQuestionType()) {
 			case V2_TYPE_ABCD:
 			case V2_TYPE_SC:
@@ -198,13 +198,13 @@ public class FromV2Migrator {
 			case V2_TYPE_VOTE:
 			case V2_TYPE_SCHOOL:
 			case V2_TYPE_YESNO:
-				ChoiceQuestionContent choiceQuestionContent = new ChoiceQuestionContent();
+				final ChoiceQuestionContent choiceQuestionContent = new ChoiceQuestionContent();
 				to = choiceQuestionContent;
 				to.setFormat(formatMapping.get(from.getQuestionType()));
 				choiceQuestionContent.setMultiple(V2_TYPE_MC.equals(from.getQuestionType()));
 				for (int i = 0; i < from.getPossibleAnswers().size(); i++) {
-					de.thm.arsnova.model.migration.v2.AnswerOption fromOption = from.getPossibleAnswers().get(i);
-					ChoiceQuestionContent.AnswerOption toOption = new ChoiceQuestionContent.AnswerOption();
+					final de.thm.arsnova.model.migration.v2.AnswerOption fromOption = from.getPossibleAnswers().get(i);
+					final ChoiceQuestionContent.AnswerOption toOption = new ChoiceQuestionContent.AnswerOption();
 					toOption.setLabel(fromOption.getText());
 					toOption.setPoints(fromOption.getValue());
 					choiceQuestionContent.getOptions().add(toOption);
@@ -228,7 +228,7 @@ public class FromV2Migrator {
 		to.setBody(from.getText());
 		to.setAbstentionsAllowed(from.isAbstention());
 		to.setAbstentionsAllowed(from.isAbstention());
-		de.thm.arsnova.model.Content.State state = to.getState();
+		final de.thm.arsnova.model.Content.State state = to.getState();
 		state.setRound(from.getPiRound());
 		state.setVisible(from.isActive());
 		state.setResponsesVisible(from.isShowStatistic());
@@ -239,9 +239,9 @@ public class FromV2Migrator {
 	}
 
 	public de.thm.arsnova.model.Answer migrate(final Answer from, final de.thm.arsnova.model.Content content) {
-		de.thm.arsnova.model.Answer answer;
+		final de.thm.arsnova.model.Answer answer;
 		if (content instanceof ChoiceQuestionContent) {
-			ChoiceQuestionContent choiceQuestionContent = (ChoiceQuestionContent) content;
+			final ChoiceQuestionContent choiceQuestionContent = (ChoiceQuestionContent) content;
 			answer = migrate(from, choiceQuestionContent.getOptions(), choiceQuestionContent.isMultiple());
 		} else {
 			answer = migrate(from);
@@ -258,19 +258,19 @@ public class FromV2Migrator {
 		to.setContentId(from.getQuestionId());
 		to.setRoomId(from.getSessionId());
 		to.setRound(from.getPiRound());
-		List<Integer> selectedChoiceIndexes = new ArrayList<>();
+		final List<Integer> selectedChoiceIndexes = new ArrayList<>();
 		to.setSelectedChoiceIndexes(selectedChoiceIndexes);
 
 		if (!from.isAbstention()) {
 			if (multiple) {
-				List<Boolean> flags = Arrays.stream(from.getAnswerText().split(","))
+				final List<Boolean> flags = Arrays.stream(from.getAnswerText().split(","))
 						.map("1"::equals).collect(Collectors.toList());
 				if (flags.size() != options.size()) {
 					throw new IndexOutOfBoundsException(
 							"Number of answer's choice flags does not match number of content's answer options");
 				}
 				int i = 0;
-				for (boolean flag : flags) {
+				for (final boolean flag : flags) {
 					if (flag) {
 						selectedChoiceIndexes.add(i);
 					}
@@ -278,7 +278,7 @@ public class FromV2Migrator {
 				}
 			} else {
 				int i = 0;
-				for (ChoiceQuestionContent.AnswerOption option : options) {
+				for (final ChoiceQuestionContent.AnswerOption option : options) {
 					if (option.getLabel().equals(from.getAnswerText())) {
 						selectedChoiceIndexes.add(i);
 						break;
diff --git a/src/main/java/de/thm/arsnova/model/migration/ToV2Migrator.java b/src/main/java/de/thm/arsnova/model/migration/ToV2Migrator.java
index cef7acfa880976544f0aff754afa76d514ee6efb..387ecec98df548067197782271995256de6e2ea7 100644
--- a/src/main/java/de/thm/arsnova/model/migration/ToV2Migrator.java
+++ b/src/main/java/de/thm/arsnova/model/migration/ToV2Migrator.java
@@ -89,7 +89,7 @@ public class ToV2Migrator {
 	}
 
 	public RoomFeature migrate(final de.thm.arsnova.model.Room.Settings settings) {
-		RoomFeature feature = new RoomFeature();
+		final RoomFeature feature = new RoomFeature();
 
 		/* Features */
 		feature.setInterposed(settings.isCommentsEnabled());
@@ -193,7 +193,7 @@ public class ToV2Migrator {
 			final List<AnswerOption> toOptions = new ArrayList<>();
 			to.setPossibleAnswers(toOptions);
 			for (int i = 0; i < fromChoiceQuestionContent.getOptions().size(); i++) {
-				AnswerOption option = new AnswerOption();
+				final AnswerOption option = new AnswerOption();
 				option.setText(fromChoiceQuestionContent.getOptions().get(i).getLabel());
 				option.setValue(fromChoiceQuestionContent.getOptions().get(i).getPoints());
 				option.setCorrect(fromChoiceQuestionContent.getCorrectOptionIndexes().contains(i));
@@ -211,7 +211,7 @@ public class ToV2Migrator {
 					throw new IllegalArgumentException("Unsupported content format.");
 			}
 		}
-		de.thm.arsnova.model.Content.State state = from.getState();
+		final de.thm.arsnova.model.Content.State state = from.getState();
 		to.setPiRound(state.getRound());
 		to.setActive(state.isVisible());
 		to.setShowStatistic(state.isResponsesVisible());
@@ -240,7 +240,7 @@ public class ToV2Migrator {
 			if (content.isMultiple()) {
 				to.setAnswerText(migrateChoice(from.getSelectedChoiceIndexes(), content.getOptions()));
 			} else {
-				int index = from.getSelectedChoiceIndexes().get(0);
+				final int index = from.getSelectedChoiceIndexes().get(0);
 				to.setAnswerText(content.getOptions().get(index).getLabel());
 			}
 		}
@@ -324,7 +324,7 @@ public class ToV2Migrator {
 	}
 
 	public List<Answer> migrate(final AnswerStatistics from,
-			final de.thm.arsnova.model.ChoiceQuestionContent content, int round) {
+			final de.thm.arsnova.model.ChoiceQuestionContent content, final int round) {
 		if (round < 1 || round > content.getState().getRound()) {
 			throw new IllegalArgumentException("Invalid value for round");
 		}
@@ -340,7 +340,7 @@ public class ToV2Migrator {
 			to.add(abstention);
 		}
 
-		Map<String, Integer> choices;
+		final Map<String, Integer> choices;
 		if (content.isMultiple()) {
 			/* Map selected choice indexes -> answer count */
 			choices = stats.getCombinatedCounts().stream().collect(Collectors.toMap(
@@ -353,14 +353,14 @@ public class ToV2Migrator {
 		} else {
 			choices = new LinkedHashMap<>();
 			int i = 0;
-			for (ChoiceQuestionContent.AnswerOption option : content.getOptions()) {
+			for (final ChoiceQuestionContent.AnswerOption option : content.getOptions()) {
 				choices.put(option.getLabel(), stats.getIndependentCounts().get(i));
 				i++;
 			}
 		}
 
-		for (Map.Entry<String, Integer> choice : choices.entrySet()) {
-			Answer answer = new Answer();
+		for (final Map.Entry<String, Integer> choice : choices.entrySet()) {
+			final Answer answer = new Answer();
 			answer.setQuestionId(content.getId());
 			answer.setPiRound(round);
 			answer.setAnswerCount(choice.getValue());
@@ -394,8 +394,8 @@ public class ToV2Migrator {
 	}
 
 	public RoomInfo migrateStats(final de.thm.arsnova.model.Room from) {
-		RoomInfo to = new RoomInfo(migrate(from));
-		RoomStatistics stats = from.getStatistics();
+		final RoomInfo to = new RoomInfo(migrate(from));
+		final RoomStatistics stats = from.getStatistics();
 		to.setNumQuestions(stats.getContentCount());
 		to.setNumUnanswered(stats.getUnansweredContentCount());
 		to.setNumAnswers(stats.getAnswerCount());
@@ -407,7 +407,7 @@ public class ToV2Migrator {
 
 	public String migrateChoice(final List<Integer> selectedChoiceIndexes,
 			final List<ChoiceQuestionContent.AnswerOption> options) {
-		List<String> answers = new ArrayList<>();
+		final List<String> answers = new ArrayList<>();
 		for (int i = 0; i < options.size(); i++) {
 			answers.add(selectedChoiceIndexes.contains(i) ? "1" : "0");
 		}
diff --git a/src/main/java/de/thm/arsnova/model/migration/v2/Answer.java b/src/main/java/de/thm/arsnova/model/migration/v2/Answer.java
index 31c1003f2dcd8cd26dd954833447d5c4bffe4214..1c97407511fc9d6449752439d30d95979a1d5956 100644
--- a/src/main/java/de/thm/arsnova/model/migration/v2/Answer.java
+++ b/src/main/java/de/thm/arsnova/model/migration/v2/Answer.java
@@ -150,7 +150,7 @@ public class Answer implements Entity {
 	}
 
 	@JsonView({View.Persistence.class, View.Public.class})
-	public void setPiRound(int piRound) {
+	public void setPiRound(final int piRound) {
 		this.piRound = piRound;
 	}
 
@@ -172,7 +172,7 @@ public class Answer implements Entity {
 	}
 
 	@JsonView({View.Persistence.class, View.Public.class})
-	public void setAnswerImage(String answerImage) {
+	public void setAnswerImage(final String answerImage) {
 		this.answerImage = answerImage;
 	}
 
@@ -183,7 +183,7 @@ public class Answer implements Entity {
 	}
 
 	@JsonView({View.Persistence.class, View.Public.class})
-	public void setAnswerThumbnailImage(String answerThumbnailImage) {
+	public void setAnswerThumbnailImage(final String answerThumbnailImage) {
 		this.answerThumbnailImage = answerThumbnailImage;
 	}
 
@@ -194,7 +194,7 @@ public class Answer implements Entity {
 	}
 
 	@JsonView(View.Persistence.class)
-	public void setTimestamp(long timestamp) {
+	public void setTimestamp(final long timestamp) {
 		this.timestamp = timestamp;
 	}
 
@@ -205,7 +205,7 @@ public class Answer implements Entity {
 	}
 
 	@JsonView({View.Persistence.class, View.Public.class})
-	public void setRead(boolean read) {
+	public void setRead(final boolean read) {
 		this.read = read;
 	}
 
@@ -226,7 +226,7 @@ public class Answer implements Entity {
 	}
 
 	@JsonView({View.Persistence.class, View.Public.class})
-	public void setAbstention(boolean abstention) {
+	public void setAbstention(final boolean abstention) {
 		this.abstention = abstention;
 	}
 
@@ -236,7 +236,7 @@ public class Answer implements Entity {
 		return abstentionCount;
 	}
 
-	public void setAbstentionCount(int abstentionCount) {
+	public void setAbstentionCount(final int abstentionCount) {
 		this.abstentionCount = abstentionCount;
 	}
 
@@ -247,7 +247,7 @@ public class Answer implements Entity {
 	}
 
 	@JsonView({View.Persistence.class, View.Public.class})
-	public void setQuestionVariant(String questionVariant) {
+	public void setQuestionVariant(final String questionVariant) {
 		this.questionVariant = questionVariant;
 	}
 
@@ -258,7 +258,7 @@ public class Answer implements Entity {
 	}
 
 	@JsonView({View.Persistence.class, View.Public.class})
-	public void setQuestionValue(int questionValue) {
+	public void setQuestionValue(final int questionValue) {
 		this.questionValue = questionValue;
 	}
 
@@ -291,7 +291,7 @@ public class Answer implements Entity {
 	}
 
 	@Override
-	public boolean equals(Object obj) {
+	public boolean equals(final Object obj) {
 		// auto generated!
 		if (this == obj) {
 			return true;
@@ -302,7 +302,7 @@ public class Answer implements Entity {
 		if (getClass() != obj.getClass()) {
 			return false;
 		}
-		Answer other = (Answer) obj;
+		final Answer other = (Answer) obj;
 		if (id == null) {
 			if (other.id != null) {
 				return false;
diff --git a/src/main/java/de/thm/arsnova/model/migration/v2/AnswerOption.java b/src/main/java/de/thm/arsnova/model/migration/v2/AnswerOption.java
index ea8f5888559244fa497653ebc3cb84ea9b0b95bc..1574d7f356c0856bc336398ccf1882b8a3cbff8e 100644
--- a/src/main/java/de/thm/arsnova/model/migration/v2/AnswerOption.java
+++ b/src/main/java/de/thm/arsnova/model/migration/v2/AnswerOption.java
@@ -41,7 +41,7 @@ public class AnswerOption implements Serializable {
 		return this.id;
 	}
 
-	public void setId(String id) {
+	public void setId(final String id) {
 		this.id = id;
 	}
 
@@ -52,7 +52,7 @@ public class AnswerOption implements Serializable {
 	}
 
 	@JsonView({View.Persistence.class, View.Public.class})
-	public void setText(String text) {
+	public void setText(final String text) {
 		this.text = text;
 	}
 
@@ -63,7 +63,7 @@ public class AnswerOption implements Serializable {
 	}
 
 	@JsonView({View.Persistence.class, View.Public.class})
-	public void setCorrect(boolean correct) {
+	public void setCorrect(final boolean correct) {
 		this.correct = correct;
 	}
 
@@ -74,7 +74,7 @@ public class AnswerOption implements Serializable {
 	}
 
 	@JsonView({View.Persistence.class, View.Public.class})
-	public void setValue(int value) {
+	public void setValue(final int value) {
 		this.value = value;
 	}
 
diff --git a/src/main/java/de/thm/arsnova/model/migration/v2/ClientAuthentication.java b/src/main/java/de/thm/arsnova/model/migration/v2/ClientAuthentication.java
index 33cbcb4995349710189425e3bbc91ed6909b581b..2510ad89dc0d7d3c83965f9bb0ba3de3fb8679f6 100644
--- a/src/main/java/de/thm/arsnova/model/migration/v2/ClientAuthentication.java
+++ b/src/main/java/de/thm/arsnova/model/migration/v2/ClientAuthentication.java
@@ -45,21 +45,21 @@ public class ClientAuthentication implements Serializable {
 		authProvider = UserProfile.AuthProvider.NONE;
 	}
 
-	public ClientAuthentication(User user) {
+	public ClientAuthentication(final User user) {
 		id = user.getId();
 		username = user.getUsername();
 		authProvider = user.getAuthProvider();
 		isAdmin = user.isAdmin();
 	}
 
-	public ClientAuthentication(Authentication authentication) {
+	public ClientAuthentication(final Authentication authentication) {
 		if (authentication instanceof AnonymousAuthenticationToken) {
 			setUsername(ClientAuthentication.ANONYMOUS);
 		} else {
 			if (!(authentication.getPrincipal() instanceof User)) {
 				throw new IllegalArgumentException("Unsupported authentication token");
 			}
-			User user = (User) authentication.getPrincipal();
+			final User user = (User) authentication.getPrincipal();
 			id = user.getId();
 			username = user.getUsername();
 			authProvider = user.getAuthProvider();
@@ -123,7 +123,7 @@ public class ClientAuthentication implements Serializable {
 		if (obj == null || !obj.getClass().equals(this.getClass())) {
 			return false;
 		}
-		ClientAuthentication other = (ClientAuthentication) obj;
+		final ClientAuthentication other = (ClientAuthentication) obj;
 
 		return this.authProvider == other.authProvider
 				&& Objects.equals(this.id, other.id) && this.username.equals(other.username);
diff --git a/src/main/java/de/thm/arsnova/model/migration/v2/Comment.java b/src/main/java/de/thm/arsnova/model/migration/v2/Comment.java
index 057deaf3f2c9b801f5a3c741a6e5d89e6a62d2a2..1103e5bb4a7d408aba34d4a3f2f8c06f8fbc8d0b 100644
--- a/src/main/java/de/thm/arsnova/model/migration/v2/Comment.java
+++ b/src/main/java/de/thm/arsnova/model/migration/v2/Comment.java
@@ -79,7 +79,7 @@ public class Comment implements Entity {
 	}
 
 	@JsonView({View.Persistence.class, View.Public.class})
-	public void setRead(boolean read) {
+	public void setRead(final boolean read) {
 		this.read = read;
 	}
 
@@ -90,7 +90,7 @@ public class Comment implements Entity {
 	}
 
 	@JsonView({View.Persistence.class, View.Public.class})
-	public void setSubject(String subject) {
+	public void setSubject(final String subject) {
 		this.subject = subject;
 	}
 
@@ -101,7 +101,7 @@ public class Comment implements Entity {
 	}
 
 	@JsonView({View.Persistence.class, View.Public.class})
-	public void setText(String text) {
+	public void setText(final String text) {
 		this.text = text;
 	}
 
@@ -112,7 +112,7 @@ public class Comment implements Entity {
 	}
 
 	@JsonView({View.Persistence.class, View.Public.class})
-	public void setSessionId(String sessionId) {
+	public void setSessionId(final String sessionId) {
 		this.sessionId = sessionId;
 	}
 
@@ -123,7 +123,7 @@ public class Comment implements Entity {
 	}
 
 	@JsonView({View.Persistence.class, View.Public.class})
-	public void setTimestamp(long timestamp) {
+	public void setTimestamp(final long timestamp) {
 		this.timestamp = timestamp;
 	}
 
@@ -133,11 +133,11 @@ public class Comment implements Entity {
 	}
 
 	@JsonView(View.Persistence.class)
-	public void setCreator(String creator) {
+	public void setCreator(final String creator) {
 		this.creator = creator;
 	}
 
-	public boolean isCreator(ClientAuthentication user) {
+	public boolean isCreator(final ClientAuthentication user) {
 		return user.getUsername().equals(creator);
 	}
 }
diff --git a/src/main/java/de/thm/arsnova/model/migration/v2/CommentReadingCount.java b/src/main/java/de/thm/arsnova/model/migration/v2/CommentReadingCount.java
index 0a52b3bbeb10a42ea3264898fbd3a51d62c5aa29..2b6291a29bf93a553616fb255e563fd8e72218d9 100644
--- a/src/main/java/de/thm/arsnova/model/migration/v2/CommentReadingCount.java
+++ b/src/main/java/de/thm/arsnova/model/migration/v2/CommentReadingCount.java
@@ -33,7 +33,7 @@ public class CommentReadingCount {
 	private int read;
 	private int unread;
 
-	public CommentReadingCount(int readCount, int unreadCount) {
+	public CommentReadingCount(final int readCount, final int unreadCount) {
 		this.read = readCount;
 		this.unread = unreadCount;
 	}
@@ -49,7 +49,7 @@ public class CommentReadingCount {
 		return read;
 	}
 
-	public void setRead(int read) {
+	public void setRead(final int read) {
 		this.read = read;
 	}
 
@@ -59,7 +59,7 @@ public class CommentReadingCount {
 		return unread;
 	}
 
-	public void setUnread(int unread) {
+	public void setUnread(final int unread) {
 		this.unread = unread;
 	}
 
diff --git a/src/main/java/de/thm/arsnova/model/migration/v2/Content.java b/src/main/java/de/thm/arsnova/model/migration/v2/Content.java
index 3d334d99795100d203356888dfcefa73779bccbe..258fe80f0ef6615cc7a65957ca21848bfd4e939b 100644
--- a/src/main/java/de/thm/arsnova/model/migration/v2/Content.java
+++ b/src/main/java/de/thm/arsnova/model/migration/v2/Content.java
@@ -266,7 +266,7 @@ public class Content implements Entity {
 	}
 
 	@JsonView({View.Persistence.class, View.Public.class})
-	public void setImageQuestion(boolean imageQuestion) {
+	public void setImageQuestion(final boolean imageQuestion) {
 		this.imageQuestion = imageQuestion;
 	}
 
@@ -288,7 +288,7 @@ public class Content implements Entity {
 	}
 
 	@JsonView({View.Persistence.class, View.Public.class})
-	public void setPiRoundEndTime(long piRoundEndTime) {
+	public void setPiRoundEndTime(final long piRoundEndTime) {
 		this.piRoundEndTime = piRoundEndTime;
 	}
 
@@ -299,7 +299,7 @@ public class Content implements Entity {
 	}
 
 	@JsonView({View.Persistence.class, View.Public.class})
-	public void setPiRoundStartTime(long piRoundStartTime) {
+	public void setPiRoundStartTime(final long piRoundStartTime) {
 		this.piRoundStartTime = piRoundStartTime;
 	}
 
@@ -308,7 +308,7 @@ public class Content implements Entity {
 		return piRoundActive;
 	}
 
-	public void setPiRoundActive(boolean piRoundActive) {
+	public void setPiRoundActive(final boolean piRoundActive) {
 		this.piRoundActive = piRoundActive;
 	}
 
@@ -317,7 +317,7 @@ public class Content implements Entity {
 		return piRoundFinished;
 	}
 
-	public void setPiRoundFinished(boolean piRoundFinished) {
+	public void setPiRoundFinished(final boolean piRoundFinished) {
 		this.piRoundFinished = piRoundFinished;
 	}
 
@@ -339,7 +339,7 @@ public class Content implements Entity {
 	}
 
 	@JsonView({View.Persistence.class, View.Public.class})
-	public void setCvIsColored(boolean cvIsColored) {
+	public void setCvIsColored(final boolean cvIsColored) {
 		this.cvIsColored = cvIsColored;
 	}
 
@@ -508,7 +508,7 @@ public class Content implements Entity {
 	}
 
 	@JsonView({View.Persistence.class, View.Public.class})
-	public void setGridOffsetX(int gridOffsetX) {
+	public void setGridOffsetX(final int gridOffsetX) {
 		this.gridOffsetX = gridOffsetX;
 	}
 
@@ -519,7 +519,7 @@ public class Content implements Entity {
 	}
 
 	@JsonView({View.Persistence.class, View.Public.class})
-	public void setGridOffsetY(int gridOffsetY) {
+	public void setGridOffsetY(final int gridOffsetY) {
 		this.gridOffsetY = gridOffsetY;
 	}
 
@@ -530,7 +530,7 @@ public class Content implements Entity {
 	}
 
 	@JsonView({View.Persistence.class, View.Public.class})
-	public void setGridZoomLvl(int gridZoomLvl) {
+	public void setGridZoomLvl(final int gridZoomLvl) {
 		this.gridZoomLvl = gridZoomLvl;
 	}
 
@@ -541,7 +541,7 @@ public class Content implements Entity {
 	}
 
 	@JsonView({View.Persistence.class, View.Public.class})
-	public void setGridSizeX(int gridSizeX) {
+	public void setGridSizeX(final int gridSizeX) {
 		this.gridSizeX = gridSizeX;
 	}
 
@@ -552,7 +552,7 @@ public class Content implements Entity {
 	}
 
 	@JsonView({View.Persistence.class, View.Public.class})
-	public void setGridSizeY(int gridSizeY) {
+	public void setGridSizeY(final int gridSizeY) {
 		this.gridSizeY = gridSizeY;
 	}
 
@@ -563,7 +563,7 @@ public class Content implements Entity {
 	}
 
 	@JsonView({View.Persistence.class, View.Public.class})
-	public void setGridIsHidden(boolean gridIsHidden) {
+	public void setGridIsHidden(final boolean gridIsHidden) {
 		this.gridIsHidden = gridIsHidden;
 	}
 
@@ -574,7 +574,7 @@ public class Content implements Entity {
 	}
 
 	@JsonView({View.Persistence.class, View.Public.class})
-	public void setImgRotation(int imgRotation) {
+	public void setImgRotation(final int imgRotation) {
 		this.imgRotation = imgRotation;
 	}
 
@@ -585,7 +585,7 @@ public class Content implements Entity {
 	}
 
 	@JsonView({View.Persistence.class, View.Public.class})
-	public void setToggleFieldsLeft(boolean toggleFieldsLeft) {
+	public void setToggleFieldsLeft(final boolean toggleFieldsLeft) {
 		this.toggleFieldsLeft = toggleFieldsLeft;
 	}
 
@@ -596,7 +596,7 @@ public class Content implements Entity {
 	}
 
 	@JsonView({View.Persistence.class, View.Public.class})
-	public void setNumClickableFields(int numClickableFields) {
+	public void setNumClickableFields(final int numClickableFields) {
 		this.numClickableFields = numClickableFields;
 	}
 
@@ -607,7 +607,7 @@ public class Content implements Entity {
 	}
 
 	@JsonView({View.Persistence.class, View.Public.class})
-	public void setThresholdCorrectAnswers(int thresholdCorrectAnswers) {
+	public void setThresholdCorrectAnswers(final int thresholdCorrectAnswers) {
 		this.thresholdCorrectAnswers = thresholdCorrectAnswers;
 	}
 
@@ -618,7 +618,7 @@ public class Content implements Entity {
 	}
 
 	@JsonView({View.Persistence.class, View.Public.class})
-	public void setGridLineColor(String gridLineColor) {
+	public void setGridLineColor(final String gridLineColor) {
 		this.gridLineColor = gridLineColor;
 	}
 
@@ -629,7 +629,7 @@ public class Content implements Entity {
 	}
 
 	@JsonView({View.Persistence.class, View.Public.class})
-	public void setNumberOfDots(int numberOfDots) {
+	public void setNumberOfDots(final int numberOfDots) {
 		this.numberOfDots = numberOfDots;
 	}
 
@@ -640,12 +640,12 @@ public class Content implements Entity {
 	}
 
 	@JsonView({View.Persistence.class, View.Public.class})
-	public void setGridType(String gridType) {
+	public void setGridType(final String gridType) {
 		this.gridType = gridType;
 	}
 
 	@JsonView({View.Persistence.class, View.Public.class})
-	public void setScaleFactor(String scaleFactor) {
+	public void setScaleFactor(final String scaleFactor) {
 		this.scaleFactor = scaleFactor;
 	}
 
@@ -656,7 +656,7 @@ public class Content implements Entity {
 	}
 
 	@JsonView({View.Persistence.class, View.Public.class})
-	public void setGridScaleFactor(String scaleFactor) {
+	public void setGridScaleFactor(final String scaleFactor) {
 		this.gridScaleFactor = scaleFactor;
 	}
 
@@ -673,7 +673,7 @@ public class Content implements Entity {
 	}
 
 	@JsonView({View.Persistence.class, View.Public.class})
-	public void setTextAnswerEnabled(boolean textAnswerEnabled) {
+	public void setTextAnswerEnabled(final boolean textAnswerEnabled) {
 		this.textAnswerEnabled = textAnswerEnabled;
 	}
 
@@ -684,7 +684,7 @@ public class Content implements Entity {
 	}
 
 	@JsonView({View.Persistence.class, View.Public.class})
-	public void setVotingDisabled(boolean votingDisabled) {
+	public void setVotingDisabled(final boolean votingDisabled) {
 		this.votingDisabled = votingDisabled;
 	}
 
@@ -694,7 +694,7 @@ public class Content implements Entity {
 	}
 
 	@JsonView({View.Persistence.class, View.Public.class})
-	public void setHint(String hint) {
+	public void setHint(final String hint) {
 		this.hint = hint;
 	}
 
@@ -704,7 +704,7 @@ public class Content implements Entity {
 	}
 
 	@JsonView({View.Persistence.class, View.Public.class})
-	public void setSolution(String solution) {
+	public void setSolution(final String solution) {
 		this.solution = solution;
 	}
 
@@ -723,7 +723,7 @@ public class Content implements Entity {
 	}
 
 	@Override
-	public boolean equals(Object obj) {
+	public boolean equals(final Object obj) {
 		// auto generated!
 		if (this == obj) {
 			return true;
@@ -734,7 +734,7 @@ public class Content implements Entity {
 		if (getClass() != obj.getClass()) {
 			return false;
 		}
-		Content other = (Content) obj;
+		final Content other = (Content) obj;
 		if (id == null) {
 			if (other.id != null) {
 				return false;
@@ -745,7 +745,7 @@ public class Content implements Entity {
 		return true;
 	}
 
-	public int calculateValue(Answer answer) {
+	public int calculateValue(final Answer answer) {
 		if (answer.isAbstention()) {
 			return 0;
 		} else if ("mc".equals(this.questionType)) {
@@ -757,7 +757,7 @@ public class Content implements Entity {
 		}
 	}
 
-	public String checkCaseSensitive(String answerText) {
+	public String checkCaseSensitive(final String answerText) {
 		if (this.isIgnoreCaseSensitive()) {
 			this.setCorrectAnswer(this.getCorrectAnswer().toLowerCase());
 			return answerText.toLowerCase();
@@ -765,7 +765,7 @@ public class Content implements Entity {
 		return answerText;
 	}
 
-	public String checkWhitespaces(String answerText) {
+	public String checkWhitespaces(final String answerText) {
 		if (this.isIgnoreWhitespaces()) {
 			this.setCorrectAnswer(this.getCorrectAnswer().replaceAll("[\\s]", ""));
 			return answerText.replaceAll("[\\s]", "");
@@ -773,7 +773,7 @@ public class Content implements Entity {
 		return answerText;
 	}
 
-	public String checkPunctuation(String answerText) {
+	public String checkPunctuation(final String answerText) {
 		if (this.isIgnorePunctuation()) {
 			this.setCorrectAnswer(this.getCorrectAnswer().replaceAll("\\p{Punct}", ""));
 			return answerText.replaceAll("\\p{Punct}", "");
@@ -781,13 +781,13 @@ public class Content implements Entity {
 		return answerText;
 	}
 
-	public void checkTextStrictOptions(Answer answer) {
+	public void checkTextStrictOptions(final Answer answer) {
 		answer.setAnswerTextRaw(this.checkCaseSensitive(answer.getAnswerTextRaw()));
 		answer.setAnswerTextRaw(this.checkPunctuation(answer.getAnswerTextRaw()));
 		answer.setAnswerTextRaw(this.checkWhitespaces(answer.getAnswerTextRaw()));
 	}
 
-	public int evaluateCorrectAnswerFixedText(String answerTextRaw) {
+	public int evaluateCorrectAnswerFixedText(final String answerTextRaw) {
 		if (answerTextRaw != null) {
 			if (answerTextRaw.equals(this.getCorrectAnswer())) {
 				return this.getRating();
@@ -796,11 +796,11 @@ public class Content implements Entity {
 		return 0;
 	}
 
-	public boolean isSuccessfulFreeTextAnswer(String answerTextRaw) {
+	public boolean isSuccessfulFreeTextAnswer(final String answerTextRaw) {
 		return answerTextRaw != null && answerTextRaw.equals(this.getCorrectAnswer());
 	}
 
-	public void updateRoundStartVariables(Date start, Date end) {
+	public void updateRoundStartVariables(final Date start, final Date end) {
 		if (this.getPiRound() == 1 && this.isPiRoundFinished()) {
 			this.setPiRound(2);
 		}
@@ -850,9 +850,9 @@ public class Content implements Entity {
 		}
 	}
 
-	private int calculateRegularValue(Answer answer) {
-		String answerText = answer.getAnswerText();
-		for (AnswerOption p : this.possibleAnswers) {
+	private int calculateRegularValue(final Answer answer) {
+		final String answerText = answer.getAnswerText();
+		for (final AnswerOption p : this.possibleAnswers) {
 			if (answerText.equals(p.getText())) {
 				return p.getValue();
 			}
@@ -860,11 +860,11 @@ public class Content implements Entity {
 		return 0;
 	}
 
-	private int calculateGridValue(Answer answer) {
+	private int calculateGridValue(final Answer answer) {
 		int value = 0;
-		String[] answers = answer.getAnswerText().split(",");
-		for (String a : answers) {
-			for (AnswerOption p : this.possibleAnswers) {
+		final String[] answers = answer.getAnswerText().split(",");
+		for (final String a : answers) {
+			for (final AnswerOption p : this.possibleAnswers) {
 				if (a.equals(p.getText())) {
 					value += p.getValue();
 				}
@@ -873,12 +873,12 @@ public class Content implements Entity {
 		return value;
 	}
 
-	private int calculateMultipleChoiceValue(Answer answer) {
+	private int calculateMultipleChoiceValue(final Answer answer) {
 		int value = 0;
-		String[] answers = answer.getAnswerText().split(",");
+		final String[] answers = answer.getAnswerText().split(",");
 		for (int i = 0; i < this.possibleAnswers.size() && i < answers.length; i++) {
 			if ("1".equals(answers[i])) {
-				AnswerOption p = this.possibleAnswers.get(i);
+				final AnswerOption p = this.possibleAnswers.get(i);
 				value += p.getValue();
 			}
 		}
diff --git a/src/main/java/de/thm/arsnova/model/migration/v2/DbUser.java b/src/main/java/de/thm/arsnova/model/migration/v2/DbUser.java
index a54810bc931715f38e2e32dd0546a1b561f3b86b..1ec263bdefe52e8222ba88ebdab1a47a7c37089d 100644
--- a/src/main/java/de/thm/arsnova/model/migration/v2/DbUser.java
+++ b/src/main/java/de/thm/arsnova/model/migration/v2/DbUser.java
@@ -42,7 +42,7 @@ public class DbUser implements Entity {
 	}
 
 	@JsonView(View.Persistence.class)
-	public void setId(String id) {
+	public void setId(final String id) {
 		this.id = id;
 	}
 
@@ -52,7 +52,7 @@ public class DbUser implements Entity {
 	}
 
 	@JsonView(View.Persistence.class)
-	public void setRevision(String rev) {
+	public void setRevision(final String rev) {
 		this.rev = rev;
 	}
 
@@ -62,7 +62,7 @@ public class DbUser implements Entity {
 	}
 
 	@JsonView({View.Persistence.class, View.Public.class})
-	public void setUsername(String username) {
+	public void setUsername(final String username) {
 		this.username = username;
 	}
 
@@ -72,7 +72,7 @@ public class DbUser implements Entity {
 	}
 
 	@JsonView(View.Persistence.class)
-	public void setPassword(String password) {
+	public void setPassword(final String password) {
 		this.password = password;
 	}
 
@@ -82,7 +82,7 @@ public class DbUser implements Entity {
 	}
 
 	@JsonView(View.Persistence.class)
-	public void setActivationKey(String activationKey) {
+	public void setActivationKey(final String activationKey) {
 		this.activationKey = activationKey;
 	}
 
@@ -92,7 +92,7 @@ public class DbUser implements Entity {
 	}
 
 	@JsonView(View.Persistence.class)
-	public void setPasswordResetKey(String passwordResetKey) {
+	public void setPasswordResetKey(final String passwordResetKey) {
 		this.passwordResetKey = passwordResetKey;
 	}
 
@@ -102,7 +102,7 @@ public class DbUser implements Entity {
 	}
 
 	@JsonView(View.Persistence.class)
-	public void setPasswordResetTime(long passwordResetTime) {
+	public void setPasswordResetTime(final long passwordResetTime) {
 		this.passwordResetTime = passwordResetTime;
 	}
 
@@ -112,7 +112,7 @@ public class DbUser implements Entity {
 	}
 
 	@JsonView(View.Persistence.class)
-	public void setCreation(long creation) {
+	public void setCreation(final long creation) {
 		this.creation = creation;
 	}
 
@@ -122,7 +122,7 @@ public class DbUser implements Entity {
 	}
 
 	@JsonView(View.Persistence.class)
-	public void setLastLogin(long lastLogin) {
+	public void setLastLogin(final long lastLogin) {
 		this.lastLogin = lastLogin;
 	}
 }
diff --git a/src/main/java/de/thm/arsnova/model/migration/v2/LogEntry.java b/src/main/java/de/thm/arsnova/model/migration/v2/LogEntry.java
index 522c3928c064c6f548fff4fd68f4b6f3fd2df644..74232a1273cc270bd6c2b28d086db3fb86eec2a9 100644
--- a/src/main/java/de/thm/arsnova/model/migration/v2/LogEntry.java
+++ b/src/main/java/de/thm/arsnova/model/migration/v2/LogEntry.java
@@ -41,7 +41,8 @@ public class LogEntry implements Entity {
 	private int level;
 	private Map<String, Object> payload;
 
-	public LogEntry(@JsonProperty String event, @JsonProperty int level, @JsonProperty Map<String, Object> payload) {
+	public LogEntry(@JsonProperty final String event, @JsonProperty final int level,
+			@JsonProperty final Map<String, Object> payload) {
 		this.event = event;
 		this.level = level;
 		this.payload = payload;
diff --git a/src/main/java/de/thm/arsnova/model/migration/v2/LoggedIn.java b/src/main/java/de/thm/arsnova/model/migration/v2/LoggedIn.java
index a34ebc8628aeec99ac03b4582d2b90616de73ad3..54332633bb361b7361c66b861fe25ee209f400aa 100644
--- a/src/main/java/de/thm/arsnova/model/migration/v2/LoggedIn.java
+++ b/src/main/java/de/thm/arsnova/model/migration/v2/LoggedIn.java
@@ -42,14 +42,14 @@ public class LoggedIn implements Entity {
 		this.updateTimestamp();
 	}
 
-	public void addVisitedSession(Room s) {
+	public void addVisitedSession(final Room s) {
 		if (!isAlreadyVisited(s)) {
 			this.visitedSessions.add(new VisitedRoom(s));
 		}
 	}
 
-	private boolean isAlreadyVisited(Room s) {
-		for (VisitedRoom vs : this.visitedSessions) {
+	private boolean isAlreadyVisited(final Room s) {
+		for (final VisitedRoom vs : this.visitedSessions) {
 			if (vs.getId().equals(s.getId())) {
 				return true;
 			}
@@ -87,7 +87,7 @@ public class LoggedIn implements Entity {
 	}
 
 	@JsonView(View.Persistence.class)
-	public void setUser(String user) {
+	public void setUser(final String user) {
 		this.user = user;
 	}
 
@@ -97,7 +97,7 @@ public class LoggedIn implements Entity {
 	}
 
 	@JsonView(View.Persistence.class)
-	public void setSessionId(String sessionId) {
+	public void setSessionId(final String sessionId) {
 		this.sessionId = sessionId;
 	}
 
@@ -107,7 +107,7 @@ public class LoggedIn implements Entity {
 	}
 
 	@JsonView(View.Persistence.class)
-	public void setTimestamp(long timestamp) {
+	public void setTimestamp(final long timestamp) {
 		this.timestamp = timestamp;
 	}
 
@@ -117,7 +117,7 @@ public class LoggedIn implements Entity {
 	}
 
 	@JsonView(View.Persistence.class)
-	public void setVisitedSessions(List<VisitedRoom> visitedSessions) {
+	public void setVisitedSessions(final List<VisitedRoom> visitedSessions) {
 		this.visitedSessions = visitedSessions;
 	}
 
@@ -127,7 +127,7 @@ public class LoggedIn implements Entity {
 	}
 
 	@JsonView(View.Persistence.class)
-	public void setAnonymized(boolean anonymized) {
+	public void setAnonymized(final boolean anonymized) {
 		this.anonymized = anonymized;
 	}
 
diff --git a/src/main/java/de/thm/arsnova/model/migration/v2/Motd.java b/src/main/java/de/thm/arsnova/model/migration/v2/Motd.java
index cd834cceb4fe0b2e64832a7d14b73f8ff44f58ff..76ccbe954696d734f590c549e78fe731a330297a 100644
--- a/src/main/java/de/thm/arsnova/model/migration/v2/Motd.java
+++ b/src/main/java/de/thm/arsnova/model/migration/v2/Motd.java
@@ -157,7 +157,7 @@ public class Motd implements Entity {
 		// See http://stackoverflow.com/a/113600
 		final int prim = 37;
 
-		int result = 42;
+		final int result = 42;
 		return prim * result + this.motdkey.hashCode();
 	}
 
@@ -166,7 +166,7 @@ public class Motd implements Entity {
 		if (obj == null || !obj.getClass().equals(this.getClass())) {
 			return false;
 		}
-		Motd other = (Motd) obj;
+		final Motd other = (Motd) obj;
 		return this.getMotdkey().equals(other.getMotdkey());
 	}
 }
diff --git a/src/main/java/de/thm/arsnova/model/migration/v2/MotdList.java b/src/main/java/de/thm/arsnova/model/migration/v2/MotdList.java
index 27ba44b0c8d5bb634e842270306227338048e081..bc5d1ac942aa6d487fe7e959fa9e713ee2f0a771 100644
--- a/src/main/java/de/thm/arsnova/model/migration/v2/MotdList.java
+++ b/src/main/java/de/thm/arsnova/model/migration/v2/MotdList.java
@@ -62,7 +62,7 @@ public class MotdList implements Entity {
 	}
 
 	@JsonView({View.Persistence.class, View.Public.class})
-	public void setMotdkeys(String motds) {
+	public void setMotdkeys(final String motds) {
 		motdkeys = motds;
 	}
 
diff --git a/src/main/java/de/thm/arsnova/model/migration/v2/Room.java b/src/main/java/de/thm/arsnova/model/migration/v2/Room.java
index 552fb2cff380a93b7c8fee5dd3102c367d757c7f..e79a0531f2635058e57b036b3e71718f5e891409 100644
--- a/src/main/java/de/thm/arsnova/model/migration/v2/Room.java
+++ b/src/main/java/de/thm/arsnova/model/migration/v2/Room.java
@@ -182,7 +182,7 @@ public class Room implements Entity {
 	}
 
 	@JsonView(View.Persistence.class)
-	public void setCreationTime(long creationTime) {
+	public void setCreationTime(final long creationTime) {
 		this.creationTime = creationTime;
 	}
 
@@ -193,7 +193,7 @@ public class Room implements Entity {
 	}
 
 	@JsonView({View.Persistence.class, View.Public.class})
-	public void setLearningProgressOptions(ScoreOptions learningProgressOptions) {
+	public void setLearningProgressOptions(final ScoreOptions learningProgressOptions) {
 		this.learningProgressOptions = learningProgressOptions;
 	}
 
@@ -205,7 +205,7 @@ public class Room implements Entity {
 	}
 
 	@JsonView({View.Persistence.class, View.Public.class})
-	public void setFeatures(RoomFeature features) {
+	public void setFeatures(final RoomFeature features) {
 		this.features = features;
 	}
 
@@ -326,7 +326,7 @@ public class Room implements Entity {
 	}
 
 	@JsonView({View.Persistence.class, View.Public.class})
-	public void setFeedbackLock(Boolean lock) {
+	public void setFeedbackLock(final Boolean lock) {
 		this.feedbackLock = lock;
 	}
 
@@ -337,7 +337,7 @@ public class Room implements Entity {
 	}
 
 	@JsonView({View.Persistence.class, View.Public.class})
-	public void setFlipFlashcards(Boolean flip) {
+	public void setFlipFlashcards(final Boolean flip) {
 		this.flipFlashcards = flip;
 	}
 
@@ -364,11 +364,11 @@ public class Room implements Entity {
 	}
 
 	@Override
-	public boolean equals(Object obj) {
+	public boolean equals(final Object obj) {
 		if (obj == null || !obj.getClass().equals(this.getClass())) {
 			return false;
 		}
-		Room other = (Room) obj;
+		final Room other = (Room) obj;
 		return this.keyword.equals(other.keyword);
 	}
 
diff --git a/src/main/java/de/thm/arsnova/model/migration/v2/RoomFeature.java b/src/main/java/de/thm/arsnova/model/migration/v2/RoomFeature.java
index 568fcbf65acde9be14ba48e42aa8fc9e02b5f2e1..2ab9711bd0bcdfc163f7b0edf9ca9821e81c1176 100644
--- a/src/main/java/de/thm/arsnova/model/migration/v2/RoomFeature.java
+++ b/src/main/java/de/thm/arsnova/model/migration/v2/RoomFeature.java
@@ -51,7 +51,7 @@ public class RoomFeature implements Serializable {
 	private boolean flashcardFeature = false;
 	private boolean slides = false;
 
-	public RoomFeature(RoomFeature features) {
+	public RoomFeature(final RoomFeature features) {
 		this();
 		if (features != null) {
 			this.custom = features.custom;
@@ -84,7 +84,7 @@ public class RoomFeature implements Serializable {
 	}
 
 	@JsonView({View.Persistence.class, View.Public.class})
-	public void setLecture(boolean lecture) {
+	public void setLecture(final boolean lecture) {
 		this.lecture = lecture;
 	}
 
@@ -95,7 +95,7 @@ public class RoomFeature implements Serializable {
 	}
 
 	@JsonView({View.Persistence.class, View.Public.class})
-	public void setJitt(boolean jitt) {
+	public void setJitt(final boolean jitt) {
 		this.jitt = jitt;
 	}
 
@@ -106,7 +106,7 @@ public class RoomFeature implements Serializable {
 	}
 
 	@JsonView({View.Persistence.class, View.Public.class})
-	public void setFeedback(boolean feedback) {
+	public void setFeedback(final boolean feedback) {
 		this.feedback = feedback;
 	}
 
@@ -117,7 +117,7 @@ public class RoomFeature implements Serializable {
 	}
 
 	@JsonView({View.Persistence.class, View.Public.class})
-	public void setInterposed(boolean interposed) {
+	public void setInterposed(final boolean interposed) {
 		this.interposed = interposed;
 	}
 
@@ -128,7 +128,7 @@ public class RoomFeature implements Serializable {
 	}
 
 	@JsonView({View.Persistence.class, View.Public.class})
-	public void setPi(boolean pi) {
+	public void setPi(final boolean pi) {
 		this.pi = pi;
 	}
 
@@ -139,7 +139,7 @@ public class RoomFeature implements Serializable {
 	}
 
 	@JsonView({View.Persistence.class, View.Public.class})
-	public void setLearningProgress(boolean learningProgress) {
+	public void setLearningProgress(final boolean learningProgress) {
 		this.learningProgress = learningProgress;
 	}
 
@@ -149,7 +149,7 @@ public class RoomFeature implements Serializable {
 	}
 
 	@JsonView({View.Persistence.class, View.Public.class})
-	public void setCustom(boolean custom) {
+	public void setCustom(final boolean custom) {
 		this.custom = custom;
 	}
 
@@ -159,7 +159,7 @@ public class RoomFeature implements Serializable {
 	}
 
 	@JsonView({View.Persistence.class, View.Public.class})
-	public void setClicker(boolean clicker) {
+	public void setClicker(final boolean clicker) {
 		this.clicker = clicker;
 	}
 
@@ -169,7 +169,7 @@ public class RoomFeature implements Serializable {
 	}
 
 	@JsonView({View.Persistence.class, View.Public.class})
-	public void setPeerGrading(boolean peerGrading) {
+	public void setPeerGrading(final boolean peerGrading) {
 		this.peerGrading = peerGrading;
 	}
 
@@ -179,7 +179,7 @@ public class RoomFeature implements Serializable {
 	}
 
 	@JsonView({View.Persistence.class, View.Public.class})
-	public void setFlashcardFeature(boolean flashcardFeature) {
+	public void setFlashcardFeature(final boolean flashcardFeature) {
 		this.flashcardFeature = flashcardFeature;
 	}
 
@@ -189,7 +189,7 @@ public class RoomFeature implements Serializable {
 	}
 
 	@JsonView({View.Persistence.class, View.Public.class})
-	public void setFlashcard(boolean flashcard) {
+	public void setFlashcard(final boolean flashcard) {
 		this.flashcard = flashcard;
 	}
 
@@ -199,7 +199,7 @@ public class RoomFeature implements Serializable {
 	}
 
 	@JsonView({View.Persistence.class, View.Public.class})
-	public void setTotal(boolean total) {
+	public void setTotal(final boolean total) {
 		this.total = total;
 	}
 
@@ -209,7 +209,7 @@ public class RoomFeature implements Serializable {
 	}
 
 	@JsonView({View.Persistence.class, View.Public.class})
-	public void setLiveFeedback(boolean liveFeedback) {
+	public void setLiveFeedback(final boolean liveFeedback) {
 		this.liveFeedback = liveFeedback;
 	}
 
@@ -219,7 +219,7 @@ public class RoomFeature implements Serializable {
 	}
 
 	@JsonView({View.Persistence.class, View.Public.class})
-	public void setInterposedFeedback(boolean interposedFeedback) {
+	public void setInterposedFeedback(final boolean interposedFeedback) {
 		this.interposedFeedback = interposedFeedback;
 	}
 
@@ -229,7 +229,7 @@ public class RoomFeature implements Serializable {
 	}
 
 	@JsonView({View.Persistence.class, View.Public.class})
-	public void setLiveClicker(boolean liveClicker) {
+	public void setLiveClicker(final boolean liveClicker) {
 		this.liveClicker = liveClicker;
 	}
 
@@ -239,7 +239,7 @@ public class RoomFeature implements Serializable {
 	}
 
 	@JsonView({View.Persistence.class, View.Public.class})
-	public void setTwitterWall(boolean twitterWall) {
+	public void setTwitterWall(final boolean twitterWall) {
 		this.twitterWall = twitterWall;
 	}
 
@@ -249,7 +249,7 @@ public class RoomFeature implements Serializable {
 	}
 
 	@JsonView({View.Persistence.class, View.Public.class})
-	public void setSlides(boolean slides) {
+	public void setSlides(final boolean slides) {
 		this.slides = slides;
 	}
 
diff --git a/src/main/java/de/thm/arsnova/model/migration/v2/RoomInfo.java b/src/main/java/de/thm/arsnova/model/migration/v2/RoomInfo.java
index c24129e40d2c9df0631ac4e86efa6273a8a82de2..e127e88d71cfe39acaa0fce634ca1e8ac68040f9 100644
--- a/src/main/java/de/thm/arsnova/model/migration/v2/RoomInfo.java
+++ b/src/main/java/de/thm/arsnova/model/migration/v2/RoomInfo.java
@@ -49,7 +49,7 @@ public class RoomInfo {
 	private int numUnreadComments;
 	private int numUnanswered;
 
-	public RoomInfo(Room room) {
+	public RoomInfo(final Room room) {
 		this.name = room.getName();
 		this.shortName = room.getShortName();
 		this.keyword = room.getKeyword();
@@ -65,9 +65,9 @@ public class RoomInfo {
 
 	}
 
-	public static List<RoomInfo> fromSessionList(List<Room> sessions) {
-		List<RoomInfo> infos = new ArrayList<>();
-		for (Room s : sessions) {
+	public static List<RoomInfo> fromSessionList(final List<Room> sessions) {
+		final List<RoomInfo> infos = new ArrayList<>();
+		for (final Room s : sessions) {
 			infos.add(new RoomInfo(s));
 		}
 		return infos;
@@ -79,7 +79,7 @@ public class RoomInfo {
 		return name;
 	}
 
-	public void setName(String name) {
+	public void setName(final String name) {
 		this.name = name;
 	}
 
@@ -89,7 +89,7 @@ public class RoomInfo {
 		return shortName;
 	}
 
-	public void setShortName(String shortName) {
+	public void setShortName(final String shortName) {
 		this.shortName = shortName;
 	}
 
@@ -99,7 +99,7 @@ public class RoomInfo {
 		return keyword;
 	}
 
-	public void setKeyword(String keyword) {
+	public void setKeyword(final String keyword) {
 		this.keyword = keyword;
 	}
 
@@ -109,7 +109,7 @@ public class RoomInfo {
 		return active;
 	}
 
-	public void setActive(boolean active) {
+	public void setActive(final boolean active) {
 		this.active = active;
 	}
 
@@ -119,7 +119,7 @@ public class RoomInfo {
 		return courseType;
 	}
 
-	public void setCourseType(String courseType) {
+	public void setCourseType(final String courseType) {
 		this.courseType = courseType;
 	}
 
@@ -129,7 +129,7 @@ public class RoomInfo {
 		return sessionType;
 	}
 
-	public void setSessionType(String sessionType) {
+	public void setSessionType(final String sessionType) {
 		this.sessionType = sessionType;
 	}
 
@@ -139,7 +139,7 @@ public class RoomInfo {
 		return ppLevel;
 	}
 
-	public void setPpLevel(String ppLevel) {
+	public void setPpLevel(final String ppLevel) {
 		this.ppLevel = ppLevel;
 	}
 
@@ -149,7 +149,7 @@ public class RoomInfo {
 		return ppSubject;
 	}
 
-	public void setPpSubject(String ppSubject) {
+	public void setPpSubject(final String ppSubject) {
 		this.ppSubject = ppSubject;
 	}
 
@@ -159,7 +159,7 @@ public class RoomInfo {
 		return numQuestions;
 	}
 
-	public void setNumQuestions(int numQuestions) {
+	public void setNumQuestions(final int numQuestions) {
 		this.numQuestions = numQuestions;
 	}
 
@@ -169,7 +169,7 @@ public class RoomInfo {
 		return numAnswers;
 	}
 
-	public void setNumAnswers(int numAnswers) {
+	public void setNumAnswers(final int numAnswers) {
 		this.numAnswers = numAnswers;
 	}
 
@@ -181,7 +181,7 @@ public class RoomInfo {
 	}
 
 	/* Still named "Interposed" instead of "Comments" here for compatibilty reasons. */
-	public void setNumInterposed(int numComments) {
+	public void setNumInterposed(final int numComments) {
 		this.numComments = numComments;
 	}
 
@@ -191,7 +191,7 @@ public class RoomInfo {
 		return numUnanswered;
 	}
 
-	public void setNumUnanswered(int numUnanswered) {
+	public void setNumUnanswered(final int numUnanswered) {
 		this.numUnanswered = numUnanswered;
 	}
 
@@ -201,7 +201,7 @@ public class RoomInfo {
 		return creationTime;
 	}
 
-	public void setCreationTime(long creationTime) {
+	public void setCreationTime(final long creationTime) {
 		this.creationTime = creationTime;
 	}
 
@@ -213,7 +213,7 @@ public class RoomInfo {
 	}
 
 	/* Still named "Interposed" instead of "Comments" here for compatibilty reasons. */
-	public void setNumUnredInterposed(int numUnreadComments) {
+	public void setNumUnredInterposed(final int numUnreadComments) {
 		this.numUnreadComments = numUnreadComments;
 	}
 
@@ -227,7 +227,7 @@ public class RoomInfo {
 	}
 
 	@Override
-	public boolean equals(Object obj) {
+	public boolean equals(final Object obj) {
 		// auto generated!
 		if (this == obj) {
 			return true;
@@ -238,7 +238,7 @@ public class RoomInfo {
 		if (getClass() != obj.getClass()) {
 			return false;
 		}
-		RoomInfo other = (RoomInfo) obj;
+		final RoomInfo other = (RoomInfo) obj;
 		if (keyword == null) {
 			if (other.keyword != null) {
 				return false;
diff --git a/src/main/java/de/thm/arsnova/model/migration/v2/VisitedRoom.java b/src/main/java/de/thm/arsnova/model/migration/v2/VisitedRoom.java
index e0ae732c22aacd9b4af11da2f4ce75b17f1b17d3..2f7385c674d7a54c6db1481dcca2f44995dd5d2e 100644
--- a/src/main/java/de/thm/arsnova/model/migration/v2/VisitedRoom.java
+++ b/src/main/java/de/thm/arsnova/model/migration/v2/VisitedRoom.java
@@ -38,7 +38,7 @@ public class VisitedRoom {
 	public VisitedRoom() {
 	}
 
-	public VisitedRoom(Room s) {
+	public VisitedRoom(final Room s) {
 		this.id = s.getId();
 		this.name = s.getName();
 		this.keyword = s.getKeyword();
@@ -60,7 +60,7 @@ public class VisitedRoom {
 	}
 
 	@JsonView({View.Persistence.class, View.Public.class})
-	public void setName(String name) {
+	public void setName(final String name) {
 		this.name = name;
 	}
 
@@ -70,7 +70,7 @@ public class VisitedRoom {
 	}
 
 	@JsonView({View.Persistence.class, View.Public.class})
-	public void setKeyword(String keyword) {
+	public void setKeyword(final String keyword) {
 		this.keyword = keyword;
 	}
 
diff --git a/src/main/java/de/thm/arsnova/model/serialization/CouchDbDocumentModule.java b/src/main/java/de/thm/arsnova/model/serialization/CouchDbDocumentModule.java
index 5463656449319420916c9b65c463063b4288a310..c01dbd81e237aa69fac9ab5b7b34c83375ab4b7d 100644
--- a/src/main/java/de/thm/arsnova/model/serialization/CouchDbDocumentModule.java
+++ b/src/main/java/de/thm/arsnova/model/serialization/CouchDbDocumentModule.java
@@ -28,7 +28,7 @@ public class CouchDbDocumentModule extends SimpleModule {
 	}
 
 	@Override
-	public void setupModule(SetupContext context) {
+	public void setupModule(final SetupContext context) {
 		context.setMixInAnnotations(Entity.class, CouchDbDocumentMixIn.class);
 		context.setMixInAnnotations(de.thm.arsnova.model.migration.v2.Entity.class, CouchDbDocumentV2MixIn.class);
 	}
diff --git a/src/main/java/de/thm/arsnova/model/serialization/CouchDbObjectMapperFactory.java b/src/main/java/de/thm/arsnova/model/serialization/CouchDbObjectMapperFactory.java
index b53860bf647c39cc1d678cd70145b64040323fb3..0ac9a9e787453806fe313917822d6946af92e2dd 100644
--- a/src/main/java/de/thm/arsnova/model/serialization/CouchDbObjectMapperFactory.java
+++ b/src/main/java/de/thm/arsnova/model/serialization/CouchDbObjectMapperFactory.java
@@ -24,8 +24,8 @@ import org.ektorp.CouchDbConnector;
 import org.ektorp.impl.StdObjectMapperFactory;
 
 public class CouchDbObjectMapperFactory extends StdObjectMapperFactory {
-	public ObjectMapper createObjectMapper(CouchDbConnector connector) {
-		ObjectMapper om = super.createObjectMapper(connector);
+	public ObjectMapper createObjectMapper(final CouchDbConnector connector) {
+		final ObjectMapper om = super.createObjectMapper(connector);
 		om.configure(MapperFeature.DEFAULT_VIEW_INCLUSION, false);
 		om.setConfig(om.getSerializationConfig().withView(View.Persistence.class));
 		om.registerModule(new CouchDbDocumentModule());
diff --git a/src/main/java/de/thm/arsnova/model/serialization/CouchDbTypeFieldConverter.java b/src/main/java/de/thm/arsnova/model/serialization/CouchDbTypeFieldConverter.java
index 498d88ecba65c990c80eb442e1940ceda6586ca8..58b0e6f7a471a68e5179f7fb8b89ce41e0b03969 100644
--- a/src/main/java/de/thm/arsnova/model/serialization/CouchDbTypeFieldConverter.java
+++ b/src/main/java/de/thm/arsnova/model/serialization/CouchDbTypeFieldConverter.java
@@ -27,17 +27,17 @@ import de.thm.arsnova.model.Entity;
 public class CouchDbTypeFieldConverter implements Converter<Class<? extends Entity>, String> {
 
 	@Override
-	public String convert(Class<? extends Entity> clazz) {
+	public String convert(final Class<? extends Entity> clazz) {
 		return clazz.getSimpleName();
 	}
 
 	@Override
-	public JavaType getInputType(TypeFactory typeFactory) {
+	public JavaType getInputType(final TypeFactory typeFactory) {
 		return typeFactory.constructGeneralizedType(typeFactory.constructType(Class.class), Entity.class);
 	}
 
 	@Override
-	public JavaType getOutputType(TypeFactory typeFactory) {
+	public JavaType getOutputType(final TypeFactory typeFactory) {
 		return typeFactory.constructType(String.class);
 	}
 }
diff --git a/src/main/java/de/thm/arsnova/model/serialization/CouchDbTypeFieldV2Converter.java b/src/main/java/de/thm/arsnova/model/serialization/CouchDbTypeFieldV2Converter.java
index 00fa737fa8d1018147f3921721397259330782ee..6a16b242996584f46a93bc3a1864f6ef47531252 100644
--- a/src/main/java/de/thm/arsnova/model/serialization/CouchDbTypeFieldV2Converter.java
+++ b/src/main/java/de/thm/arsnova/model/serialization/CouchDbTypeFieldV2Converter.java
@@ -49,17 +49,17 @@ public class CouchDbTypeFieldV2Converter implements Converter<Class<? extends En
 	}
 
 	@Override
-	public String convert(Class<? extends Entity> clazz) {
+	public String convert(final Class<? extends Entity> clazz) {
 		return typeMapping.get(clazz);
 	}
 
 	@Override
-	public JavaType getInputType(TypeFactory typeFactory) {
+	public JavaType getInputType(final TypeFactory typeFactory) {
 		return typeFactory.constructGeneralizedType(typeFactory.constructType(Class.class), Entity.class);
 	}
 
 	@Override
-	public JavaType getOutputType(TypeFactory typeFactory) {
+	public JavaType getOutputType(final TypeFactory typeFactory) {
 		return typeFactory.constructType(String.class);
 	}
 }
diff --git a/src/main/java/de/thm/arsnova/model/serialization/FormatAnswerTypeIdResolver.java b/src/main/java/de/thm/arsnova/model/serialization/FormatAnswerTypeIdResolver.java
index a415be14a990e5d44fa836afd95f9ca4652b7b14..81ed4117dc2c491668170dafa0651fbaaf07cb87 100644
--- a/src/main/java/de/thm/arsnova/model/serialization/FormatAnswerTypeIdResolver.java
+++ b/src/main/java/de/thm/arsnova/model/serialization/FormatAnswerTypeIdResolver.java
@@ -47,7 +47,7 @@ public class FormatAnswerTypeIdResolver extends TypeIdResolverBase {
 
 	@Override
 	public JavaType typeFromId(final DatabindContext context, final String id) throws IOException {
-		Content.Format format = Content.Format.valueOf(id);
+		final Content.Format format = Content.Format.valueOf(id);
 		switch (format) {
 			case BINARY:
 				return TypeFactory.defaultInstance().constructType(ChoiceAnswer.class);
diff --git a/src/main/java/de/thm/arsnova/model/serialization/FormatContentTypeIdResolver.java b/src/main/java/de/thm/arsnova/model/serialization/FormatContentTypeIdResolver.java
index d52dc1f66ad1fda87fb2da2b9fedc9c22e36de63..209ebce240272ac1e8225431108fee0abafc9d12 100644
--- a/src/main/java/de/thm/arsnova/model/serialization/FormatContentTypeIdResolver.java
+++ b/src/main/java/de/thm/arsnova/model/serialization/FormatContentTypeIdResolver.java
@@ -45,7 +45,7 @@ public class FormatContentTypeIdResolver extends TypeIdResolverBase {
 
 	@Override
 	public JavaType typeFromId(final DatabindContext context, final String id) throws IOException {
-		Content.Format format = Content.Format.valueOf(id);
+		final Content.Format format = Content.Format.valueOf(id);
 		switch (format) {
 			case BINARY:
 				return TypeFactory.defaultInstance().constructType(ChoiceQuestionContent.class);
diff --git a/src/main/java/de/thm/arsnova/model/transport/ImportExportContainer.java b/src/main/java/de/thm/arsnova/model/transport/ImportExportContainer.java
index 1e4f33659292581398c7c1cbf8eac313b2d519ec..12e6239070a9ef430d15bae4b12b280e50f4dea4 100644
--- a/src/main/java/de/thm/arsnova/model/transport/ImportExportContainer.java
+++ b/src/main/java/de/thm/arsnova/model/transport/ImportExportContainer.java
@@ -64,7 +64,7 @@ public class ImportExportContainer {
 		return session;
 	}
 
-	public void setSession(ImportExportRoom session) {
+	public void setSession(final ImportExportRoom session) {
 		this.session = session;
 	}
 
@@ -74,7 +74,7 @@ public class ImportExportContainer {
 		return questions;
 	}
 
-	public void setQuestions(List<ImportExportContent> questions) {
+	public void setQuestions(final List<ImportExportContent> questions) {
 		this.questions = questions;
 	}
 
@@ -84,7 +84,7 @@ public class ImportExportContainer {
 		return feedbackQuestions;
 	}
 
-	public void setFeedbackQuestions(List<Comment> feedbackQuestions) {
+	public void setFeedbackQuestions(final List<Comment> feedbackQuestions) {
 		this.feedbackQuestions = feedbackQuestions;
 	}
 
@@ -93,7 +93,7 @@ public class ImportExportContainer {
 		return motds;
 	}
 
-	public void setMotds(List<Motd> motdList) {
+	public void setMotds(final List<Motd> motdList) {
 		this.motds = motdList;
 	}
 
@@ -102,7 +102,7 @@ public class ImportExportContainer {
 		return session.sessionFeature;
 	}
 
-	public void setSessionFeature(RoomFeature roomFeature) {
+	public void setSessionFeature(final RoomFeature roomFeature) {
 		session.sessionFeature = roomFeature;
 	}
 
@@ -111,29 +111,29 @@ public class ImportExportContainer {
 		return sessionInfo;
 	}
 
-	public void setSessionInfo(RoomInfo roomInfo) {
+	public void setSessionInfo(final RoomInfo roomInfo) {
 		sessionInfo = roomInfo;
 	}
 
-	public void setSessionFromSessionObject(Room s) {
-		ImportExportRoom importExportRoom = new ImportExportRoom();
+	public void setSessionFromSessionObject(final Room s) {
+		final ImportExportRoom importExportRoom = new ImportExportRoom();
 		importExportRoom.setName(s.getName());
 		importExportRoom.setShortName(s.getShortName());
 		importExportRoom.setActive(s.isActive());
-		PublicPool p = new PublicPool();
+		final PublicPool p = new PublicPool();
 		p.setPpFromSession(s);
 		importExportRoom.setPublicPool(p);
 		importExportRoom.sessionFeature = s.getFeatures();
 		session = importExportRoom;
 	}
 
-	public void addQuestionWithAnswers(Content content, List<Answer> answerList) {
-		ImportExportContent importExportContent = new ImportExportContent(content);
+	public void addQuestionWithAnswers(final Content content, final List<Answer> answerList) {
+		final ImportExportContent importExportContent = new ImportExportContent(content);
 		importExportContent.setAnswers(answerList);
 		questions.add(importExportContent);
 	}
 
-	public Room generateSessionEntity(ClientAuthentication user) {
+	public Room generateSessionEntity(final ClientAuthentication user) {
 		final Room room = new Room();
 		// import fields
 		room.setActive(session.isActive());
@@ -169,7 +169,7 @@ public class ImportExportContainer {
 
 		}
 
-		public ImportExportContent(Content content) {
+		public ImportExportContent(final Content content) {
 			setQuestionType(content.getQuestionType());
 			setQuestionVariant(content.getQuestionVariant());
 			setSubject(content.getSubject());
@@ -231,7 +231,7 @@ public class ImportExportContainer {
 			return answers;
 		}
 
-		public void setAnswers(List<Answer> answers) {
+		public void setAnswers(final List<Answer> answers) {
 			this.answers = answers;
 		}
 	}
@@ -256,7 +256,7 @@ public class ImportExportContainer {
 			return name;
 		}
 
-		public void setName(String name) {
+		public void setName(final String name) {
 			this.name = name;
 		}
 
@@ -266,7 +266,7 @@ public class ImportExportContainer {
 			return sessionType;
 		}
 
-		public void setSessionType(String sessionType) {
+		public void setSessionType(final String sessionType) {
 			this.sessionType = sessionType;
 		}
 
@@ -276,7 +276,7 @@ public class ImportExportContainer {
 			return shortName;
 		}
 
-		public void setShortName(String shortName) {
+		public void setShortName(final String shortName) {
 			this.shortName = shortName;
 		}
 
@@ -286,7 +286,7 @@ public class ImportExportContainer {
 			return active;
 		}
 
-		public void setActive(boolean active) {
+		public void setActive(final boolean active) {
 			this.active = active;
 		}
 
@@ -296,7 +296,7 @@ public class ImportExportContainer {
 			return publicPool;
 		}
 
-		public void setPublicPool(PublicPool publicPool) {
+		public void setPublicPool(final PublicPool publicPool) {
 			this.publicPool = publicPool;
 		}
 
@@ -305,7 +305,7 @@ public class ImportExportContainer {
 			return this.sessionFeature;
 		}
 
-		public void setSessionFeature(RoomFeature roomFeature) {
+		public void setSessionFeature(final RoomFeature roomFeature) {
 			this.sessionFeature = roomFeature;
 		}
 	}
@@ -334,7 +334,7 @@ public class ImportExportContainer {
 
 		private String shortName;
 
-		public void setPpFromSession(Room room) {
+		public void setPpFromSession(final Room room) {
 			ppAuthorName = room.getPpAuthorName();
 			ppAuthorMail = room.getPpAuthorMail();
 			ppUniversity = room.getPpUniversity();
@@ -354,7 +354,7 @@ public class ImportExportContainer {
 			return ppAuthorName;
 		}
 
-		public void setPpAuthorName(String ppAuthorName) {
+		public void setPpAuthorName(final String ppAuthorName) {
 			this.ppAuthorName = ppAuthorName;
 		}
 
@@ -364,7 +364,7 @@ public class ImportExportContainer {
 			return ppAuthorMail;
 		}
 
-		public void setPpAuthorMail(String ppAuthorMail) {
+		public void setPpAuthorMail(final String ppAuthorMail) {
 			this.ppAuthorMail = ppAuthorMail;
 		}
 
@@ -374,7 +374,7 @@ public class ImportExportContainer {
 			return ppUniversity;
 		}
 
-		public void setPpUniversity(String ppUniversity) {
+		public void setPpUniversity(final String ppUniversity) {
 			this.ppUniversity = ppUniversity;
 		}
 
@@ -384,7 +384,7 @@ public class ImportExportContainer {
 			return ppLogo;
 		}
 
-		public void setPpLogo(String ppLogo) {
+		public void setPpLogo(final String ppLogo) {
 			this.ppLogo = ppLogo;
 		}
 
@@ -394,7 +394,7 @@ public class ImportExportContainer {
 			return ppSubject;
 		}
 
-		public void setPpSubject(String ppSubject) {
+		public void setPpSubject(final String ppSubject) {
 			this.ppSubject = ppSubject;
 		}
 
@@ -404,7 +404,7 @@ public class ImportExportContainer {
 			return ppLicense;
 		}
 
-		public void setPpLicense(String ppLicense) {
+		public void setPpLicense(final String ppLicense) {
 			this.ppLicense = ppLicense;
 		}
 
@@ -414,7 +414,7 @@ public class ImportExportContainer {
 			return ppLevel;
 		}
 
-		public void setPpLevel(String ppLevel) {
+		public void setPpLevel(final String ppLevel) {
 			this.ppLevel = ppLevel;
 		}
 
@@ -424,7 +424,7 @@ public class ImportExportContainer {
 			return ppDescription;
 		}
 
-		public void setPpDescription(String ppDescription) {
+		public void setPpDescription(final String ppDescription) {
 			this.ppDescription = ppDescription;
 		}
 
@@ -434,7 +434,7 @@ public class ImportExportContainer {
 			return ppFaculty;
 		}
 
-		public void setPpFaculty(String ppFaculty) {
+		public void setPpFaculty(final String ppFaculty) {
 			this.ppFaculty = ppFaculty;
 		}
 
@@ -444,7 +444,7 @@ public class ImportExportContainer {
 			return name;
 		}
 
-		public void setName(String name) {
+		public void setName(final String name) {
 			this.name = name;
 		}
 
@@ -454,7 +454,7 @@ public class ImportExportContainer {
 			return shortName;
 		}
 
-		public void setShortName(String shortName) {
+		public void setShortName(final String shortName) {
 			this.shortName = shortName;
 		}
 	}
diff --git a/src/main/java/de/thm/arsnova/model/transport/ScoreStatistics.java b/src/main/java/de/thm/arsnova/model/transport/ScoreStatistics.java
index 63dc193d59006c9ffc9350daf1340daa743fc290..97916d4189adfe76aa008e88b176d92915c2d065 100644
--- a/src/main/java/de/thm/arsnova/model/transport/ScoreStatistics.java
+++ b/src/main/java/de/thm/arsnova/model/transport/ScoreStatistics.java
@@ -48,7 +48,7 @@ public class ScoreStatistics {
 		return courseProgress;
 	}
 
-	public void setCourseProgress(int courseProgress) {
+	public void setCourseProgress(final int courseProgress) {
 		this.courseProgress = courseProgress;
 	}
 
@@ -58,7 +58,7 @@ public class ScoreStatistics {
 		return myProgress;
 	}
 
-	public void setMyProgress(int myProgress) {
+	public void setMyProgress(final int myProgress) {
 		this.myProgress = myProgress;
 	}
 
@@ -68,7 +68,7 @@ public class ScoreStatistics {
 		return numQuestions;
 	}
 
-	public void setNumQuestions(int numQuestions) {
+	public void setNumQuestions(final int numQuestions) {
 		this.numQuestions = numQuestions;
 	}
 
@@ -77,7 +77,7 @@ public class ScoreStatistics {
 		return numerator;
 	}
 
-	public void setNumerator(int numerator) {
+	public void setNumerator(final int numerator) {
 		this.numerator = numerator;
 	}
 
@@ -86,7 +86,7 @@ public class ScoreStatistics {
 		return denominator;
 	}
 
-	public void setDenominator(int denominator) {
+	public void setDenominator(final int denominator) {
 		this.denominator = denominator;
 	}
 
@@ -96,7 +96,7 @@ public class ScoreStatistics {
 		return numUsers;
 	}
 
-	public void setNumUsers(int numUsers) {
+	public void setNumUsers(final int numUsers) {
 		this.numUsers = numUsers;
 	}
 
@@ -112,7 +112,7 @@ public class ScoreStatistics {
 	}
 
 	@Override
-	public boolean equals(Object obj) {
+	public boolean equals(final Object obj) {
 		// auto generated!
 		if (this == obj) {
 			return true;
@@ -123,7 +123,7 @@ public class ScoreStatistics {
 		if (getClass() != obj.getClass()) {
 			return false;
 		}
-		ScoreStatistics other = (ScoreStatistics) obj;
+		final ScoreStatistics other = (ScoreStatistics) obj;
 		if (courseProgress != other.courseProgress) {
 			return false;
 		}
diff --git a/src/main/java/de/thm/arsnova/persistence/LogEntryRepository.java b/src/main/java/de/thm/arsnova/persistence/LogEntryRepository.java
index 368211ba9484c92285ced62c296c698eacd4170b..6af52845543df4edf86717a8b63835c05182a50d 100644
--- a/src/main/java/de/thm/arsnova/persistence/LogEntryRepository.java
+++ b/src/main/java/de/thm/arsnova/persistence/LogEntryRepository.java
@@ -70,7 +70,7 @@ public interface LogEntryRepository {
 		if (rawPayload.length % 2 != 0) {
 			throw new IllegalArgumentException("");
 		}
-		Map<String, Object> payload = new HashMap<>();
+		final Map<String, Object> payload = new HashMap<>();
 		for (int i = 0; i < rawPayload.length; i += 2) {
 			payload.put((String) rawPayload[i], rawPayload[i + 1]);
 		}
diff --git a/src/main/java/de/thm/arsnova/persistence/couchdb/CouchDbAnswerRepository.java b/src/main/java/de/thm/arsnova/persistence/couchdb/CouchDbAnswerRepository.java
index 8c1c67d41bb98a0a621373d83e7ed8b9308c103c..a6b70c5d398951eda9d9178365fbd33402a6de4d 100644
--- a/src/main/java/de/thm/arsnova/persistence/couchdb/CouchDbAnswerRepository.java
+++ b/src/main/java/de/thm/arsnova/persistence/couchdb/CouchDbAnswerRepository.java
@@ -100,14 +100,14 @@ public class CouchDbAnswerRepository extends CouchDbCrudRepository<Answer>
 				/* Answers:
 				 * Extract selected indexes from key[2] and count from value */
 				final JsonNode jsonIndexes = d.getKeyAsNode().get(2);
-				Integer[] indexes = new Integer[jsonIndexes.size()];
+				final Integer[] indexes = new Integer[jsonIndexes.size()];
 				/* Count independently */
 				for (int i = 0; i < jsonIndexes.size(); i++) {
 					indexes[i] = jsonIndexes.get(i).asInt();
 					independentCounts.set(indexes[i], independentCounts.get(indexes[i]) + d.getValueAsInt());
 				}
 				/* Count option combinations */
-				AnswerStatistics.RoundStatistics.Combination combination =
+				final AnswerStatistics.RoundStatistics.Combination combination =
 						combinations.getOrDefault(Arrays.asList(indexes),
 								new AnswerStatistics.RoundStatistics.Combination(
 										Arrays.asList(indexes), d.getValueAsInt()));
@@ -117,7 +117,7 @@ public class CouchDbAnswerRepository extends CouchDbCrudRepository<Answer>
 		}
 		roundStats.setIndependentCounts(independentCounts);
 		/* TODO: Review - might lead easily to IndexOutOfBoundsExceptions - use a Map instead? */
-		List<AnswerStatistics.RoundStatistics> roundStatisticsList = new ArrayList(Collections.nCopies(round, null));
+		final List<AnswerStatistics.RoundStatistics> roundStatisticsList = new ArrayList(Collections.nCopies(round, null));
 		roundStatisticsList.set(round - 1, roundStats);
 		stats.setRoundStatistics(roundStatisticsList);
 
diff --git a/src/main/java/de/thm/arsnova/persistence/couchdb/CouchDbCrudRepository.java b/src/main/java/de/thm/arsnova/persistence/couchdb/CouchDbCrudRepository.java
index d2c95ab4bf3664a7cd4a75e20dd2a0ecb942593c..9844e8ba84443d1938a79c1b59417abce74d520d 100644
--- a/src/main/java/de/thm/arsnova/persistence/couchdb/CouchDbCrudRepository.java
+++ b/src/main/java/de/thm/arsnova/persistence/couchdb/CouchDbCrudRepository.java
@@ -125,7 +125,7 @@ abstract class CouchDbCrudRepository<T extends Entity>
 
 	@Override
 	public void deleteById(final String id) {
-		T entity = get(id);
+		final T entity = get(id);
 		db.delete(id, entity.getRevision());
 	}
 
diff --git a/src/main/java/de/thm/arsnova/persistence/couchdb/CouchDbInitializer.java b/src/main/java/de/thm/arsnova/persistence/couchdb/CouchDbInitializer.java
index 0e5f7c168799f564fed67fabc763ca42eebabbe0..c055f3a4cdfece829d68e1388008e66dd7953616 100644
--- a/src/main/java/de/thm/arsnova/persistence/couchdb/CouchDbInitializer.java
+++ b/src/main/java/de/thm/arsnova/persistence/couchdb/CouchDbInitializer.java
@@ -78,7 +78,7 @@ public class CouchDbInitializer implements ResourceLoaderAware {
 
 		final PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
 		final Resource[] resources = resolver.getResources("classpath:couchdb/*.design.js");
-		for (Resource resource : resources) {
+		for (final Resource resource : resources) {
 			logger.debug("Loading CouchDB design doc: {}", resource.getFilename());
 			final String js = FileCopyUtils.copyToString(new InputStreamReader(resource.getInputStream()));
 			/* Reset designDoc before parsing a new one. */
@@ -108,7 +108,7 @@ public class CouchDbInitializer implements ResourceLoaderAware {
 			} catch (final DocumentNotFoundException e) {
 				logger.debug("Design doc {} will be created.", doc.get("_id"));
 				return true;
-			} catch (JsonProcessingException e) {
+			} catch (final JsonProcessingException e) {
 				logger.warn("Failed to serialize design doc {}.", doc.get("_id"), e);
 				return false;
 			}
@@ -119,7 +119,7 @@ public class CouchDbInitializer implements ResourceLoaderAware {
 		MigrationState state;
 		try {
 			state = connector.get(MigrationState.class, MigrationState.ID);
-		} catch (DocumentNotFoundException e) {
+		} catch (final DocumentNotFoundException e) {
 			logger.debug("No migration state found in database.", e);
 			if (connector.getDbInfo().getDocCount() > 0) {
 				/* TODO: use a custom exception */
@@ -144,7 +144,7 @@ public class CouchDbInitializer implements ResourceLoaderAware {
 	}
 
 	@EventListener
-	private void onApplicationEvent(ContextRefreshedEvent event) throws IOException, ScriptException {
+	private void onApplicationEvent(final ContextRefreshedEvent event) throws IOException, ScriptException {
 		/* Event is triggered more than once */
 		if (migrationStarted) {
 			return;
@@ -158,7 +158,7 @@ public class CouchDbInitializer implements ResourceLoaderAware {
 			createDesignDocs();
 			migrate(state);
 			statusService.removeMaintenanceReason(this.getClass());
-		} catch (DbAccessException e) {
+		} catch (final DbAccessException e) {
 			logger.error("Database is invalid.", e);
 			statusService.putMaintenanceReason(this.getClass(), "Invalid database");
 		}
diff --git a/src/main/java/de/thm/arsnova/persistence/couchdb/CouchDbRoomRepository.java b/src/main/java/de/thm/arsnova/persistence/couchdb/CouchDbRoomRepository.java
index 792dc8f56c20d2e0faf028d9f92280faba3caeb2..c3c186658f08e3ca154f6ac2fa812ad0ac89b780 100644
--- a/src/main/java/de/thm/arsnova/persistence/couchdb/CouchDbRoomRepository.java
+++ b/src/main/java/de/thm/arsnova/persistence/couchdb/CouchDbRoomRepository.java
@@ -91,7 +91,7 @@ public class CouchDbRoomRepository extends CouchDbCrudRepository<Room> implement
 				createQuery("by_lastactivity_for_guests").endKey(lastActivityBefore));
 		final int[] count = new int[3];
 
-		List<Room> rooms = new ArrayList<>();
+		final List<Room> rooms = new ArrayList<>();
 		for (final ViewResult.Row row : result.getRows()) {
 			final Room s = new Room();
 			s.setId(row.getId());
@@ -148,7 +148,7 @@ public class CouchDbRoomRepository extends CouchDbCrudRepository<Room> implement
 
 	@Override
 	public List<String> findIdsByOwnerId(final String ownerId) {
-		ViewResult result = db.queryView(createQuery("by_ownerid")
+		final ViewResult result = db.queryView(createQuery("by_ownerid")
 				.key(ownerId)
 				.includeDocs(false));
 
@@ -157,7 +157,7 @@ public class CouchDbRoomRepository extends CouchDbCrudRepository<Room> implement
 
 	@Override
 	public List<String> findIdsByModeratorId(final String moderatorId) {
-		ViewResult result = db.queryView(createQuery("by_moderators_containing_userid")
+		final ViewResult result = db.queryView(createQuery("by_moderators_containing_userid")
 				.key(moderatorId)
 				.includeDocs(false));
 
@@ -289,7 +289,7 @@ public class CouchDbRoomRepository extends CouchDbCrudRepository<Room> implement
 			if (unansweredQuestionsCountMap.containsKey(room.getId())) {
 				numUnanswered = unansweredQuestionsCountMap.get(room.getId());
 			}
-			RoomStatistics stats = new RoomStatistics();
+			final RoomStatistics stats = new RoomStatistics();
 			room.setStatistics(stats);
 			stats.setUnansweredContentCount(numUnanswered);
 		}
diff --git a/src/main/java/de/thm/arsnova/persistence/couchdb/CouchDbSessionStatisticsRepository.java b/src/main/java/de/thm/arsnova/persistence/couchdb/CouchDbSessionStatisticsRepository.java
index a309605704ea2325c997c9ad1bb234751b8ab6cf..9e733d29f0980c196319a76436cd572e3b0324a0 100644
--- a/src/main/java/de/thm/arsnova/persistence/couchdb/CouchDbSessionStatisticsRepository.java
+++ b/src/main/java/de/thm/arsnova/persistence/couchdb/CouchDbSessionStatisticsRepository.java
@@ -50,7 +50,7 @@ public class CouchDbSessionStatisticsRepository
 		}
 
 		// collect mapping (questionId -> max value)
-		for (ViewResult.Row row : maximumValueResult) {
+		for (final ViewResult.Row row : maximumValueResult) {
 			final String contentId = row.getKeyAsNode().get(1).asText();
 			final JsonNode value = row.getValueAsNode();
 			final int questionScore = value.get("value").asInt();
@@ -59,7 +59,7 @@ public class CouchDbSessionStatisticsRepository
 			courseScore.addQuestion(contentId, questionVariant, piRound, questionScore);
 		}
 		// collect mapping (questionId -> (user -> value))
-		for (ViewResult.Row row : answerSumResult) {
+		for (final ViewResult.Row row : answerSumResult) {
 			final String username = row.getKeyAsNode().get(1).asText();
 			final JsonNode value = row.getValueAsNode();
 			final String contentId = value.get("questionId").asText();
diff --git a/src/main/java/de/thm/arsnova/persistence/couchdb/CouchDbStatisticsRepository.java b/src/main/java/de/thm/arsnova/persistence/couchdb/CouchDbStatisticsRepository.java
index 5020e88420ca0995cae7e65a7b4bfbeb1a812527..88c9441bce6169b2702fbc3311d865427f54d062 100644
--- a/src/main/java/de/thm/arsnova/persistence/couchdb/CouchDbStatisticsRepository.java
+++ b/src/main/java/de/thm/arsnova/persistence/couchdb/CouchDbStatisticsRepository.java
@@ -84,14 +84,14 @@ public class CouchDbStatisticsRepository extends CouchDbRepositorySupport implem
 			}
 			if (!creatorResult.isEmpty()) {
 				final Set<String> creators = new HashSet<>();
-				for (ViewResult.Row row: statsResult.getRows()) {
+				for (final ViewResult.Row row: statsResult.getRows()) {
 					creators.add(row.getKey());
 				}
 				stats.setCreators(creators.size());
 			}
 			if (!studentUserResult.isEmpty()) {
 				final Set<String> students = new HashSet<>();
-				for (ViewResult.Row row: statsResult.getRows()) {
+				for (final ViewResult.Row row: statsResult.getRows()) {
 					students.add(row.getKey());
 				}
 				stats.setActiveStudents(students.size());
diff --git a/src/main/java/de/thm/arsnova/persistence/couchdb/CouchDbUserRepository.java b/src/main/java/de/thm/arsnova/persistence/couchdb/CouchDbUserRepository.java
index 819f74c4781945ccfbd4b4e7d40ee3fda6762d25..e2686688e2b2f5ea32adec8d059b0eba9a1bab9c 100644
--- a/src/main/java/de/thm/arsnova/persistence/couchdb/CouchDbUserRepository.java
+++ b/src/main/java/de/thm/arsnova/persistence/couchdb/CouchDbUserRepository.java
@@ -43,7 +43,7 @@ public class CouchDbUserRepository extends CouchDbCrudRepository<UserProfile> im
 		super(UserProfile.class, db, "by_id", createIfNotExists);
 	}
 
-	private void log(Object... strings) {
+	private void log(final Object... strings) {
 		/* TODO: method stub */
 	}
 
diff --git a/src/main/java/de/thm/arsnova/persistence/couchdb/migrations/MigrationExecutor.java b/src/main/java/de/thm/arsnova/persistence/couchdb/migrations/MigrationExecutor.java
index 9a7ee62dcbfc41427c64659321ff5694f6a579c0..24897a63d3041be95ea6bcaea9d80d1d4c22221f 100644
--- a/src/main/java/de/thm/arsnova/persistence/couchdb/migrations/MigrationExecutor.java
+++ b/src/main/java/de/thm/arsnova/persistence/couchdb/migrations/MigrationExecutor.java
@@ -49,7 +49,7 @@ public class MigrationExecutor {
 	}
 
 	public boolean runMigrations(@NonNull final MigrationState migrationState) {
-		List<Migration> pendingMigrations = migrations.stream()
+		final List<Migration> pendingMigrations = migrations.stream()
 				.filter(m -> !migrationState.getCompleted().contains(m.getId())).collect(Collectors.toList());
 		boolean stateChange = false;
 		if (migrationState.getActive() != null) {
@@ -57,7 +57,7 @@ public class MigrationExecutor {
 		}
 		logger.debug("Pending migrations: " + pendingMigrations.stream()
 				.map(Migration::getId).collect(Collectors.joining()));
-		for (Migration migration : pendingMigrations) {
+		for (final Migration migration : pendingMigrations) {
 			stateChange = true;
 			migrationState.setActive(migration.getId(), new Date());
 			migration.migrate();
diff --git a/src/main/java/de/thm/arsnova/persistence/couchdb/migrations/V2ToV3Migration.java b/src/main/java/de/thm/arsnova/persistence/couchdb/migrations/V2ToV3Migration.java
index cd376bce53528c754f02ef54a2e8d35e566ec6a0..adebf71a000ad244753e604c4d624ef8ac713380 100644
--- a/src/main/java/de/thm/arsnova/persistence/couchdb/migrations/V2ToV3Migration.java
+++ b/src/main/java/de/thm/arsnova/persistence/couchdb/migrations/V2ToV3Migration.java
@@ -108,7 +108,7 @@ public class V2ToV3Migration implements Migration {
 			migrateComments();
 			migrateContents();
 			migrateAnswers();
-		} catch (InterruptedException e) {
+		} catch (final InterruptedException e) {
 			throw new DbAccessException(e);
 		}
 		migrator.setIgnoreRevision(false);
@@ -125,7 +125,7 @@ public class V2ToV3Migration implements Migration {
 
 		filterSelector = new HashMap<>();
 		filterSelector.put("type", "userdetails");
-		Map<String, String> lockedFilter = new HashMap<>();
+		final Map<String, String> lockedFilter = new HashMap<>();
 		subFilterSelector = new HashMap<>();
 		subFilterSelector.put("$exists", false);
 		filterSelector.put("locked", subFilterSelector);
@@ -175,9 +175,9 @@ public class V2ToV3Migration implements Migration {
 	private void migrateUsers() throws InterruptedException {
 		waitForV2Index(USER_INDEX);
 		waitForV2Index(LOGGEDIN_INDEX);
-		Map<String, Object> queryOptions = new HashMap<>();
+		final Map<String, Object> queryOptions = new HashMap<>();
 		queryOptions.put("type", "userdetails");
-		MangoCouchDbConnector.MangoQuery query = new MangoCouchDbConnector.MangoQuery(queryOptions);
+		final MangoCouchDbConnector.MangoQuery query = new MangoCouchDbConnector.MangoQuery(queryOptions);
 		query.setIndexDocument(USER_INDEX);
 		query.setLimit(LIMIT);
 		String bookmark = null;
@@ -185,25 +185,26 @@ public class V2ToV3Migration implements Migration {
 		for (int skip = 0;; skip += LIMIT) {
 			logger.debug("Migration progress: {}, bookmark: {}", skip, bookmark);
 			query.setBookmark(bookmark);
-			List<UserProfile> profilesV3 = new ArrayList<>();
-			PagedMangoResponse<de.thm.arsnova.model.migration.v2.DbUser> response =
+			final List<UserProfile> profilesV3 = new ArrayList<>();
+			final PagedMangoResponse<de.thm.arsnova.model.migration.v2.DbUser> response =
 					fromConnector.queryForPage(query, de.thm.arsnova.model.migration.v2.DbUser.class);
-			List<de.thm.arsnova.model.migration.v2.DbUser> dbUsersV2 = response.getEntities();
+			final List<de.thm.arsnova.model.migration.v2.DbUser> dbUsersV2 = response.getEntities();
 			bookmark = response.getBookmark();
 			if (dbUsersV2.size() == 0) {
 				break;
 			}
 
-			for (DbUser userV2 : dbUsersV2) {
-				HashMap<String, Object> loggedInQueryOptions = new HashMap<>();
+			for (final DbUser userV2 : dbUsersV2) {
+				final HashMap<String, Object> loggedInQueryOptions = new HashMap<>();
 				loggedInQueryOptions.put("type", "logged_in");
 				loggedInQueryOptions.put("user", userV2.getUsername());
-				MangoCouchDbConnector.MangoQuery loggedInQuery = new MangoCouchDbConnector.MangoQuery(loggedInQueryOptions);
+				final MangoCouchDbConnector.MangoQuery loggedInQuery =
+						new MangoCouchDbConnector.MangoQuery(loggedInQueryOptions);
 				loggedInQuery.setIndexDocument(LOGGEDIN_INDEX);
-				List<LoggedIn> loggedInList = fromConnector.query(loggedInQuery, LoggedIn.class);
-				LoggedIn loggedIn = loggedInList.size() > 0 ? loggedInList.get(0) : null;
+				final List<LoggedIn> loggedInList = fromConnector.query(loggedInQuery, LoggedIn.class);
+				final LoggedIn loggedIn = loggedInList.size() > 0 ? loggedInList.get(0) : null;
 
-				UserProfile profileV3 = migrator.migrate(userV2, loggedIn, loadMotdList(userV2.getUsername()));
+				final UserProfile profileV3 = migrator.migrate(userV2, loggedIn, loadMotdList(userV2.getUsername()));
 				profileV3.setAcknowledgedMotds(migrateMotdIds(profileV3.getAcknowledgedMotds()));
 				profilesV3.add(profileV3);
 			}
@@ -221,11 +222,11 @@ public class V2ToV3Migration implements Migration {
 		MangoCouchDbConnector.MangoQuery query = new MangoCouchDbConnector.MangoQuery(queryOptions);
 		query.setIndexDocument(USER_INDEX);
 		query.setLimit(LIMIT);
-		Set<String> usernames = new HashSet<>();
+		final Set<String> usernames = new HashSet<>();
 		for (int skip = 0;; skip += LIMIT) {
 			logger.debug("Migration progress: {}", skip);
 			query.setSkip(skip);
-			List<String> result = fromConnector.query(query, "username", String.class);
+			final List<String> result = fromConnector.query(query, "username", String.class);
 			if (result.isEmpty()) {
 				break;
 			}
@@ -241,21 +242,21 @@ public class V2ToV3Migration implements Migration {
 		for (int skip = 0;; skip += LIMIT) {
 			logger.debug("Migration progress: {}, bookmark: {}", skip, bookmark);
 			query.setBookmark(bookmark);
-			List<UserProfile> profilesV3 = new ArrayList<>();
-			PagedMangoResponse<de.thm.arsnova.model.migration.v2.LoggedIn> response =
+			final List<UserProfile> profilesV3 = new ArrayList<>();
+			final PagedMangoResponse<de.thm.arsnova.model.migration.v2.LoggedIn> response =
 					fromConnector.queryForPage(query, de.thm.arsnova.model.migration.v2.LoggedIn.class);
-			List<de.thm.arsnova.model.migration.v2.LoggedIn> loggedInsV2 = response.getEntities();
+			final List<de.thm.arsnova.model.migration.v2.LoggedIn> loggedInsV2 = response.getEntities();
 			bookmark = response.getBookmark();
 			if (loggedInsV2.isEmpty()) {
 				break;
 			}
-			for (LoggedIn loggedInV2 : loggedInsV2) {
+			for (final LoggedIn loggedInV2 : loggedInsV2) {
 				if (usernames.contains(loggedInV2.getUser())) {
 					continue;
 				}
 				/* There might be rare cases of duplicate LoggedIn records for a user so add them to the filter list */
 				usernames.add(loggedInV2.getUser());
-				UserProfile profileV3 = migrator.migrate(null, loggedInV2, loadMotdList(loggedInV2.getUser()));
+				final UserProfile profileV3 = migrator.migrate(null, loggedInV2, loadMotdList(loggedInV2.getUser()));
 				profileV3.setAcknowledgedMotds(migrateMotdIds(profileV3.getAcknowledgedMotds()));
 				profilesV3.add(profileV3);
 			}
@@ -265,9 +266,9 @@ public class V2ToV3Migration implements Migration {
 
 	private void migrateRooms() throws InterruptedException {
 		waitForV2Index(SESSION_INDEX);
-		Map<String, Object> queryOptions = new HashMap<>();
+		final Map<String, Object> queryOptions = new HashMap<>();
 		queryOptions.put("type", "session");
-		MangoCouchDbConnector.MangoQuery query = new MangoCouchDbConnector.MangoQuery(queryOptions);
+		final MangoCouchDbConnector.MangoQuery query = new MangoCouchDbConnector.MangoQuery(queryOptions);
 		query.setIndexDocument(SESSION_INDEX);
 		query.setLimit(LIMIT);
 		String bookmark = null;
@@ -275,17 +276,17 @@ public class V2ToV3Migration implements Migration {
 		for (int skip = 0;; skip += LIMIT) {
 			logger.debug("Migration progress: {}, bookmark: {}", skip, bookmark);
 			query.setBookmark(bookmark);
-			List<Room> roomsV3 = new ArrayList<>();
-			PagedMangoResponse<de.thm.arsnova.model.migration.v2.Room> response =
+			final List<Room> roomsV3 = new ArrayList<>();
+			final PagedMangoResponse<de.thm.arsnova.model.migration.v2.Room> response =
 					fromConnector.queryForPage(query, de.thm.arsnova.model.migration.v2.Room.class);
-			List<de.thm.arsnova.model.migration.v2.Room> roomsV2 = response.getEntities();
+			final List<de.thm.arsnova.model.migration.v2.Room> roomsV2 = response.getEntities();
 			bookmark = response.getBookmark();
 			if (roomsV2.size() == 0) {
 				break;
 			}
 
-			for (de.thm.arsnova.model.migration.v2.Room roomV2 : roomsV2) {
-				List<UserProfile> profiles = userRepository.findByLoginId(roomV2.getCreator());
+			for (final de.thm.arsnova.model.migration.v2.Room roomV2 : roomsV2) {
+				final List<UserProfile> profiles = userRepository.findByLoginId(roomV2.getCreator());
 				if (profiles.size() == 0) {
 					logger.warn("Skipping migration of Room {}. Creator {} does not exist.",
 							roomV2.getId(), roomV2.getCreator());
@@ -300,13 +301,13 @@ public class V2ToV3Migration implements Migration {
 
 	private void migrateMotds() throws InterruptedException {
 		waitForV2Index(MOTD_INDEX);
-		Map<String, Object> queryOptions = new HashMap<>();
+		final Map<String, Object> queryOptions = new HashMap<>();
 		queryOptions.put("type", "motd");
 		/* Exclude outdated MotDs */
-		HashMap<String, String> subQuery = new HashMap<>();
+		final HashMap<String, String> subQuery = new HashMap<>();
 		subQuery.put("$gt", String.valueOf(referenceTimestamp - OUTDATED_AFTER));
 		queryOptions.put("enddate", subQuery);
-		MangoCouchDbConnector.MangoQuery query = new MangoCouchDbConnector.MangoQuery(queryOptions);
+		final MangoCouchDbConnector.MangoQuery query = new MangoCouchDbConnector.MangoQuery(queryOptions);
 		query.setIndexDocument(MOTD_INDEX);
 		query.setLimit(LIMIT);
 		String bookmark = null;
@@ -314,18 +315,18 @@ public class V2ToV3Migration implements Migration {
 		for (int skip = 0;; skip += LIMIT) {
 			logger.debug("Migration progress: {}, bookmark: {}", skip, bookmark);
 			query.setBookmark(bookmark);
-			List<Motd> motdsV3 = new ArrayList<>();
-			PagedMangoResponse<de.thm.arsnova.model.migration.v2.Motd> response =
+			final List<Motd> motdsV3 = new ArrayList<>();
+			final PagedMangoResponse<de.thm.arsnova.model.migration.v2.Motd> response =
 					fromConnector.queryForPage(query, de.thm.arsnova.model.migration.v2.Motd.class);
-			List<de.thm.arsnova.model.migration.v2.Motd> motdsV2 = response.getEntities();
+			final List<de.thm.arsnova.model.migration.v2.Motd> motdsV2 = response.getEntities();
 			bookmark = response.getBookmark();
 			if (motdsV2.size() == 0) {
 				break;
 			}
 
-			for (de.thm.arsnova.model.migration.v2.Motd motdV2 : motdsV2) {
+			for (final de.thm.arsnova.model.migration.v2.Motd motdV2 : motdsV2) {
 				if (motdV2.getAudience().equals("session")) {
-					Room room = roomRepository.findByShortId(motdV2.getSessionkey());
+					final Room room = roomRepository.findByShortId(motdV2.getSessionkey());
 					/* sessionId has not been set for some old MotDs */
 					if (room == null) {
 						logger.warn("Skipping migration of Motd {}. Room {} does not exist.",
@@ -343,9 +344,9 @@ public class V2ToV3Migration implements Migration {
 
 	private void migrateComments() throws InterruptedException {
 		waitForV2Index(FULL_INDEX_BY_TYPE);
-		Map<String, Object> queryOptions = new HashMap<>();
+		final Map<String, Object> queryOptions = new HashMap<>();
 		queryOptions.put("type", "interposed_question");
-		MangoCouchDbConnector.MangoQuery query = new MangoCouchDbConnector.MangoQuery(queryOptions);
+		final MangoCouchDbConnector.MangoQuery query = new MangoCouchDbConnector.MangoQuery(queryOptions);
 		query.setIndexDocument(FULL_INDEX_BY_TYPE);
 		query.setLimit(LIMIT);
 		String bookmark = null;
@@ -353,18 +354,18 @@ public class V2ToV3Migration implements Migration {
 		for (int skip = 0;; skip += LIMIT) {
 			logger.debug("Migration progress: {}, bookmark: {}", skip, bookmark);
 			query.setBookmark(bookmark);
-			List<Comment> commentsV3 = new ArrayList<>();
-			PagedMangoResponse<de.thm.arsnova.model.migration.v2.Comment> response =
+			final List<Comment> commentsV3 = new ArrayList<>();
+			final PagedMangoResponse<de.thm.arsnova.model.migration.v2.Comment> response =
 					fromConnector.queryForPage(query, de.thm.arsnova.model.migration.v2.Comment.class);
-			List<de.thm.arsnova.model.migration.v2.Comment> commentsV2 = response.getEntities();
+			final List<de.thm.arsnova.model.migration.v2.Comment> commentsV2 = response.getEntities();
 			bookmark = response.getBookmark();
 			if (commentsV2.size() == 0) {
 				break;
 			}
 
-			for (de.thm.arsnova.model.migration.v2.Comment commentV2 : commentsV2) {
+			for (final de.thm.arsnova.model.migration.v2.Comment commentV2 : commentsV2) {
 				try {
-					Room roomV3 = roomRepository.findOne(commentV2.getSessionId());
+					final Room roomV3 = roomRepository.findOne(commentV2.getSessionId());
 					List<UserProfile> profiles = Collections.EMPTY_LIST;
 					if (commentV2.getCreator() != null && !commentV2.getCreator().equals("")) {
 						profiles = userRepository.findByLoginId(commentV2.getCreator());
@@ -372,13 +373,13 @@ public class V2ToV3Migration implements Migration {
 					if (profiles.size() == 0) {
 						/* No creator is set or creator does not exist -> fallback: creator = Room owner */
 						commentV2.setCreator(null);
-						Comment commentV3 = migrator.migrate(commentV2);
+						final Comment commentV3 = migrator.migrate(commentV2);
 						commentV3.setCreatorId(roomV3.getOwnerId());
 						commentsV3.add(commentV3);
 					} else {
 						commentsV3.add(migrator.migrate(commentV2, profiles.get(0)));
 					}
-				} catch (DocumentNotFoundException e) {
+				} catch (final DocumentNotFoundException e) {
 					logger.warn("Skipping migration of Comment {}. Room {} does not exist.",
 							commentV2.getId(), commentV2.getSessionId());
 					continue;
@@ -391,9 +392,9 @@ public class V2ToV3Migration implements Migration {
 
 	private void migrateContents() throws InterruptedException {
 		waitForV2Index(FULL_INDEX_BY_TYPE);
-		Map<String, Object> queryOptions = new HashMap<>();
+		final Map<String, Object> queryOptions = new HashMap<>();
 		queryOptions.put("type", "skill_question");
-		MangoCouchDbConnector.MangoQuery query = new MangoCouchDbConnector.MangoQuery(queryOptions);
+		final MangoCouchDbConnector.MangoQuery query = new MangoCouchDbConnector.MangoQuery(queryOptions);
 		query.setIndexDocument(FULL_INDEX_BY_TYPE);
 		query.setLimit(LIMIT);
 		String bookmark = null;
@@ -401,20 +402,20 @@ public class V2ToV3Migration implements Migration {
 		for (int skip = 0;; skip += LIMIT) {
 			logger.debug("Migration progress: {}, bookmark: {}", skip, bookmark);
 			query.setBookmark(bookmark);
-			List<Content> contentsV3 = new ArrayList<>();
-			PagedMangoResponse<de.thm.arsnova.model.migration.v2.Content> response =
+			final List<Content> contentsV3 = new ArrayList<>();
+			final PagedMangoResponse<de.thm.arsnova.model.migration.v2.Content> response =
 					fromConnector.queryForPage(query, de.thm.arsnova.model.migration.v2.Content.class);
-			List<de.thm.arsnova.model.migration.v2.Content> contentsV2 = response.getEntities();
+			final List<de.thm.arsnova.model.migration.v2.Content> contentsV2 = response.getEntities();
 			bookmark = response.getBookmark();
 			if (contentsV2.size() == 0) {
 				break;
 			}
 
-			for (de.thm.arsnova.model.migration.v2.Content contentV2 : contentsV2) {
+			for (final de.thm.arsnova.model.migration.v2.Content contentV2 : contentsV2) {
 				if (roomRepository.existsById(contentV2.getSessionId())) {
 					try {
 						contentsV3.add(migrator.migrate(contentV2));
-					} catch (IllegalArgumentException e) {
+					} catch (final IllegalArgumentException e) {
 						logger.warn("Skipping migration of Content {}.", contentV2.getId(), e);
 					}
 				} else {
@@ -429,9 +430,9 @@ public class V2ToV3Migration implements Migration {
 
 	private void migrateAnswers() throws InterruptedException {
 		waitForV2Index(FULL_INDEX_BY_TYPE);
-		Map<String, Object> queryOptions = new HashMap<>();
+		final Map<String, Object> queryOptions = new HashMap<>();
 		queryOptions.put("type", "skill_question_answer");
-		MangoCouchDbConnector.MangoQuery query = new MangoCouchDbConnector.MangoQuery(queryOptions);
+		final MangoCouchDbConnector.MangoQuery query = new MangoCouchDbConnector.MangoQuery(queryOptions);
 		query.setIndexDocument(FULL_INDEX_BY_TYPE);
 		query.setLimit(LIMIT);
 		String bookmark = null;
@@ -439,29 +440,29 @@ public class V2ToV3Migration implements Migration {
 		for (int skip = 0;; skip += LIMIT) {
 			logger.debug("Migration progress: {}, bookmark: {}", skip, bookmark);
 			query.setBookmark(bookmark);
-			List<Answer> answersV3 = new ArrayList<>();
-			PagedMangoResponse<de.thm.arsnova.model.migration.v2.Answer> response =
+			final List<Answer> answersV3 = new ArrayList<>();
+			final PagedMangoResponse<de.thm.arsnova.model.migration.v2.Answer> response =
 					fromConnector.queryForPage(query, de.thm.arsnova.model.migration.v2.Answer.class);
-			List<de.thm.arsnova.model.migration.v2.Answer> answersV2 = response.getEntities();
+			final List<de.thm.arsnova.model.migration.v2.Answer> answersV2 = response.getEntities();
 			bookmark = response.getBookmark();
 			if (answersV2.size() == 0) {
 				break;
 			}
 
-			for (de.thm.arsnova.model.migration.v2.Answer answerV2 : answersV2) {
+			for (final de.thm.arsnova.model.migration.v2.Answer answerV2 : answersV2) {
 				if (!roomRepository.existsById(answerV2.getSessionId())) {
 					logger.warn("Skipping migration of Answer {}. Room {} does not exist.",
 							answerV2.getId(), answerV2.getQuestionId());
 					continue;
 				}
 				try {
-					Content contentV3 = contentRepository.findOne(answerV2.getQuestionId());
+					final Content contentV3 = contentRepository.findOne(answerV2.getQuestionId());
 					answersV3.add(migrator.migrate(answerV2, contentV3));
-				} catch (DocumentNotFoundException e) {
+				} catch (final DocumentNotFoundException e) {
 					logger.warn("Skipping migration of Answer {}. Content {} does not exist.",
 							answerV2.getId(), answerV2.getQuestionId());
 					continue;
-				} catch (IndexOutOfBoundsException e) {
+				} catch (final IndexOutOfBoundsException e) {
 					logger.warn("Skipping migration of Answer {}. Data inconsistency detected.", answerV2.getId());
 				}
 			}
@@ -475,16 +476,16 @@ public class V2ToV3Migration implements Migration {
 			return new HashSet<>();
 		}
 		waitForV2Index(MOTD_INDEX);
-		Map<String, Object> queryOptions = new HashMap<>();
-		Map<String, Set<String>> subQuery1 = new HashMap<>();
+		final Map<String, Object> queryOptions = new HashMap<>();
+		final Map<String, Set<String>> subQuery1 = new HashMap<>();
 		subQuery1.put("$in", oldIds);
 		queryOptions.put("type", "motd");
 		queryOptions.put("motdkey", subQuery1);
 		/* Exclude outdated MotDs */
-		HashMap<String, String> subQuery2 = new HashMap<>();
+		final HashMap<String, String> subQuery2 = new HashMap<>();
 		subQuery2.put("$gt", String.valueOf(referenceTimestamp - OUTDATED_AFTER));
 		queryOptions.put("enddate", subQuery2);
-		MangoCouchDbConnector.MangoQuery query = new MangoCouchDbConnector.MangoQuery(queryOptions);
+		final MangoCouchDbConnector.MangoQuery query = new MangoCouchDbConnector.MangoQuery(queryOptions);
 		query.setIndexDocument(MOTD_INDEX);
 		query.setLimit(LIMIT);
 
@@ -493,12 +494,12 @@ public class V2ToV3Migration implements Migration {
 
 	private MotdList loadMotdList(final String username) throws InterruptedException {
 		waitForV2Index(MOTDLIST_INDEX);
-		HashMap<String, Object> motdListQueryOptions = new HashMap<>();
+		final HashMap<String, Object> motdListQueryOptions = new HashMap<>();
 		motdListQueryOptions.put("type", "motdlist");
 		motdListQueryOptions.put("username", username);
-		MangoCouchDbConnector.MangoQuery motdListQuery = new MangoCouchDbConnector.MangoQuery(motdListQueryOptions);
+		final MangoCouchDbConnector.MangoQuery motdListQuery = new MangoCouchDbConnector.MangoQuery(motdListQueryOptions);
 		motdListQuery.setIndexDocument(MOTDLIST_INDEX);
-		List<MotdList> motdListList = fromConnector.query(motdListQuery, MotdList.class);
+		final List<MotdList> motdListList = fromConnector.query(motdListQuery, MotdList.class);
 
 		return motdListList.size() > 0 ? motdListList.get(0) : null;
 	}
diff --git a/src/main/java/de/thm/arsnova/persistence/couchdb/support/MangoCouchDbConnector.java b/src/main/java/de/thm/arsnova/persistence/couchdb/support/MangoCouchDbConnector.java
index c293bf7788a400da8a2cae6cc9ad9a7533a4465d..5ca603939d42b35a13fda39db1cbb5889df95ebe 100644
--- a/src/main/java/de/thm/arsnova/persistence/couchdb/support/MangoCouchDbConnector.java
+++ b/src/main/java/de/thm/arsnova/persistence/couchdb/support/MangoCouchDbConnector.java
@@ -59,20 +59,20 @@ public class MangoCouchDbConnector extends StdCouchDbConnector {
 		public static class Sort {
 			public static class ToMapConverter implements Converter<Sort, Map<String, String>> {
 				@Override
-				public Map<String, String> convert(Sort value) {
-					Map<String, String> map = new HashMap<>();
+				public Map<String, String> convert(final Sort value) {
+					final Map<String, String> map = new HashMap<>();
 					map.put(value.field, value.descending ? "desc" : "asc");
 
 					return map;
 				}
 
 				@Override
-				public JavaType getInputType(TypeFactory typeFactory) {
+				public JavaType getInputType(final TypeFactory typeFactory) {
 					return typeFactory.constructType(Sort.class);
 				}
 
 				@Override
-				public JavaType getOutputType(TypeFactory typeFactory) {
+				public JavaType getOutputType(final TypeFactory typeFactory) {
 					return typeFactory.constructMapType(Map.class, String.class, String.class);
 				}
 			}
@@ -80,7 +80,7 @@ public class MangoCouchDbConnector extends StdCouchDbConnector {
 			private String field;
 			private boolean descending = false;
 
-			public Sort(String field, boolean descending) {
+			public Sort(final String field, final boolean descending) {
 				this.field = field;
 				this.descending = descending;
 			}
@@ -89,7 +89,7 @@ public class MangoCouchDbConnector extends StdCouchDbConnector {
 				return field;
 			}
 
-			public void setField(String field) {
+			public void setField(final String field) {
 				this.field = field;
 			}
 
@@ -97,7 +97,7 @@ public class MangoCouchDbConnector extends StdCouchDbConnector {
 				return descending;
 			}
 
-			public void setDescending(boolean descending) {
+			public void setDescending(final boolean descending) {
 				this.descending = descending;
 			}
 		}
@@ -120,7 +120,7 @@ public class MangoCouchDbConnector extends StdCouchDbConnector {
 		/**
 		 * @param selector See http://docs.couchdb.org/en/stable/api/database/find.html#selector-syntax.
 		 */
-		public MangoQuery(Map<String, Object> selector) {
+		public MangoQuery(final Map<String, Object> selector) {
 			this.selector = selector;
 		}
 
@@ -133,7 +133,7 @@ public class MangoCouchDbConnector extends StdCouchDbConnector {
 		/**
 		 * @param selector See http://docs.couchdb.org/en/stable/api/database/find.html#selector-syntax.
 		 */
-		public void setSelector(Map<String, Object> selector) {
+		public void setSelector(final Map<String, Object> selector) {
 			this.selector = selector;
 		}
 
@@ -142,7 +142,7 @@ public class MangoCouchDbConnector extends StdCouchDbConnector {
 			return fields;
 		}
 
-		public void setFields(List<String> fields) {
+		public void setFields(final List<String> fields) {
 			this.fields = fields;
 		}
 
@@ -151,7 +151,7 @@ public class MangoCouchDbConnector extends StdCouchDbConnector {
 			return sort;
 		}
 
-		public void setSort(List<Sort> sort) {
+		public void setSort(final List<Sort> sort) {
 			this.sort = sort;
 		}
 
@@ -160,7 +160,7 @@ public class MangoCouchDbConnector extends StdCouchDbConnector {
 			return limit;
 		}
 
-		public void setLimit(int limit) {
+		public void setLimit(final int limit) {
 			this.limit = limit;
 		}
 
@@ -169,7 +169,7 @@ public class MangoCouchDbConnector extends StdCouchDbConnector {
 			return skip;
 		}
 
-		public void setSkip(int skip) {
+		public void setSkip(final int skip) {
 			this.skip = skip;
 		}
 
@@ -177,7 +177,7 @@ public class MangoCouchDbConnector extends StdCouchDbConnector {
 			return indexDocument;
 		}
 
-		public void setIndexDocument(String indexDocument) {
+		public void setIndexDocument(final String indexDocument) {
 			this.indexDocument = indexDocument;
 		}
 
@@ -185,7 +185,7 @@ public class MangoCouchDbConnector extends StdCouchDbConnector {
 			return indexName;
 		}
 
-		public void setIndexName(String indexName) {
+		public void setIndexName(final String indexName) {
 			this.indexName = indexName;
 		}
 
@@ -200,7 +200,7 @@ public class MangoCouchDbConnector extends StdCouchDbConnector {
 			return update;
 		}
 
-		public void setUpdate(boolean update) {
+		public void setUpdate(final boolean update) {
 			this.update = update;
 		}
 
@@ -209,7 +209,7 @@ public class MangoCouchDbConnector extends StdCouchDbConnector {
 			return stable;
 		}
 
-		public void setStable(boolean stable) {
+		public void setStable(final boolean stable) {
 			this.stable = stable;
 		}
 
@@ -225,11 +225,11 @@ public class MangoCouchDbConnector extends StdCouchDbConnector {
 
 	private static final Logger logger = LoggerFactory.getLogger(MangoCouchDbConnector.class);
 
-	public MangoCouchDbConnector(String databaseName, CouchDbInstance dbInstance) {
+	public MangoCouchDbConnector(final String databaseName, final CouchDbInstance dbInstance) {
 		super(databaseName, dbInstance);
 	}
 
-	public MangoCouchDbConnector(String databaseName, CouchDbInstance dbi, ObjectMapperFactory om) {
+	public MangoCouchDbConnector(final String databaseName, final CouchDbInstance dbi, final ObjectMapperFactory om) {
 		super(databaseName, dbi, om);
 	}
 
@@ -240,14 +240,14 @@ public class MangoCouchDbConnector extends StdCouchDbConnector {
 	 * @return List of retrieved entities
 	 */
 	public <T> List<T> query(final MangoQuery query, final MangoResponseHandler<T> rh) {
-		String queryString;
+		final String queryString;
 		try {
 			queryString = objectMapper.writeValueAsString(query);
 			logger.debug("Querying CouchDB using Mango API: {}", queryString);
-		} catch (JsonProcessingException e) {
+		} catch (final JsonProcessingException e) {
 			throw new DbAccessException("Could not serialize Mango query.");
 		}
-		List<T> result = restTemplate.postUncached(dbURI.append("_find").toString(), queryString, rh);
+		final List<T> result = restTemplate.postUncached(dbURI.append("_find").toString(), queryString, rh);
 		//List<T> result = restTemplate.post(dbURI.append("_find").toString(),
 		//		new JacksonableEntity(query, objectMapper), rh);
 
@@ -263,7 +263,7 @@ public class MangoCouchDbConnector extends StdCouchDbConnector {
 	 * @return List of retrieved entities
 	 */
 	public <T> List<T> query(final MangoQuery query, final Class<T> type) {
-		MangoResponseHandler<T> rh = new MangoResponseHandler<>(type, objectMapper, true);
+		final MangoResponseHandler<T> rh = new MangoResponseHandler<>(type, objectMapper, true);
 		return query(query, rh);
 	}
 
@@ -276,7 +276,7 @@ public class MangoCouchDbConnector extends StdCouchDbConnector {
 	 */
 	public <T> List<T> query(final MangoQuery query, final String propertyName, final Class<T> type) {
 		query.setFields(Arrays.asList(new String[] {propertyName}));
-		MangoResponseHandler<T> rh = new MangoResponseHandler<>(propertyName, type, objectMapper);
+		final MangoResponseHandler<T> rh = new MangoResponseHandler<>(propertyName, type, objectMapper);
 
 		return query(query, rh);
 	}
@@ -288,14 +288,14 @@ public class MangoCouchDbConnector extends StdCouchDbConnector {
 	 * @return List of retrieved entities
 	 */
 	public <T> PagedMangoResponse<T> queryForPage(final MangoQuery query, final Class<T> type) {
-		MangoResponseHandler<T> rh = new MangoResponseHandler<>(type, objectMapper, true);
+		final MangoResponseHandler<T> rh = new MangoResponseHandler<>(type, objectMapper, true);
 		return new PagedMangoResponse<T>(query(query, rh), rh.getBookmark());
 	}
 
 	public void createPartialJsonIndex(
 			final String name, final List<MangoQuery.Sort> fields, final Map<String, Object> filterSelector) {
-		Map<String, Object> query = new HashMap<>();
-		Map<String, Object> index = new HashMap<>();
+		final Map<String, Object> query = new HashMap<>();
+		final Map<String, Object> index = new HashMap<>();
 		query.put("ddoc", name);
 		query.put("type", "json");
 		query.put("index", index);
@@ -303,11 +303,11 @@ public class MangoCouchDbConnector extends StdCouchDbConnector {
 		if (filterSelector != null) {
 			index.put("partial_filter_selector", filterSelector);
 		}
-		String queryString;
+		final String queryString;
 		try {
 			queryString = objectMapper.writeValueAsString(query);
 			logger.debug("Creating CouchDB index using Mango API: {}", queryString);
-		} catch (JsonProcessingException e) {
+		} catch (final JsonProcessingException e) {
 			throw new DbAccessException(e);
 		}
 		restTemplate.postUncached(dbURI.append("_index").toString(), queryString);
@@ -318,17 +318,17 @@ public class MangoCouchDbConnector extends StdCouchDbConnector {
 	}
 
 	public boolean initializeIndex(final String name) {
-		MangoQuery query = new MangoQuery(Collections.EMPTY_MAP);
+		final MangoQuery query = new MangoQuery(Collections.EMPTY_MAP);
 		query.setIndexDocument(name);
 		query.setLimit(0);
 		try {
-			String queryString = objectMapper.writeValueAsString(query);
+			final String queryString = objectMapper.writeValueAsString(query);
 			logger.debug("Using Mango API query to initialize CouchDB index: {}", queryString);
-			HttpResponse response = restTemplate.postUncached(dbURI.append("_find").toString(), queryString);
+			final HttpResponse response = restTemplate.postUncached(dbURI.append("_find").toString(), queryString);
 			response.releaseConnection();
-		} catch (JsonProcessingException e) {
+		} catch (final JsonProcessingException e) {
 			throw new DbAccessException("Could not serialize Mango query.");
-		} catch (DbAccessException e) {
+		} catch (final DbAccessException e) {
 			logger.debug("CouchDB index is not ready yet: {}", name, e);
 			return false;
 		}
@@ -344,7 +344,7 @@ public class MangoCouchDbConnector extends StdCouchDbConnector {
 				new StdResponseHandler<DbInfo>() {
 
 					@Override
-					public DbInfo success(HttpResponse hr) throws Exception {
+					public DbInfo success(final HttpResponse hr) throws Exception {
 						return objectMapper.readValue(hr.getContent(),
 								DbInfo.class);
 					}
@@ -357,7 +357,7 @@ public class MangoCouchDbConnector extends StdCouchDbConnector {
 		private String purgeSeq;
 
 		@JsonCreator
-		public DbInfo(@JsonProperty("db_name") String dbName) {
+		public DbInfo(@JsonProperty("db_name") final String dbName) {
 			super(dbName);
 		}
 	}
diff --git a/src/main/java/de/thm/arsnova/persistence/couchdb/support/MangoQueryResultParser.java b/src/main/java/de/thm/arsnova/persistence/couchdb/support/MangoQueryResultParser.java
index 6f58b8a05f47c5fe15738f20e105666378f24186..3967b00369e3df881e8a108daf4652af7694d7d7 100644
--- a/src/main/java/de/thm/arsnova/persistence/couchdb/support/MangoQueryResultParser.java
+++ b/src/main/java/de/thm/arsnova/persistence/couchdb/support/MangoQueryResultParser.java
@@ -44,19 +44,19 @@ public class MangoQueryResultParser<T> {
 	private String bookmark;
 	private String propertyName = null;
 
-	public MangoQueryResultParser(Class<T> type, ObjectMapper objectMapper) {
+	public MangoQueryResultParser(final Class<T> type, final ObjectMapper objectMapper) {
 		this.type = type;
 		this.objectMapper = objectMapper;
 	}
 
-	public MangoQueryResultParser(String propertyName, Class<T> type, ObjectMapper objectMapper) {
+	public MangoQueryResultParser(final String propertyName, final Class<T> type, final ObjectMapper objectMapper) {
 		this.propertyName = propertyName;
 		this.type = type;
 		this.objectMapper = objectMapper;
 	}
 
-	public void parseResult(InputStream json) throws IOException {
-		JsonParser jp = objectMapper.getFactory().createParser(json);
+	public void parseResult(final InputStream json) throws IOException {
+		final JsonParser jp = objectMapper.getFactory().createParser(json);
 
 		try {
 			parseResult(jp);
@@ -65,7 +65,7 @@ public class MangoQueryResultParser<T> {
 		}
 	}
 
-	private void parseResult(JsonParser jp) throws IOException {
+	private void parseResult(final JsonParser jp) throws IOException {
 		if (jp.nextToken() != JsonToken.START_OBJECT) {
 			throw new DbAccessException("Expected data to start with an Object");
 		}
@@ -75,7 +75,7 @@ public class MangoQueryResultParser<T> {
 
 		// Issue #98: Can't assume order of JSON fields.
 		while (jp.nextValue() != JsonToken.END_OBJECT) {
-			String currentName = jp.getCurrentName();
+			final String currentName = jp.getCurrentName();
 			if (DOCS_FIELD_NAME.equals(currentName)) {
 				docs = new ArrayList<T>();
 				parseDocs(jp);
@@ -91,12 +91,12 @@ public class MangoQueryResultParser<T> {
 		}
 
 		if (error != null) {
-			String errorDesc = reason != null ? reason : error;
+			final String errorDesc = reason != null ? reason : error;
 			throw new DbAccessException("CouchDB Mango query failed: " + errorDesc);
 		}
 	}
 
-	private void parseDocs(JsonParser jp) throws IOException {
+	private void parseDocs(final JsonParser jp) throws IOException {
 		if (jp.getCurrentToken() != JsonToken.START_ARRAY) {
 			throw new DbAccessException("Expected rows to start with an Array");
 		}
@@ -108,7 +108,7 @@ public class MangoQueryResultParser<T> {
 				docs.add(doc);
 			} else {
 				while (jp.nextToken() == JsonToken.FIELD_NAME) {
-					String fieldName = jp.getText();
+					final String fieldName = jp.getText();
 					jp.nextToken();
 					if (fieldName.equals(propertyName)) {
 						doc = jp.readValueAs(type);
diff --git a/src/main/java/de/thm/arsnova/persistence/couchdb/support/MangoResponseHandler.java b/src/main/java/de/thm/arsnova/persistence/couchdb/support/MangoResponseHandler.java
index e79db8c3c505a81a1ce35b392ef13bb4cb7ed0cb..26aa71b35d744f6e7f5ce804d12c1a09fa906187 100644
--- a/src/main/java/de/thm/arsnova/persistence/couchdb/support/MangoResponseHandler.java
+++ b/src/main/java/de/thm/arsnova/persistence/couchdb/support/MangoResponseHandler.java
@@ -29,20 +29,20 @@ public class MangoResponseHandler<T> extends StdResponseHandler<List<T>> {
 	private MangoQueryResultParser<T> parser;
 	private String bookmark;
 
-	public MangoResponseHandler(Class<T> docType, ObjectMapper om) {
+	public MangoResponseHandler(final Class<T> docType, final ObjectMapper om) {
 		Assert.notNull(om, "ObjectMapper may not be null");
 		Assert.notNull(docType, "docType may not be null");
 		parser = new MangoQueryResultParser<T>(docType, om);
 	}
 
-	public MangoResponseHandler(Class<T> docType, ObjectMapper om,
-			boolean ignoreNotFound) {
+	public MangoResponseHandler(final Class<T> docType, final ObjectMapper om,
+			final boolean ignoreNotFound) {
 		Assert.notNull(om, "ObjectMapper may not be null");
 		Assert.notNull(docType, "docType may not be null");
 		parser = new MangoQueryResultParser<T>(docType, om);
 	}
 
-	public MangoResponseHandler(String propertyName, Class<T> propertyType, ObjectMapper om) {
+	public MangoResponseHandler(final String propertyName, final Class<T> propertyType, final ObjectMapper om) {
 		Assert.notNull(om, "ObjectMapper may not be null");
 		Assert.notNull(propertyType, "propertyType may not be null");
 		Assert.notNull(propertyName, "propertyName may not be null");
@@ -50,7 +50,7 @@ public class MangoResponseHandler<T> extends StdResponseHandler<List<T>> {
 	}
 
 	@Override
-	public List<T> success(HttpResponse hr) throws Exception {
+	public List<T> success(final HttpResponse hr) throws Exception {
 		parser.parseResult(hr.getContent());
 		bookmark = parser.getBookmark();
 
diff --git a/src/main/java/de/thm/arsnova/security/ApplicationPermissionEvaluator.java b/src/main/java/de/thm/arsnova/security/ApplicationPermissionEvaluator.java
index 9a62f9be7a6084cb3a8d00949fbeb48e180fcf9c..3385d5508b95b02546b8074e42467d7f399b6bbd 100644
--- a/src/main/java/de/thm/arsnova/security/ApplicationPermissionEvaluator.java
+++ b/src/main/java/de/thm/arsnova/security/ApplicationPermissionEvaluator.java
@@ -209,7 +209,7 @@ public class ApplicationPermissionEvaluator implements PermissionEvaluator {
 		if (!hasContentPermission(userId, content, "read")) {
 			return false;
 		}
-		Room room;
+		final Room room;
 		switch (permission) {
 			case "read":
 				if (targetAnswer.getCreatorId().equals(userId) || content.getState().isResponsesVisible()) {
@@ -261,7 +261,7 @@ public class ApplicationPermissionEvaluator implements PermissionEvaluator {
 			final String userId,
 			final Motd targetMotd,
 			final String permission) {
-		Room room;
+		final Room room;
 		switch (permission) {
 			case "create":
 			case "update":
@@ -304,7 +304,7 @@ public class ApplicationPermissionEvaluator implements PermissionEvaluator {
 	 * @param role The role that is checked.
 	 * @return Returns true if the user has the moderator role for the room.
 	 */
-	private boolean hasUserIdRoomModeratorRole(final Room room, final String userId, Room.Moderator.Role role) {
+	private boolean hasUserIdRoomModeratorRole(final Room room, final String userId, final Room.Moderator.Role role) {
 		return room.getModerators().stream()
 				.filter(m -> m.getUserId().equals(userId))
 				.anyMatch(m -> m.getRoles().contains(role));
@@ -320,17 +320,17 @@ public class ApplicationPermissionEvaluator implements PermissionEvaluator {
 				|| !(authentication.getPrincipal() instanceof User)) {
 			return "";
 		}
-		User user = (User) authentication.getPrincipal();
+		final User user = (User) authentication.getPrincipal();
 
 		return user.getId();
 	}
 
-	private boolean isSystemAccess(Authentication auth) {
+	private boolean isSystemAccess(final Authentication auth) {
 		return auth instanceof RunAsUserToken
 				&& auth.getAuthorities().stream().anyMatch(ga -> ga.getAuthority().equals("ROLE_RUN_AS_SYSTEM"));
 	}
 
-	private boolean isWebsocketAccess(Authentication auth) {
+	private boolean isWebsocketAccess(final Authentication auth) {
 		return auth instanceof AnonymousAuthenticationToken && auth.getAuthorities().contains("ROLE_WEBSOCKET_ACCESS");
 	}
 }
diff --git a/src/main/java/de/thm/arsnova/security/CasLogoutSuccessHandler.java b/src/main/java/de/thm/arsnova/security/CasLogoutSuccessHandler.java
index 4ae26b672ac1aa47e0599295138d15ed44daf9b9..ccb0b686d15e69429c080c9972e46ae400830ff5 100644
--- a/src/main/java/de/thm/arsnova/security/CasLogoutSuccessHandler.java
+++ b/src/main/java/de/thm/arsnova/security/CasLogoutSuccessHandler.java
@@ -48,7 +48,7 @@ public class CasLogoutSuccessHandler implements LogoutSuccessHandler {
 			final Authentication authentication
 	) throws IOException, ServletException {
 		/* Typo in "referer" intended. It is in the spec. */
-		String referrer = request.getHeader("referer");
+		final String referrer = request.getHeader("referer");
 		if (response.isCommitted()) {
 			logger.info("Response has already been committed. Unable to redirect to target");
 			return;
diff --git a/src/main/java/de/thm/arsnova/security/CustomLdapUserDetailsMapper.java b/src/main/java/de/thm/arsnova/security/CustomLdapUserDetailsMapper.java
index 4efa3c1c887dffae4b86f9e63c151fc2a4c93edd..f848b148f145ed562bf1f9e4306d8fd8436c51e3 100644
--- a/src/main/java/de/thm/arsnova/security/CustomLdapUserDetailsMapper.java
+++ b/src/main/java/de/thm/arsnova/security/CustomLdapUserDetailsMapper.java
@@ -44,7 +44,7 @@ public class CustomLdapUserDetailsMapper extends LdapUserDetailsMapper {
 	@Autowired
 	private UserService userService;
 
-	public CustomLdapUserDetailsMapper(String ldapUserIdAttr) {
+	public CustomLdapUserDetailsMapper(final String ldapUserIdAttr) {
 		this.userIdAttr = ldapUserIdAttr;
 	}
 
diff --git a/src/main/java/de/thm/arsnova/security/GuestUserDetailsService.java b/src/main/java/de/thm/arsnova/security/GuestUserDetailsService.java
index 01b5af53adcbaadf69c774bef85b91ccd4128879..1a71b867ee1c42c86bd2a7d71db946c86db966da 100644
--- a/src/main/java/de/thm/arsnova/security/GuestUserDetailsService.java
+++ b/src/main/java/de/thm/arsnova/security/GuestUserDetailsService.java
@@ -41,7 +41,7 @@ public class GuestUserDetailsService implements UserDetailsService {
 	private final UserService userService;
 	private final Collection<GrantedAuthority> grantedAuthorities;
 
-	public GuestUserDetailsService(UserService userService) {
+	public GuestUserDetailsService(final UserService userService) {
 		this.userService = userService;
 		grantedAuthorities = new HashSet<>();
 		grantedAuthorities.add(new SimpleGrantedAuthority("ROLE_USER"));
diff --git a/src/main/java/de/thm/arsnova/security/LoginAuthenticationFailureHandler.java b/src/main/java/de/thm/arsnova/security/LoginAuthenticationFailureHandler.java
index c86605d86b334d5c976068814407694fc697fda0..c3330f1eb8584a65b7df30059e258e77e66c6121 100644
--- a/src/main/java/de/thm/arsnova/security/LoginAuthenticationFailureHandler.java
+++ b/src/main/java/de/thm/arsnova/security/LoginAuthenticationFailureHandler.java
@@ -44,7 +44,7 @@ public class LoginAuthenticationFailureHandler extends
 			final HttpServletResponse response,
 			final AuthenticationException exception
 	) throws IOException, ServletException {
-		HttpSession session = request.getSession();
+		final HttpSession session = request.getSession();
 		if (session != null && session.getAttribute("ars-login-failure-url") != null) {
 			failureUrl = (String) session.getAttribute("ars-login-failure-url");
 		}
diff --git a/src/main/java/de/thm/arsnova/security/LoginAuthenticationSucessHandler.java b/src/main/java/de/thm/arsnova/security/LoginAuthenticationSucessHandler.java
index dbfaf1cce236d00a86288382a6beb67fbd66c0e3..fe16ae086ac33c41e5e49466ac570a9ed877cec1 100644
--- a/src/main/java/de/thm/arsnova/security/LoginAuthenticationSucessHandler.java
+++ b/src/main/java/de/thm/arsnova/security/LoginAuthenticationSucessHandler.java
@@ -35,7 +35,7 @@ public class LoginAuthenticationSucessHandler extends
 	protected String determineTargetUrl(
 			final HttpServletRequest request,
 			final HttpServletResponse response) {
-		HttpSession session = request.getSession();
+		final HttpSession session = request.getSession();
 		if (session == null || session.getAttribute("ars-login-success-url") == null) {
 			return targetUrl;
 		}
diff --git a/src/main/java/de/thm/arsnova/security/jwt/JwtService.java b/src/main/java/de/thm/arsnova/security/jwt/JwtService.java
index 3ebafe67a1632aae11e5a255ad368e6b0714b180..ce1b81a3e3ab593a8281306bc9808e9c6ab55045 100644
--- a/src/main/java/de/thm/arsnova/security/jwt/JwtService.java
+++ b/src/main/java/de/thm/arsnova/security/jwt/JwtService.java
@@ -61,7 +61,7 @@ public class JwtService {
 		this.serverId = serverId;
 		try {
 			this.defaultValidityPeriod = Duration.parse("P" + defaultValidityPeriod);
-		} catch (Exception e) {
+		} catch (final Exception e) {
 			throw new IllegalArgumentException(defaultValidityPeriod, e);
 		}
 		guestValidityPeriod = Duration.parse("P180D");
@@ -72,7 +72,7 @@ public class JwtService {
 	}
 
 	public String createSignedToken(final User user) {
-		String[] roles = user.getAuthorities().stream()
+		final String[] roles = user.getAuthorities().stream()
 				.map(ga -> ga.getAuthority())
 				.filter(ga -> ga.startsWith(ROLE_PREFIX))
 				.map(ga -> ga.substring(ROLE_PREFIX.length())).toArray(String[]::new);
diff --git a/src/main/java/de/thm/arsnova/security/jwt/JwtTokenFilter.java b/src/main/java/de/thm/arsnova/security/jwt/JwtTokenFilter.java
index 51d8472ed0049ac70bb5b126bb59c3d2d5ace9f1..22a5bce913827ca55f2036eaf5f286df0e7ed131 100644
--- a/src/main/java/de/thm/arsnova/security/jwt/JwtTokenFilter.java
+++ b/src/main/java/de/thm/arsnova/security/jwt/JwtTokenFilter.java
@@ -48,11 +48,11 @@ public class JwtTokenFilter extends GenericFilterBean {
 			filterChain.doFilter(servletRequest, servletResponse);
 			return;
 		}
-		String jwtHeader = httpServletRequest.getHeader(JWT_HEADER_NAME);
+		final String jwtHeader = httpServletRequest.getHeader(JWT_HEADER_NAME);
 		if (jwtHeader != null) {
-			JwtToken token = new JwtToken(jwtHeader);
+			final JwtToken token = new JwtToken(jwtHeader);
 			try {
-				Authentication authenticatedToken = jwtAuthenticationProvider.authenticate(token);
+				final Authentication authenticatedToken = jwtAuthenticationProvider.authenticate(token);
 				if (authenticatedToken != null) {
 					logger.debug("Storing JWT to SecurityContext: {}", authenticatedToken);
 					SecurityContextHolder.getContext().setAuthentication(authenticatedToken);
diff --git a/src/main/java/de/thm/arsnova/security/pac4j/OAuthToken.java b/src/main/java/de/thm/arsnova/security/pac4j/OAuthToken.java
index 31d05e17c9fd05dd9b71c8192fbe1909ebb44ec5..1cb64286ac73fbd779efb81f0c58aeba497650b2 100644
--- a/src/main/java/de/thm/arsnova/security/pac4j/OAuthToken.java
+++ b/src/main/java/de/thm/arsnova/security/pac4j/OAuthToken.java
@@ -33,8 +33,8 @@ import de.thm.arsnova.security.User;
 public class OAuthToken extends AbstractAuthenticationToken {
 	private User principal;
 
-	public OAuthToken(User principal, CommonProfile profile,
-			Collection<? extends GrantedAuthority> grantedAuthorities) {
+	public OAuthToken(final User principal, final CommonProfile profile,
+			final Collection<? extends GrantedAuthority> grantedAuthorities) {
 		super(grantedAuthorities);
 		this.principal = principal;
 		this.setDetails(profile);
diff --git a/src/main/java/de/thm/arsnova/security/pac4j/OauthAuthenticationProvider.java b/src/main/java/de/thm/arsnova/security/pac4j/OauthAuthenticationProvider.java
index 6e9c208fde6812de7575b9d27f10335608929fd6..3c20be9f35bbc480538cf491891d96cce6187755 100644
--- a/src/main/java/de/thm/arsnova/security/pac4j/OauthAuthenticationProvider.java
+++ b/src/main/java/de/thm/arsnova/security/pac4j/OauthAuthenticationProvider.java
@@ -38,8 +38,8 @@ public class OauthAuthenticationProvider implements AuthenticationProvider {
 
 	@Override
 	public Authentication authenticate(final Authentication authentication) throws AuthenticationException {
-		OAuthToken oauthToken = (OAuthToken) authentication;
-		User user = oauthUserDetailsService.loadUserDetails(oauthToken);
+		final OAuthToken oauthToken = (OAuthToken) authentication;
+		final User user = oauthUserDetailsService.loadUserDetails(oauthToken);
 
 		return new OAuthToken(user, (CommonProfile) oauthToken.getDetails(), user.getAuthorities());
 	}
diff --git a/src/main/java/de/thm/arsnova/security/pac4j/OauthCallbackFilter.java b/src/main/java/de/thm/arsnova/security/pac4j/OauthCallbackFilter.java
index f75f0850e6539038e7022cf12984d50916c963ca..c6dc76eafad0c0dc5ca3acaaed560d5a15c4130f 100644
--- a/src/main/java/de/thm/arsnova/security/pac4j/OauthCallbackFilter.java
+++ b/src/main/java/de/thm/arsnova/security/pac4j/OauthCallbackFilter.java
@@ -53,7 +53,7 @@ public class OauthCallbackFilter extends AbstractAuthenticationProcessingFilter
 	private final ClientFinder clientFinder = new DefaultCallbackClientFinder();
 	private Config config;
 
-	public OauthCallbackFilter(Config pac4jConfig) {
+	public OauthCallbackFilter(final Config pac4jConfig) {
 		super(new AntPathRequestMatcher("/login/oauth"));
 		this.config = pac4jConfig;
 	}
@@ -84,9 +84,9 @@ public class OauthCallbackFilter extends AbstractAuthenticationProcessingFilter
 				"only indirect clients are allowed on the callback url");
 
 		try {
-			Credentials credentials = foundClient.getCredentials(context);
+			final Credentials credentials = foundClient.getCredentials(context);
 			logger.debug("credentials: {}", credentials);
-			CommonProfile profile = foundClient.getUserProfile(credentials, context);
+			final CommonProfile profile = foundClient.getUserProfile(credentials, context);
 			logger.debug("profile: {}", profile);
 
 			return profile;
diff --git a/src/main/java/de/thm/arsnova/security/pac4j/OauthUserDetailsService.java b/src/main/java/de/thm/arsnova/security/pac4j/OauthUserDetailsService.java
index f81eec48f6064b101663942284869bdc11192fd3..b4f49e309db30eaa7567cf4b859550ccf1a2269c 100644
--- a/src/main/java/de/thm/arsnova/security/pac4j/OauthUserDetailsService.java
+++ b/src/main/java/de/thm/arsnova/security/pac4j/OauthUserDetailsService.java
@@ -45,7 +45,7 @@ public class OauthUserDetailsService implements AuthenticationUserDetailsService
 	private final UserService userService;
 	protected final Collection<GrantedAuthority> grantedAuthorities;
 
-	public OauthUserDetailsService(UserService userService) {
+	public OauthUserDetailsService(final UserService userService) {
 		this.userService = userService;
 		grantedAuthorities = new HashSet<>();
 		grantedAuthorities.add(new SimpleGrantedAuthority("ROLE_USER"));
@@ -54,7 +54,7 @@ public class OauthUserDetailsService implements AuthenticationUserDetailsService
 
 	public User loadUserDetails(final OAuthToken token)
 			throws UsernameNotFoundException {
-		User user;
+		final User user;
 		if (token.getDetails() instanceof GoogleOidcProfile) {
 			final GoogleOidcProfile profile = (GoogleOidcProfile) token.getDetails();
 			if (!profile.getEmailVerified()) {
diff --git a/src/main/java/de/thm/arsnova/service/AnswerServiceImpl.java b/src/main/java/de/thm/arsnova/service/AnswerServiceImpl.java
index 82685c8ce34e2641baa0df84eec01d87f118c6b3..465779fc0d9e08ec243a8bf0e4e411dab2ad18f2 100644
--- a/src/main/java/de/thm/arsnova/service/AnswerServiceImpl.java
+++ b/src/main/java/de/thm/arsnova/service/AnswerServiceImpl.java
@@ -65,10 +65,10 @@ public class AnswerServiceImpl extends DefaultEntityServiceImpl<Answer> implemen
 	private UserService userService;
 
 	public AnswerServiceImpl(
-			AnswerRepository repository,
-			RoomService roomService,
-			UserService userService,
-			@Qualifier("defaultJsonMessageConverter")
+			final AnswerRepository repository,
+			final RoomService roomService,
+			final UserService userService,
+			@Qualifier("defaultJsonMessageConverter") final
 			MappingJackson2HttpMessageConverter jackson2HttpMessageConverter) {
 		super(Answer.class, repository, jackson2HttpMessageConverter.getObjectMapper());
 		this.answerRepository = repository;
@@ -94,11 +94,11 @@ public class AnswerServiceImpl extends DefaultEntityServiceImpl<Answer> implemen
 			answers.add(entry);
 		}
 		try {
-			for (Answer e : answers) {
+			for (final Answer e : answers) {
 				this.eventPublisher.publishEvent(new BeforeCreationEvent<>(this, e));
 			}
 			answerRepository.saveAll(answers);
-			for (Answer e : answers) {
+			for (final Answer e : answers) {
 				this.eventPublisher.publishEvent(new AfterCreationEvent<>(this, e));
 			}
 		} catch (final DbAccessException e) {
@@ -151,10 +151,10 @@ public class AnswerServiceImpl extends DefaultEntityServiceImpl<Answer> implemen
 		if (content == null) {
 			throw new NotFoundException();
 		}
-		AnswerStatistics stats = answerRepository.findByContentIdRound(
+		final AnswerStatistics stats = answerRepository.findByContentIdRound(
 				content.getId(), round, content.getOptions().size());
 		/* Fill list with zeros to prevent IndexOutOfBoundsExceptions */
-		List<Integer> independentCounts = stats.getRoundStatistics().get(round - 1).getIndependentCounts();
+		final List<Integer> independentCounts = stats.getRoundStatistics().get(round - 1).getIndependentCounts();
 		while (independentCounts.size() < content.getOptions().size()) {
 			independentCounts.add(0);
 		}
@@ -180,8 +180,8 @@ public class AnswerServiceImpl extends DefaultEntityServiceImpl<Answer> implemen
 		if (content == null) {
 			throw new NotFoundException();
 		}
-		AnswerStatistics stats = getStatistics(content.getId(), 1);
-		AnswerStatistics stats2 = getStatistics(content.getId(), 2);
+		final AnswerStatistics stats = getStatistics(content.getId(), 1);
+		final AnswerStatistics stats2 = getStatistics(content.getId(), 2);
 		stats.getRoundStatistics().add(stats2.getRoundStatistics().get(1));
 
 		return stats;
@@ -387,7 +387,7 @@ public class AnswerServiceImpl extends DefaultEntityServiceImpl<Answer> implemen
 	@Override
 	public Map<String, Object> countAnswersAndAbstentionsInternal(final String contentId) {
 		final Content content = contentService.get(contentId);
-		HashMap<String, Object> map = new HashMap<>();
+		final HashMap<String, Object> map = new HashMap<>();
 
 		if (content == null) {
 			return null;
diff --git a/src/main/java/de/thm/arsnova/service/AttachmentServiceImpl.java b/src/main/java/de/thm/arsnova/service/AttachmentServiceImpl.java
index 619eadde33b5fe107c3fb0c5ec2d013f27ed143d..d31955f1a9773b11dc57762c9a1cf463e4f1c8a4 100644
--- a/src/main/java/de/thm/arsnova/service/AttachmentServiceImpl.java
+++ b/src/main/java/de/thm/arsnova/service/AttachmentServiceImpl.java
@@ -36,12 +36,12 @@ public class AttachmentServiceImpl extends DefaultEntityServiceImpl<Attachment>
 		this.attachmentRepository = repository;
 	}
 
-	public void upload(Attachment attachment, MultipartFile file) {
+	public void upload(final Attachment attachment, final MultipartFile file) {
 		/* TODO: implement file upload to storage */
 		create(attachment);
 	}
 
-	public void download(Attachment attachment) {
+	public void download(final Attachment attachment) {
 		/* TODO: implement file download from external URL to storage */
 		create(attachment);
 	}
diff --git a/src/main/java/de/thm/arsnova/service/CommentFindQueryService.java b/src/main/java/de/thm/arsnova/service/CommentFindQueryService.java
index f8841bb6ec2fe3a99f3a3bfcaffdeb22e8e02855..f5fcd1633939d1a6d3ee02296d772fbc640b5cb9 100644
--- a/src/main/java/de/thm/arsnova/service/CommentFindQueryService.java
+++ b/src/main/java/de/thm/arsnova/service/CommentFindQueryService.java
@@ -37,9 +37,9 @@ public class CommentFindQueryService implements FindQueryService<Comment> {
 
 	@Override
 	public Set<String> resolveQuery(final FindQuery<Comment> findQuery) {
-		Set<String> ids = new HashSet<>();
+		final Set<String> ids = new HashSet<>();
 		if (findQuery.getProperties().getRoomId() != null) {
-			for (Comment c : commentService.getByRoomId(findQuery.getProperties().getRoomId(), 0, 0)) {
+			for (final Comment c : commentService.getByRoomId(findQuery.getProperties().getRoomId(), 0, 0)) {
 				ids.add(c.getId());
 			}
 		}
diff --git a/src/main/java/de/thm/arsnova/service/CommentServiceImpl.java b/src/main/java/de/thm/arsnova/service/CommentServiceImpl.java
index 0ee2f04a718990fa7e654f0f8934dcb09ee05766..a640924aea473e7621bf1e6cd88771b376a3ae48 100644
--- a/src/main/java/de/thm/arsnova/service/CommentServiceImpl.java
+++ b/src/main/java/de/thm/arsnova/service/CommentServiceImpl.java
@@ -52,10 +52,11 @@ public class CommentServiceImpl extends DefaultEntityServiceImpl<Comment> implem
 	private CommentRepository commentRepository;
 
 	public CommentServiceImpl(
-			CommentRepository repository,
-			RoomService roomService,
-			UserService userService,
-			@Qualifier("defaultJsonMessageConverter") MappingJackson2HttpMessageConverter jackson2HttpMessageConverter) {
+			final CommentRepository repository,
+			final RoomService roomService,
+			final UserService userService,
+			@Qualifier("defaultJsonMessageConverter")
+			final MappingJackson2HttpMessageConverter jackson2HttpMessageConverter) {
 		super(Comment.class, repository, jackson2HttpMessageConverter.getObjectMapper());
 		this.commentRepository = repository;
 		this.roomService = roomService;
@@ -98,11 +99,11 @@ public class CommentServiceImpl extends DefaultEntityServiceImpl<Comment> implem
 
 	@Override
 	@PreAuthorize("isAuthenticated()")
-	public CommentReadingCount countRead(final String roomId, String username) {
+	public CommentReadingCount countRead(final String roomId, final String username) {
 		if (username == null) {
 			return commentRepository.countReadingByRoomId(roomId);
 		} else {
-			User user = userService.getCurrentUser();
+			final User user = userService.getCurrentUser();
 			if (!user.getUsername().equals(username)) {
 				throw new ForbiddenException();
 			}
@@ -130,7 +131,7 @@ public class CommentServiceImpl extends DefaultEntityServiceImpl<Comment> implem
 		if (comment == null) {
 			throw new NotFoundException();
 		}
-		Map<String, Object> changes = new HashMap<>();
+		final Map<String, Object> changes = new HashMap<>();
 		changes.put("read", true);
 		patch(comment, changes);
 
diff --git a/src/main/java/de/thm/arsnova/service/ContentFindQueryService.java b/src/main/java/de/thm/arsnova/service/ContentFindQueryService.java
index 0a20659ccd98a609862a37fb7c5a159ebac7ee17..ad668a81f3f7903fe2724dc8e66abfcaaf81f235 100644
--- a/src/main/java/de/thm/arsnova/service/ContentFindQueryService.java
+++ b/src/main/java/de/thm/arsnova/service/ContentFindQueryService.java
@@ -38,10 +38,10 @@ public class ContentFindQueryService implements FindQueryService<Content> {
 
 	@Override
 	public Set<String> resolveQuery(final FindQuery<Content> findQuery) {
-		Set<String> contentIds = new HashSet<>();
+		final Set<String> contentIds = new HashSet<>();
 		if (findQuery.getProperties().getRoomId() != null) {
-			List<Content> contentList = contentService.getByRoomId(findQuery.getProperties().getRoomId());
-			for (Content c : contentList) {
+			final List<Content> contentList = contentService.getByRoomId(findQuery.getProperties().getRoomId());
+			for (final Content c : contentList) {
 				contentIds.add(c.getId());
 			}
 		}
diff --git a/src/main/java/de/thm/arsnova/service/ContentServiceImpl.java b/src/main/java/de/thm/arsnova/service/ContentServiceImpl.java
index 6070a0ee08501d44a3feb024a15be95a00d6e59b..4c003d790a4f0afff2c2aeb24cea7177413b6036 100644
--- a/src/main/java/de/thm/arsnova/service/ContentServiceImpl.java
+++ b/src/main/java/de/thm/arsnova/service/ContentServiceImpl.java
@@ -70,12 +70,13 @@ public class ContentServiceImpl extends DefaultEntityServiceImpl<Content> implem
 	private static final Logger logger = LoggerFactory.getLogger(ContentServiceImpl.class);
 
 	public ContentServiceImpl(
-			ContentRepository repository,
-			RoomService roomService,
-			AnswerRepository answerRepository,
-			LogEntryRepository dbLogger,
-			UserService userService,
-			@Qualifier("defaultJsonMessageConverter") MappingJackson2HttpMessageConverter jackson2HttpMessageConverter) {
+			final ContentRepository repository,
+			final RoomService roomService,
+			final AnswerRepository answerRepository,
+			final LogEntryRepository dbLogger,
+			final UserService userService,
+			@Qualifier("defaultJsonMessageConverter")
+			final MappingJackson2HttpMessageConverter jackson2HttpMessageConverter) {
 		super(Content.class, repository, jackson2HttpMessageConverter.getObjectMapper());
 		this.contentRepository = repository;
 		this.roomService = roomService;
@@ -96,7 +97,7 @@ public class ContentServiceImpl extends DefaultEntityServiceImpl<Content> implem
 			content.getState().setRound(1);
 		}
 
-		Room room = roomService.get(content.getRoomId());
+		final Room room = roomService.get(content.getRoomId());
 		content.setGroups(room.getContentGroups().stream()
 				.map(Room.ContentGroup::getName).filter(g -> !g.isEmpty()).collect(Collectors.toSet()));
 	}
@@ -119,7 +120,7 @@ public class ContentServiceImpl extends DefaultEntityServiceImpl<Content> implem
 	public Iterable<Content> getByRoomIdAndGroup(final String roomId, final String group) {
 		final Room room = roomService.get(roomId);
 		Room.ContentGroup contentGroup = null;
-		for (Room.ContentGroup cg : room.getContentGroups()) {
+		for (final Room.ContentGroup cg : room.getContentGroups()) {
 			if (cg.getName().equals(group)) {
 				contentGroup = cg;
 			}
@@ -141,7 +142,7 @@ public class ContentServiceImpl extends DefaultEntityServiceImpl<Content> implem
 	public int countByRoomIdAndGroup(final String roomId, final String group) {
 		final Room room = roomService.get(roomId);
 		Room.ContentGroup contentGroup = null;
-		for (Room.ContentGroup cg : room.getContentGroups()) {
+		for (final Room.ContentGroup cg : room.getContentGroups()) {
 			if (cg.getName().equals(group)) {
 				contentGroup = cg;
 			}
@@ -182,7 +183,7 @@ public class ContentServiceImpl extends DefaultEntityServiceImpl<Content> implem
 		final Room room = roomService.get(content.getRoomId());
 		final Map<String, Room.ContentGroup> groups = room.getContentGroupsAsMap();
 		for (final String groupName : content.getGroups()) {
-			Room.ContentGroup group = groups.getOrDefault(groupName, new Room.ContentGroup());
+			final Room.ContentGroup group = groups.getOrDefault(groupName, new Room.ContentGroup());
 			groups.put(groupName, group);
 			group.getContentIds().add(content.getId());
 			group.setName(groupName);
@@ -224,7 +225,7 @@ public class ContentServiceImpl extends DefaultEntityServiceImpl<Content> implem
 		final Map<String, Room.ContentGroup> groups = room.getContentGroupsAsMap();
 		allGroupNames.addAll(groups.keySet());
 		for (final String groupName : allGroupNames) {
-			Room.ContentGroup group = groups.getOrDefault(groupName, new Room.ContentGroup());
+			final Room.ContentGroup group = groups.getOrDefault(groupName, new Room.ContentGroup());
 			if (contentsGroupNames.contains(groupName)) {
 				group.getContentIds().add(content.getId());
 				group.setName(groupName);
@@ -248,9 +249,9 @@ public class ContentServiceImpl extends DefaultEntityServiceImpl<Content> implem
 	}
 
 	@Override
-	protected void prepareDelete(Content content) {
+	protected void prepareDelete(final Content content) {
 		final Room room = roomService.get(content.getRoomId());
-		for (ContentGroup group : room.getContentGroups()) {
+		for (final ContentGroup group : room.getContentGroups()) {
 			group.getContentIds().remove(content.getId());
 		}
 		roomService.update(room);
@@ -332,7 +333,7 @@ public class ContentServiceImpl extends DefaultEntityServiceImpl<Content> implem
 			@CacheEvict(value = "lecturecontentlists", key = "#roomId"),
 			@CacheEvict(value = "preparationcontentlists", key = "#roomId"),
 			@CacheEvict(value = "flashcardcontentlists", key = "#roomId") })
-	public void setVotingAdmissions(final String roomId, final boolean disableVoting, Iterable<Content> contents) {
+	public void setVotingAdmissions(final String roomId, final boolean disableVoting, final Iterable<Content> contents) {
 		final User user = getCurrentUser();
 		final Room room = roomService.get(roomId);
 		if (!room.getOwnerId().equals(user.getId())) {
@@ -344,7 +345,7 @@ public class ContentServiceImpl extends DefaultEntityServiceImpl<Content> implem
 		patches.put("responsesEnabled", !disableVoting);
 		try {
 			patch(contents, patches, Content::getState);
-		} catch (IOException e) {
+		} catch (final IOException e) {
 			logger.error("Patching of contents failed", e);
 		}
 	}
@@ -426,7 +427,7 @@ public class ContentServiceImpl extends DefaultEntityServiceImpl<Content> implem
 			@CacheEvict(value = "lecturecontentlists", key = "#roomId"),
 			@CacheEvict(value = "preparationcontentlists", key = "#roomId"),
 			@CacheEvict(value = "flashcardcontentlists", key = "#roomId") })
-	public void publishContents(final String roomId, final boolean publish, Iterable<Content> contents)
+	public void publishContents(final String roomId, final boolean publish, final Iterable<Content> contents)
 			throws IOException {
 		final User user = getCurrentUser();
 		final Room room = roomService.get(roomId);
@@ -453,7 +454,7 @@ public class ContentServiceImpl extends DefaultEntityServiceImpl<Content> implem
 
 	@Override
 	@PreAuthorize("isAuthenticated()")
-	public void deleteAllPreparationAnswers(String roomId) {
+	public void deleteAllPreparationAnswers(final String roomId) {
 		final Room room = roomService.get(roomId);
 
 		final List<Content> contents = contentRepository.findByRoomIdAndVariantAndActive(room.getId(), "preparation");
@@ -464,7 +465,7 @@ public class ContentServiceImpl extends DefaultEntityServiceImpl<Content> implem
 
 	@Override
 	@PreAuthorize("isAuthenticated()")
-	public void deleteAllLectureAnswers(String roomId) {
+	public void deleteAllLectureAnswers(final String roomId) {
 		final Room room = roomService.get(roomId);
 
 		final List<Content> contents = contentRepository.findByRoomIdAndVariantAndActive(room.getId(), "lecture");
diff --git a/src/main/java/de/thm/arsnova/service/DefaultEntityServiceImpl.java b/src/main/java/de/thm/arsnova/service/DefaultEntityServiceImpl.java
index b303c12c42f3efb6fe4aab1bbd254c1ae1051fa2..dea9736b0f70898e896f09f52747512b23a4ae8e 100644
--- a/src/main/java/de/thm/arsnova/service/DefaultEntityServiceImpl.java
+++ b/src/main/java/de/thm/arsnova/service/DefaultEntityServiceImpl.java
@@ -61,7 +61,8 @@ public class DefaultEntityServiceImpl<T extends Entity> implements EntityService
 	protected ApplicationEventPublisher eventPublisher;
 	private ObjectMapper objectMapper;
 
-	public DefaultEntityServiceImpl(Class<T> type, CrudRepository<T, String> repository, ObjectMapper objectMapper) {
+	public DefaultEntityServiceImpl(
+			final Class<T> type, final CrudRepository<T, String> repository, final ObjectMapper objectMapper) {
 		this.type = type;
 		this.repository = repository;
 		this.objectMapper = objectMapper;
@@ -76,7 +77,7 @@ public class DefaultEntityServiceImpl<T extends Entity> implements EntityService
 	@Override
 	@Cacheable(cacheNames = "entity", key = "#root.target.getTypeName() + '-' + #id", condition = "#internal == false")
 	public T get(final String id, final boolean internal) {
-		T entity;
+		final T entity;
 		entity = repository.findOne(id);
 		if (internal) {
 			entity.setInternal(true);
@@ -89,7 +90,7 @@ public class DefaultEntityServiceImpl<T extends Entity> implements EntityService
 	@Override
 	@PreFilter(value = "hasPermission(filterObject, #this.this.getTypeName(), 'read')", filterTarget = "ids")
 	public Iterable<T> get(final Iterable<String> ids) {
-		Iterable<T> entities = repository.findAllById(ids);
+		final Iterable<T> entities = repository.findAllById(ids);
 		entities.forEach(this::modifyRetrieved);
 
 		return entities;
@@ -178,9 +179,9 @@ public class DefaultEntityServiceImpl<T extends Entity> implements EntityService
 	@PreAuthorize("hasPermission(#entity, 'update')")
 	public T patch(final T entity, final Map<String, Object> changes,
 			final Function<T, ? extends Object> propertyGetter) throws IOException {
-		Object obj = propertyGetter.apply(entity);
-		ObjectReader reader = objectMapper.readerForUpdating(obj).withView(View.Public.class);
-		JsonNode tree = objectMapper.valueToTree(changes);
+		final Object obj = propertyGetter.apply(entity);
+		final ObjectReader reader = objectMapper.readerForUpdating(obj).withView(View.Public.class);
+		final JsonNode tree = objectMapper.valueToTree(changes);
 		reader.readValue(tree);
 		entity.setUpdateTimestamp(new Date());
 		preparePatch(entity);
@@ -202,16 +203,16 @@ public class DefaultEntityServiceImpl<T extends Entity> implements EntityService
 	public Iterable<T> patch(final Iterable<T> entities, final Map<String, Object> changes,
 			final Function<T, ? extends Object> propertyGetter) throws IOException {
 		final JsonNode tree = objectMapper.valueToTree(changes);
-		for (T entity : entities) {
-			Object obj = propertyGetter.apply(entity);
-			ObjectReader reader = objectMapper.readerForUpdating(obj).withView(View.Public.class);
+		for (final T entity : entities) {
+			final Object obj = propertyGetter.apply(entity);
+			final ObjectReader reader = objectMapper.readerForUpdating(obj).withView(View.Public.class);
 			reader.readValue(tree);
 			entity.setUpdateTimestamp(new Date());
 			preparePatch(entity);
 			eventPublisher.publishEvent(new BeforePatchEvent<>(this, entity, propertyGetter, changes));
 		}
 
-		Iterable<T> patchedEntities = repository.saveAll(entities);
+		final Iterable<T> patchedEntities = repository.saveAll(entities);
 		patchedEntities.forEach((e) -> {
 			eventPublisher.publishEvent(new AfterPatchEvent<>(this, e, propertyGetter, changes));
 			modifyRetrieved(e);
@@ -242,12 +243,12 @@ public class DefaultEntityServiceImpl<T extends Entity> implements EntityService
 	@Override
 	@PreFilter(value = "hasPermission(filterObject, 'delete')", filterTarget = "entities")
 	public void delete(final Iterable<T> entities) {
-		for (T entity : entities) {
+		for (final T entity : entities) {
 			prepareDelete(entity);
 			eventPublisher.publishEvent(new BeforeDeletionEvent<>(this, entity));
 		}
 		repository.deleteAll(entities);
-		for (T entity : entities) {
+		for (final T entity : entities) {
 			eventPublisher.publishEvent(new AfterDeletionEvent<>(this, entity));
 		}
 	}
@@ -284,19 +285,19 @@ public class DefaultEntityServiceImpl<T extends Entity> implements EntityService
 	public static class EntityCacheHandler {
 		@CachePut(cacheNames = "entity", key = "#event.entity.class.simpleName.toLowerCase() + '-' + #event.entity.id")
 		@EventListener
-		public Entity handleCreate(AfterCreationEvent event) {
+		public Entity handleCreate(final AfterCreationEvent event) {
 			return event.getEntity();
 		}
 
 		@CachePut(cacheNames = "entity", key = "#event.entity.class.simpleName.toLowerCase() + '-' + #event.entity.id")
 		@EventListener
-		public Entity handleUpdate(AfterUpdateEvent event) {
+		public Entity handleUpdate(final AfterUpdateEvent event) {
 			return event.getEntity();
 		}
 
 		@CacheEvict(cacheNames = "entity", key = "#event.entity.class.simpleName.toLowerCase() + '-' + #event.entity.id")
 		@EventListener
-		public void handleDelete(AfterDeletionEvent event) {
+		public void handleDelete(final AfterDeletionEvent event) {
 
 		}
 	}
diff --git a/src/main/java/de/thm/arsnova/service/FeedbackServiceImpl.java b/src/main/java/de/thm/arsnova/service/FeedbackServiceImpl.java
index 3de6be8f5d5ce89a161aa928318ccf46f7e592d3..d36364fd5f50fcd91ce1273980b5ffbd596ffb5d 100644
--- a/src/main/java/de/thm/arsnova/service/FeedbackServiceImpl.java
+++ b/src/main/java/de/thm/arsnova/service/FeedbackServiceImpl.java
@@ -56,7 +56,7 @@ public class FeedbackServiceImpl implements FeedbackService, ApplicationEventPub
 
 	private ApplicationEventPublisher publisher;
 
-	public FeedbackServiceImpl(FeedbackStorageService feedbackStorage, RoomService roomService) {
+	public FeedbackServiceImpl(final FeedbackStorageService feedbackStorage, final RoomService roomService) {
 		this.feedbackStorage = feedbackStorage;
 		this.roomService = roomService;
 	}
@@ -64,7 +64,7 @@ public class FeedbackServiceImpl implements FeedbackService, ApplicationEventPub
 	@Override
 	@Scheduled(fixedDelay = DEFAULT_SCHEDULER_DELAY)
 	public void cleanFeedbackVotes() {
-		Map<Room, List<String>> deletedFeedbackOfUsersInSession = feedbackStorage.cleanVotes(cleanupFeedbackDelay);
+		final Map<Room, List<String>> deletedFeedbackOfUsersInSession = feedbackStorage.cleanVotes(cleanupFeedbackDelay);
 		/*
 		 * mapping (Room -> Users) is not suitable for web sockets, because we want to sent all affected
 		 * sessions to a single user in one go instead of sending multiple messages for each session. Hence,
@@ -72,11 +72,11 @@ public class FeedbackServiceImpl implements FeedbackService, ApplicationEventPub
 		 */
 		final Map<String, Set<Room>> affectedSessionsOfUsers = new HashMap<>();
 
-		for (Map.Entry<Room, List<String>> entry : deletedFeedbackOfUsersInSession.entrySet()) {
+		for (final Map.Entry<Room, List<String>> entry : deletedFeedbackOfUsersInSession.entrySet()) {
 			final Room room = entry.getKey();
 			final List<String> userIds = entry.getValue();
-			for (String userId : userIds) {
-				Set<Room> affectedSessions;
+			for (final String userId : userIds) {
+				final Set<Room> affectedSessions;
 				if (affectedSessionsOfUsers.containsKey(userId)) {
 					affectedSessions = affectedSessionsOfUsers.get(userId);
 				} else {
@@ -87,13 +87,13 @@ public class FeedbackServiceImpl implements FeedbackService, ApplicationEventPub
 			}
 		}
 		// Send feedback reset event to all affected users
-		for (Map.Entry<String, Set<Room>> entry : affectedSessionsOfUsers.entrySet()) {
+		for (final Map.Entry<String, Set<Room>> entry : affectedSessionsOfUsers.entrySet()) {
 			final String userId = entry.getKey();
 			final Set<Room> rooms = entry.getValue();
 			this.publisher.publishEvent(new DeleteFeedbackForRoomsEvent(this, rooms, userId));
 		}
 		// For each session that has deleted feedback, send the new feedback to all clients
-		for (Room room : deletedFeedbackOfUsersInSession.keySet()) {
+		for (final Room room : deletedFeedbackOfUsersInSession.keySet()) {
 			this.publisher.publishEvent(new NewFeedbackEvent(this, room.getId()));
 		}
 	}
@@ -101,12 +101,12 @@ public class FeedbackServiceImpl implements FeedbackService, ApplicationEventPub
 	@Override
 	public void cleanFeedbackVotesByRoomId(final String roomId, final int cleanupFeedbackDelayInMins) {
 		final Room room = roomService.get(roomId);
-		List<String> affectedUserIds = feedbackStorage.cleanVotesByRoom(room, cleanupFeedbackDelayInMins);
-		Set<Room> sessionSet = new HashSet<>();
+		final List<String> affectedUserIds = feedbackStorage.cleanVotesByRoom(room, cleanupFeedbackDelayInMins);
+		final Set<Room> sessionSet = new HashSet<>();
 		sessionSet.add(room);
 
 		// Send feedback reset event to all affected users
-		for (String userId : affectedUserIds) {
+		for (final String userId : affectedUserIds) {
 			this.publisher.publishEvent(new DeleteFeedbackForRoomsEvent(this, sessionSet, userId));
 		}
 		// send the new feedback to all clients in affected session
@@ -161,7 +161,7 @@ public class FeedbackServiceImpl implements FeedbackService, ApplicationEventPub
 	}
 
 	@Override
-	public void setApplicationEventPublisher(ApplicationEventPublisher publisher) {
+	public void setApplicationEventPublisher(final ApplicationEventPublisher publisher) {
 		this.publisher = publisher;
 	}
 }
diff --git a/src/main/java/de/thm/arsnova/service/FeedbackStorageServiceImpl.java b/src/main/java/de/thm/arsnova/service/FeedbackStorageServiceImpl.java
index 820bb06246a873cfc93a452b4e4697421e0699af..4600cf9796ef3c06e950ef50d9148d7b60d3a0ca 100644
--- a/src/main/java/de/thm/arsnova/service/FeedbackStorageServiceImpl.java
+++ b/src/main/java/de/thm/arsnova/service/FeedbackStorageServiceImpl.java
@@ -136,7 +136,7 @@ public class FeedbackStorageServiceImpl implements FeedbackStorageService {
 		final Map<Room, List<String>> removedFeedbackOfUsersInSession = new HashMap<>();
 		for (final Room room : data.keySet()) {
 			if (!room.getSettings().isQuickSurveyEnabled()) {
-				List<String> affectedUserIds = cleanVotesByRoom(room, cleanupFeedbackDelay);
+				final List<String> affectedUserIds = cleanVotesByRoom(room, cleanupFeedbackDelay);
 				if (!affectedUserIds.isEmpty()) {
 					removedFeedbackOfUsersInSession.put(room, affectedUserIds);
 				}
diff --git a/src/main/java/de/thm/arsnova/service/MotdServiceImpl.java b/src/main/java/de/thm/arsnova/service/MotdServiceImpl.java
index 13b2abcf3d2fb0079c0ffc17d755eb2b53598185..e57202ff50620c46854cc11aab13f2a8090a9a25 100644
--- a/src/main/java/de/thm/arsnova/service/MotdServiceImpl.java
+++ b/src/main/java/de/thm/arsnova/service/MotdServiceImpl.java
@@ -46,10 +46,11 @@ public class MotdServiceImpl extends DefaultEntityServiceImpl<Motd> implements M
 	private MotdRepository motdRepository;
 
 	public MotdServiceImpl(
-			MotdRepository repository,
-			UserService userService,
-			RoomService roomService,
-			@Qualifier("defaultJsonMessageConverter") MappingJackson2HttpMessageConverter jackson2HttpMessageConverter) {
+			final MotdRepository repository,
+			final UserService userService,
+			final RoomService roomService,
+			@Qualifier("defaultJsonMessageConverter")
+			final MappingJackson2HttpMessageConverter jackson2HttpMessageConverter) {
 		super(Motd.class, repository, jackson2HttpMessageConverter.getObjectMapper());
 		this.motdRepository = repository;
 		this.userService = userService;
@@ -100,9 +101,9 @@ public class MotdServiceImpl extends DefaultEntityServiceImpl<Motd> implements M
 	}
 
 	@Override
-	public List<Motd> filterMotdsByDate(List<Motd> list, Date clientdate) {
-		List<Motd> returns = new ArrayList<>();
-		for (Motd motd : list) {
+	public List<Motd> filterMotdsByDate(final List<Motd> list, final Date clientdate) {
+		final List<Motd> returns = new ArrayList<>();
+		for (final Motd motd : list) {
 			if (motd.getStartDate().before(clientdate) && motd.getEndDate().after(clientdate)) {
 				returns.add(motd);
 			}
@@ -111,7 +112,7 @@ public class MotdServiceImpl extends DefaultEntityServiceImpl<Motd> implements M
 	}
 
 	@Override
-	public List<Motd> filterMotdsByList(List<Motd> list, List<String> ids) {
+	public List<Motd> filterMotdsByList(final List<Motd> list, final List<String> ids) {
 		return list.stream().filter(id -> ids.contains(id)).collect(Collectors.toList());
 	}
 
@@ -124,7 +125,7 @@ public class MotdServiceImpl extends DefaultEntityServiceImpl<Motd> implements M
 	@Override
 	@PreAuthorize("hasPermission(#roomId, 'room', 'owner')")
 	public Motd save(final String roomId, final Motd motd) {
-		Room room = roomService.get(roomId);
+		final Room room = roomService.get(roomId);
 		motd.setRoomId(room.getId());
 
 		return createOrUpdateMotd(motd);
@@ -145,7 +146,7 @@ public class MotdServiceImpl extends DefaultEntityServiceImpl<Motd> implements M
 	@CacheEvict(cacheNames = "motds", key = "#motd.audience + #motd.roomId")
 	private Motd createOrUpdateMotd(final Motd motd) {
 		if (motd.getId() != null) {
-			Motd oldMotd = get(motd.getId());
+			final Motd oldMotd = get(motd.getId());
 			if (!(motd.getId().equals(oldMotd.getId()) && motd.getRoomId().equals(oldMotd.getRoomId())
 					&& motd.getAudience().equals(oldMotd.getAudience()))) {
 				throw new BadRequestException();
@@ -153,7 +154,7 @@ public class MotdServiceImpl extends DefaultEntityServiceImpl<Motd> implements M
 		}
 
 		if (null != motd.getId()) {
-			Motd oldMotd = get(motd.getId());
+			final Motd oldMotd = get(motd.getId());
 			motd.setId(oldMotd.getId());
 
 			return super.update(oldMotd, motd);
diff --git a/src/main/java/de/thm/arsnova/service/ResponseProviderServiceImpl.java b/src/main/java/de/thm/arsnova/service/ResponseProviderServiceImpl.java
index c50b8c5fa2689db22f9909a3fb7131a9263067cf..61a40def82ef16ea8cf6b3e2944673b6e3e4797c 100644
--- a/src/main/java/de/thm/arsnova/service/ResponseProviderServiceImpl.java
+++ b/src/main/java/de/thm/arsnova/service/ResponseProviderServiceImpl.java
@@ -30,7 +30,7 @@ public class ResponseProviderServiceImpl implements ResponseProviderService {
 	HttpServletResponse response;
 
 	@Override
-	public void setResponse(HttpServletResponse response) {
+	public void setResponse(final HttpServletResponse response) {
 		this.response = response;
 	}
 
diff --git a/src/main/java/de/thm/arsnova/service/RoomFindQueryService.java b/src/main/java/de/thm/arsnova/service/RoomFindQueryService.java
index 12c6b84f22e30d9671e6617919a9f040f677ad60..180a187d462e28db2a436e71d88472719865a94c 100644
--- a/src/main/java/de/thm/arsnova/service/RoomFindQueryService.java
+++ b/src/main/java/de/thm/arsnova/service/RoomFindQueryService.java
@@ -40,15 +40,15 @@ public class RoomFindQueryService implements FindQueryService<Room> {
 
 	@Override
 	public Set<String> resolveQuery(final FindQuery<Room> findQuery) {
-		List<List<String>> ids = new ArrayList<>();
+		final List<List<String>> ids = new ArrayList<>();
 		if (findQuery.getExternalFilters().get("inHistoryOfUserId") instanceof String) {
-			UserProfile inHistoryOfUser = userService.get(
+			final UserProfile inHistoryOfUser = userService.get(
 					(String) findQuery.getExternalFilters().get("inHistoryOfUserId"));
 			ids.add(inHistoryOfUser.getRoomHistory().stream()
 					.map(UserProfile.RoomHistoryEntry::getRoomId).collect(Collectors.toList()));
 		}
 		if (findQuery.getExternalFilters().get("moderatedByUserId") instanceof String) {
-			List<String> moderatedRoomIds = roomService.getRoomIdsByModeratorId(
+			final List<String> moderatedRoomIds = roomService.getRoomIdsByModeratorId(
 					(String) findQuery.getExternalFilters().get("moderatedByUserId"));
 			ids.add(moderatedRoomIds);
 		}
diff --git a/src/main/java/de/thm/arsnova/service/RoomServiceImpl.java b/src/main/java/de/thm/arsnova/service/RoomServiceImpl.java
index 8fb29b28db50471b60beeaf2325eac8e79e020ab..0bef23bacd870589636b41aaa77b3e0bea737a93 100644
--- a/src/main/java/de/thm/arsnova/service/RoomServiceImpl.java
+++ b/src/main/java/de/thm/arsnova/service/RoomServiceImpl.java
@@ -93,11 +93,12 @@ public class RoomServiceImpl extends DefaultEntityServiceImpl<Room> implements R
 	private int uploadFileSizeByte;
 
 	public RoomServiceImpl(
-			RoomRepository repository,
-			LogEntryRepository dbLogger,
-			UserService userService,
-			ScoreCalculatorFactory scoreCalculatorFactory,
-			@Qualifier("defaultJsonMessageConverter") MappingJackson2HttpMessageConverter jackson2HttpMessageConverter) {
+			final RoomRepository repository,
+			final LogEntryRepository dbLogger,
+			final UserService userService,
+			final ScoreCalculatorFactory scoreCalculatorFactory,
+			@Qualifier("defaultJsonMessageConverter")
+			final MappingJackson2HttpMessageConverter jackson2HttpMessageConverter) {
 		super(Room.class, repository, jackson2HttpMessageConverter.getObjectMapper());
 		this.roomRepository = repository;
 		this.dbLogger = dbLogger;
@@ -144,7 +145,7 @@ public class RoomServiceImpl extends DefaultEntityServiceImpl<Room> implements R
 	}
 
 	@Autowired(required = false)
-	public void setConnectorClient(ConnectorClient connectorClient) {
+	public void setConnectorClient(final ConnectorClient connectorClient) {
 		this.connectorClient = connectorClient;
 	}
 
@@ -152,10 +153,10 @@ public class RoomServiceImpl extends DefaultEntityServiceImpl<Room> implements R
 	public void deleteInactiveRooms() {
 		if (guestRoomInactivityThresholdDays > 0) {
 			logger.info("Delete inactive rooms.");
-			long unixTime = System.currentTimeMillis();
-			long lastActivityBefore = unixTime - guestRoomInactivityThresholdDays * 24 * 60 * 60 * 1000L;
-			int[] totalCount = new int[] {0, 0, 0};
-			List<Room> inactiveRooms = roomRepository.findInactiveGuestRoomsMetadata(lastActivityBefore);
+			final long unixTime = System.currentTimeMillis();
+			final long lastActivityBefore = unixTime - guestRoomInactivityThresholdDays * 24 * 60 * 60 * 1000L;
+			final int[] totalCount = new int[] {0, 0, 0};
+			final List<Room> inactiveRooms = roomRepository.findInactiveGuestRoomsMetadata(lastActivityBefore);
 			delete(inactiveRooms);
 
 			if (!inactiveRooms.isEmpty()) {
@@ -172,17 +173,17 @@ public class RoomServiceImpl extends DefaultEntityServiceImpl<Room> implements R
 	@Override
 	protected void modifyRetrieved(final Room room) {
 		// creates a set from all room content groups
-		Set<String> cidsWithGroup = room.getContentGroups().stream()
+		final Set<String> cidsWithGroup = room.getContentGroups().stream()
 				.map(Room.ContentGroup::getContentIds)
 				.flatMap(ids -> ids.stream())
 				.collect(Collectors.toSet());
 
-		Set<String> cids = new HashSet<>(contentRepository.findIdsByRoomId(room.getId()));
+		final Set<String> cids = new HashSet<>(contentRepository.findIdsByRoomId(room.getId()));
 		cids.removeAll(cidsWithGroup);
 
 		if (!cids.isEmpty()) {
 			final Set<Room.ContentGroup> cgs = room.getContentGroups();
-			Room.ContentGroup defaultGroup = new Room.ContentGroup();
+			final Room.ContentGroup defaultGroup = new Room.ContentGroup();
 			defaultGroup.setContentIds(cids);
 			defaultGroup.setAutoSort(true);
 			defaultGroup.setName("");
@@ -192,7 +193,7 @@ public class RoomServiceImpl extends DefaultEntityServiceImpl<Room> implements R
 
 	@Override
 	public Room join(final String id, final UUID socketId) {
-		Room room = null != id ? get(id) : null;
+		final Room room = null != id ? get(id) : null;
 		if (null == room) {
 			userService.removeUserFromRoomBySocketId(socketId);
 			return null;
@@ -226,7 +227,7 @@ public class RoomServiceImpl extends DefaultEntityServiceImpl<Room> implements R
 		if (shortId == null) {
 			throw new NullPointerException("shortId cannot be null");
 		}
-		Room room = roomRepository.findByShortId(shortId);
+		final Room room = roomRepository.findByShortId(shortId);
 		if (room == null) {
 			throw new NotFoundException("No Room exists for short ID");
 		}
@@ -268,14 +269,14 @@ public class RoomServiceImpl extends DefaultEntityServiceImpl<Room> implements R
 	/* TODO: Updated SpEL expression has not been tested yet */
 	@Override
 	@PreAuthorize("isAuthenticated() and hasPermission(#userId, 'userprofile', 'owner')")
-	public List<Room> getUserRooms(String userId) {
+	public List<Room> getUserRooms(final String userId) {
 		return roomRepository.findByOwnerId(userId, 0, 0);
 	}
 
 	/* TODO: Updated SpEL expression has not been tested yet */
 	@Override
 	@PreAuthorize("isAuthenticated() and hasPermission(#userId, 'userprofile', 'owner')")
-	public List<String> getUserRoomIds(String userId) {
+	public List<String> getUserRoomIds(final String userId) {
 		return roomRepository.findIdsByOwnerId(userId);
 	}
 
@@ -323,7 +324,7 @@ public class RoomServiceImpl extends DefaultEntityServiceImpl<Room> implements R
 		final UserProfile profile = userService.get(userId);
 		final List<String> roomIds = profile.getRoomHistory().stream()
 				.map(entry -> entry.getRoomId()).collect(Collectors.toList());
-		List<Room> rooms = new ArrayList<>();
+		final List<Room> rooms = new ArrayList<>();
 		roomRepository.findAllById(roomIds).forEach(rooms::add);
 
 		return rooms;
@@ -332,7 +333,7 @@ public class RoomServiceImpl extends DefaultEntityServiceImpl<Room> implements R
 	@Override
 	@PreAuthorize("isAuthenticated()")
 	public List<Room> getMyRoomHistoryInfo(final int offset, final int limit) {
-		List<Room> rooms = getMyRoomHistory(0, 0);
+		final List<Room> rooms = getMyRoomHistory(0, 0);
 		roomRepository.getRoomHistoryWithStatsForUser(rooms, userService.getCurrentUser().getId());
 
 		return rooms;
@@ -353,7 +354,7 @@ public class RoomServiceImpl extends DefaultEntityServiceImpl<Room> implements R
 
 		handleLogo(room);
 
-		Room.Settings sf = new Room.Settings();
+		final Room.Settings sf = new Room.Settings();
 		room.setSettings(sf);
 
 		room.setShortId(generateShortId());
@@ -425,7 +426,7 @@ public class RoomServiceImpl extends DefaultEntityServiceImpl<Room> implements R
 	@Override
 	@PreAuthorize("hasPermission('', 'motd', 'admin')")
 	@Caching(evict = { @CacheEvict("rooms"), @CacheEvict(cacheNames = "rooms", key = "#id") })
-	public Room updateCreator(String id, String newCreator) {
+	public Room updateCreator(final String id, final String newCreator) {
 		throw new UnsupportedOperationException("No longer implemented.");
 	}
 
@@ -433,7 +434,7 @@ public class RoomServiceImpl extends DefaultEntityServiceImpl<Room> implements R
 	@PreAuthorize("hasPermission(#id, 'room', 'read')")
 	public ScoreStatistics getLearningProgress(final String id, final String type, final String questionVariant) {
 		final Room room = get(id);
-		ScoreCalculator scoreCalculator = scoreCalculatorFactory.create(type, questionVariant);
+		final ScoreCalculator scoreCalculator = scoreCalculatorFactory.create(type, questionVariant);
 		return scoreCalculator.getCourseProgress(room);
 	}
 
@@ -442,13 +443,13 @@ public class RoomServiceImpl extends DefaultEntityServiceImpl<Room> implements R
 	public ScoreStatistics getMyLearningProgress(final String id, final String type, final String questionVariant) {
 		final Room room = get(id);
 		final User user = userService.getCurrentUser();
-		ScoreCalculator scoreCalculator = scoreCalculatorFactory.create(type, questionVariant);
+		final ScoreCalculator scoreCalculator = scoreCalculatorFactory.create(type, questionVariant);
 		return scoreCalculator.getMyProgress(room, user.getId());
 	}
 
 	@Override
 	@PreAuthorize("hasPermission('', 'room', 'create')")
-	public Room importRooms(ImportExportContainer importRoom) {
+	public Room importRooms(final ImportExportContainer importRoom) {
 		final User user = userService.getCurrentUser();
 		final Room info = roomRepository.importRoom(user.getId(), importRoom);
 		if (info == null) {
@@ -459,14 +460,15 @@ public class RoomServiceImpl extends DefaultEntityServiceImpl<Room> implements R
 
 	@Override
 	@PreAuthorize("hasPermission(#id, 'room', 'owner')")
-	public ImportExportContainer exportRoom(String id, Boolean withAnswerStatistics, Boolean withFeedbackQuestions) {
+	public ImportExportContainer exportRoom(
+			final String id, final Boolean withAnswerStatistics, final Boolean withFeedbackQuestions) {
 		return roomRepository.exportRoom(id, withAnswerStatistics, withFeedbackQuestions);
 	}
 
 	@Override
 	@PreAuthorize("hasPermission(#id, 'room', 'owner')")
-	public Room copyRoomToPublicPool(String id, ImportExportContainer.PublicPool pp) {
-		ImportExportContainer temp = roomRepository.exportRoom(id, false, false);
+	public Room copyRoomToPublicPool(final String id, final ImportExportContainer.PublicPool pp) {
+		final ImportExportContainer temp = roomRepository.exportRoom(id, false, false);
 		temp.getSession().setPublicPool(pp);
 		temp.getSession().setSessionType("public_pool");
 		final User user = userService.getCurrentUser();
@@ -475,13 +477,13 @@ public class RoomServiceImpl extends DefaultEntityServiceImpl<Room> implements R
 
 	@Override
 	@PreAuthorize("hasPermission(#id, 'room', 'read')")
-	public Room.Settings getFeatures(String id) {
+	public Room.Settings getFeatures(final String id) {
 		return get(id).getSettings();
 	}
 
 	@Override
 	@PreAuthorize("hasPermission(#id, 'room', 'owner')")
-	public Room.Settings updateFeatures(String id, Room.Settings settings) {
+	public Room.Settings updateFeatures(final String id, final Room.Settings settings) {
 		final Room room = get(id);
 		room.setSettings(settings);
 
@@ -492,7 +494,7 @@ public class RoomServiceImpl extends DefaultEntityServiceImpl<Room> implements R
 
 	@Override
 	@PreAuthorize("hasPermission(#id, 'room', 'owner')")
-	public boolean lockFeedbackInput(String id, Boolean lock) throws IOException {
+	public boolean lockFeedbackInput(final String id, final Boolean lock) throws IOException {
 		final Room room = get(id);
 		if (!lock) {
 			feedbackService.cleanFeedbackVotesByRoomId(id, 0);
@@ -504,14 +506,14 @@ public class RoomServiceImpl extends DefaultEntityServiceImpl<Room> implements R
 
 	@Override
 	@PreAuthorize("hasPermission(#id, 'room', 'owner')")
-	public boolean flipFlashcards(String id, Boolean flip) {
+	public boolean flipFlashcards(final String id, final Boolean flip) {
 		final Room room = get(id);
 		this.eventPublisher.publishEvent(new FlipFlashcardsEvent(this, room.getId()));
 
 		return flip;
 	}
 
-	private void handleLogo(Room room) {
+	private void handleLogo(final Room room) {
 		if (room.getAuthor() != null && room.getAuthor().getOrganizationLogo() != null) {
 			if (!room.getAuthor().getOrganizationLogo().startsWith("http")) {
 				throw new IllegalArgumentException("Invalid logo URL.");
diff --git a/src/main/java/de/thm/arsnova/service/StatisticsServiceImpl.java b/src/main/java/de/thm/arsnova/service/StatisticsServiceImpl.java
index e92a7f576df2f37aaa97621e006311b46bb9dca4..da0f7f4f5297e7196723a44635d1236984c1384f 100644
--- a/src/main/java/de/thm/arsnova/service/StatisticsServiceImpl.java
+++ b/src/main/java/de/thm/arsnova/service/StatisticsServiceImpl.java
@@ -36,8 +36,8 @@ public class StatisticsServiceImpl implements StatisticsService {
 	private UserService userService;
 
 	public StatisticsServiceImpl(
-			StatisticsRepository repository,
-			UserService userService) {
+			final StatisticsRepository repository,
+			final UserService userService) {
 		this.statisticsRepository = repository;
 		this.userService = userService;
 	}
diff --git a/src/main/java/de/thm/arsnova/service/TimerServiceImpl.java b/src/main/java/de/thm/arsnova/service/TimerServiceImpl.java
index 1fabf8ea17bfff9226a79dcb3baa332a27bad334..a539d3371a273256a2cf2cc09bda1978859fa1dd 100644
--- a/src/main/java/de/thm/arsnova/service/TimerServiceImpl.java
+++ b/src/main/java/de/thm/arsnova/service/TimerServiceImpl.java
@@ -106,7 +106,7 @@ public class TimerServiceImpl implements TimerService {
 
 	@Override
 	public void cancelDelayedRoundChange(final String contentId) {
-		Timer timer = timerList.get(contentId);
+		final Timer timer = timerList.get(contentId);
 
 		if (null != timer) {
 			timer.cancel();
diff --git a/src/main/java/de/thm/arsnova/service/UserServiceImpl.java b/src/main/java/de/thm/arsnova/service/UserServiceImpl.java
index 98a93c5b7af5bb8ec7efcbd0b96ec1fe232a3f99..5bf25e1a44232c8f4a48be4c66ce624e22b8519e 100644
--- a/src/main/java/de/thm/arsnova/service/UserServiceImpl.java
+++ b/src/main/java/de/thm/arsnova/service/UserServiceImpl.java
@@ -173,9 +173,10 @@ public class UserServiceImpl extends DefaultEntityServiceImpl<UserProfile> imple
 	}
 
 	public UserServiceImpl(
-			UserRepository repository,
-			JavaMailSender mailSender,
-			@Qualifier("defaultJsonMessageConverter") MappingJackson2HttpMessageConverter jackson2HttpMessageConverter) {
+			final UserRepository repository,
+			final JavaMailSender mailSender,
+			@Qualifier("defaultJsonMessageConverter")
+			final MappingJackson2HttpMessageConverter jackson2HttpMessageConverter) {
 		super(UserProfile.class, repository, jackson2HttpMessageConverter.getObjectMapper());
 		this.userRepository = repository;
 		this.mailSender = mailSender;
@@ -200,8 +201,8 @@ public class UserServiceImpl extends DefaultEntityServiceImpl<UserProfile> imple
 	@Scheduled(fixedDelay = ACTIVATION_KEY_CHECK_INTERVAL_MS)
 	public void deleteInactiveUsers() {
 		logger.info("Delete inactive users.");
-		long unixTime = System.currentTimeMillis();
-		long lastActivityBefore = unixTime - ACTIVATION_KEY_DURABILITY_MS;
+		final long unixTime = System.currentTimeMillis();
+		final long lastActivityBefore = unixTime - ACTIVATION_KEY_DURABILITY_MS;
 		userRepository.deleteInactiveUsers(lastActivityBefore);
 	}
 
@@ -223,15 +224,15 @@ public class UserServiceImpl extends DefaultEntityServiceImpl<UserProfile> imple
 
 	@Override
 	public de.thm.arsnova.model.ClientAuthentication getCurrentClientAuthentication() {
-		Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
+		final Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
 		if (authentication == null || !(authentication.getPrincipal() instanceof User)) {
 			return null;
 		}
-		User user = (User) authentication.getPrincipal();
-		String jwt = authentication instanceof JwtToken
+		final User user = (User) authentication.getPrincipal();
+		final String jwt = authentication instanceof JwtToken
 				? (String) authentication.getCredentials() : jwtService.createSignedToken(user);
 
-		ClientAuthentication clientAuthentication =
+		final ClientAuthentication clientAuthentication =
 				new ClientAuthentication(user.getId(), user.getUsername(),
 						user.getAuthProvider(), jwt);
 
@@ -244,12 +245,12 @@ public class UserServiceImpl extends DefaultEntityServiceImpl<UserProfile> imple
 	}
 
 	@Override
-	public boolean isBannedFromLogin(String addr) {
+	public boolean isBannedFromLogin(final String addr) {
 		return loginBans.contains(addr);
 	}
 
 	@Override
-	public void increaseFailedLoginCount(String addr) {
+	public void increaseFailedLoginCount(final String addr) {
 		Byte tries = loginTries.get(addr);
 		if (null == tries) {
 			tries = 0;
@@ -285,7 +286,7 @@ public class UserServiceImpl extends DefaultEntityServiceImpl<UserProfile> imple
 
 	@Override
 	public boolean isUserInRoom(final String userId, final String expectedRoomId) {
-		String actualRoomId = userIdToRoomId.get(userId);
+		final String actualRoomId = userIdToRoomId.get(userId);
 
 		return actualRoomId != null && actualRoomId.equals(expectedRoomId);
 	}
@@ -348,7 +349,7 @@ public class UserServiceImpl extends DefaultEntityServiceImpl<UserProfile> imple
 	@Override
 	public void authenticate(final UsernamePasswordAuthenticationToken token,
 			final UserProfile.AuthProvider authProvider) {
-		Authentication auth;
+		final Authentication auth;
 		switch (authProvider) {
 			case LDAP:
 				auth = ldapAuthenticationProvider.authenticate(token);
@@ -363,11 +364,12 @@ public class UserServiceImpl extends DefaultEntityServiceImpl<UserProfile> imple
 					id = generateGuestId();
 					autoCreate = true;
 				}
-				UserDetails userDetails = guestUserDetailsService.loadUserByUsername(id, autoCreate);
+				final UserDetails userDetails = guestUserDetailsService.loadUserByUsername(id, autoCreate);
 				if (userDetails == null) {
 					throw new UsernameNotFoundException("Guest user does not exist");
 				}
-				auth = new UsernamePasswordAuthenticationToken(userDetails, null, userDetails.getAuthorities());
+				auth = new UsernamePasswordAuthenticationToken(
+						userDetails, null, userDetails.getAuthorities());
 
 				break;
 			default:
@@ -403,7 +405,7 @@ public class UserServiceImpl extends DefaultEntityServiceImpl<UserProfile> imple
 	public User loadUser(final String userId, final Collection<GrantedAuthority> grantedAuthorities)
 			throws UsernameNotFoundException {
 		logger.debug("Load user: UserId: {}", userId);
-		UserProfile userProfile = userRepository.findOne(userId);
+		final UserProfile userProfile = userRepository.findOne(userId);
 		if (userProfile == null) {
 			throw new UsernameNotFoundException("User does not exist.");
 		}
@@ -422,13 +424,13 @@ public class UserServiceImpl extends DefaultEntityServiceImpl<UserProfile> imple
 	}
 
 	@Override
-	public UserProfile getByUsername(String username) {
+	public UserProfile getByUsername(final String username) {
 		return userRepository.findByAuthProviderAndLoginId(UserProfile.AuthProvider.ARSNOVA, username.toLowerCase());
 	}
 
 	@Override
-	public UserProfile create(String username, String password) {
-		String lcUsername = username.toLowerCase();
+	public UserProfile create(final String username, final String password) {
+		final String lcUsername = username.toLowerCase();
 
 		if (null == keygen) {
 			keygen = KeyGenerators.secureRandom(16);
@@ -450,8 +452,8 @@ public class UserServiceImpl extends DefaultEntityServiceImpl<UserProfile> imple
 			return null;
 		}
 
-		UserProfile userProfile = new UserProfile();
-		UserProfile.Account account = new UserProfile.Account();
+		final UserProfile userProfile = new UserProfile();
+		final UserProfile.Account account = new UserProfile.Account();
 		userProfile.setAccount(account);
 		userProfile.setAuthProvider(UserProfile.AuthProvider.ARSNOVA);
 		userProfile.setLoginId(lcUsername);
@@ -460,7 +462,7 @@ public class UserServiceImpl extends DefaultEntityServiceImpl<UserProfile> imple
 		userProfile.setCreationTimestamp(new Date());
 
 		/* Repository is accessed directly without EntityService to skip permission check */
-		UserProfile result = userRepository.save(userProfile);
+		final UserProfile result = userRepository.save(userProfile);
 		if (null != result) {
 			sendActivationEmail(result);
 		} else {
@@ -470,7 +472,7 @@ public class UserServiceImpl extends DefaultEntityServiceImpl<UserProfile> imple
 		return result;
 	}
 
-	private String encodePassword(String password) {
+	private String encodePassword(final String password) {
 		if (null == encoder) {
 			encoder = new BCryptPasswordEncoder(12);
 		}
@@ -478,9 +480,9 @@ public class UserServiceImpl extends DefaultEntityServiceImpl<UserProfile> imple
 		return encoder.encode(password);
 	}
 
-	private void sendActivationEmail(UserProfile userProfile) {
-		String activationKey = userProfile.getAccount().getActivationKey();
-		String activationUrl = MessageFormat.format(
+	private void sendActivationEmail(final UserProfile userProfile) {
+		final String activationKey = userProfile.getAccount().getActivationKey();
+		final String activationUrl = MessageFormat.format(
 				"{0}{1}/{2}?action=activate&username={3}&key={4}",
 				rootUrl,
 				customizationPath,
@@ -494,17 +496,18 @@ public class UserServiceImpl extends DefaultEntityServiceImpl<UserProfile> imple
 	private void parseMailAddressPattern() {
 		/* TODO: Add Unicode support */
 
-		List<String> domainList = Arrays.asList(allowedEmailDomains.split(","));
+		final List<String> domainList = Arrays.asList(allowedEmailDomains.split(","));
 
 		if (!domainList.isEmpty()) {
-			List<String> patterns = new ArrayList<>();
+			final List<String> patterns = new ArrayList<>();
 			if (domainList.contains("*")) {
 				patterns.add("([a-z0-9-]+\\.)+[a-z0-9-]+");
 			} else {
-				Pattern patternPattern = Pattern.compile("[a-z0-9.*-]+", Pattern.CASE_INSENSITIVE);
-				for (String patternStr : domainList) {
+				final Pattern patternPattern = Pattern.compile("[a-z0-9.*-]+", Pattern.CASE_INSENSITIVE);
+				for (final String patternStr : domainList) {
 					if (patternPattern.matcher(patternStr).matches()) {
-						patterns.add(patternStr.replaceAll("[.]", "[.]").replaceAll("[*]", "[a-z0-9-]+?"));
+						patterns.add(
+								patternStr.replaceAll("[.]", "[.]").replaceAll("[*]", "[a-z0-9-]+?"));
 					}
 				}
 			}
@@ -516,7 +519,7 @@ public class UserServiceImpl extends DefaultEntityServiceImpl<UserProfile> imple
 	}
 
 	@Override
-	public UserProfile update(UserProfile userProfile) {
+	public UserProfile update(final UserProfile userProfile) {
 		if (null != userProfile.getId()) {
 			return userRepository.save(userProfile);
 		}
@@ -525,15 +528,15 @@ public class UserServiceImpl extends DefaultEntityServiceImpl<UserProfile> imple
 	}
 
 	@Override
-	public UserProfile deleteByUsername(String username) {
-		User user = getCurrentUser();
+	public UserProfile deleteByUsername(final String username) {
+		final User user = getCurrentUser();
 		if (!user.getUsername().equals(username.toLowerCase())
 				&& !SecurityContextHolder.getContext().getAuthentication().getAuthorities()
 						.contains(new SimpleGrantedAuthority("ROLE_ADMIN"))) {
 			throw new UnauthorizedException();
 		}
 
-		UserProfile userProfile = getByUsername(username);
+		final UserProfile userProfile = getByUsername(username);
 		if (null == userProfile) {
 			throw new NotFoundException();
 		}
@@ -549,29 +552,29 @@ public class UserServiceImpl extends DefaultEntityServiceImpl<UserProfile> imple
 		if (userProfile.getId().equals(room.getOwnerId())) {
 			return;
 		}
-		Set<UserProfile.RoomHistoryEntry> roomHistory = userProfile.getRoomHistory();
-		UserProfile.RoomHistoryEntry entry = new UserProfile.RoomHistoryEntry(room.getId(), new Date());
+		final Set<UserProfile.RoomHistoryEntry> roomHistory = userProfile.getRoomHistory();
+		final UserProfile.RoomHistoryEntry entry = new UserProfile.RoomHistoryEntry(room.getId(), new Date());
 		/* TODO: lastVisit in roomHistory is currently not updated by subsequent method invocations */
 		if (!roomHistory.contains(entry)) {
 			roomHistory.add(entry);
-			Map<String, Object> changes = Collections.singletonMap("roomHistory", roomHistory);
+			final Map<String, Object> changes = Collections.singletonMap("roomHistory", roomHistory);
 			try {
 				super.patch(userProfile, changes);
-			} catch (IOException e) {
+			} catch (final IOException e) {
 				logger.error("Could not patch RoomHistory");
 			}
 		}
 	}
 
 	@Override
-	public void initiatePasswordReset(String username) {
-		UserProfile userProfile = getByUsername(username);
+	public void initiatePasswordReset(final String username) {
+		final UserProfile userProfile = getByUsername(username);
 		if (null == userProfile) {
 			logger.info("Password reset failed. User {} does not exist.", username);
 
 			throw new NotFoundException();
 		}
-		UserProfile.Account account = userProfile.getAccount();
+		final UserProfile.Account account = userProfile.getAccount();
 		// checks if a password reset process in in progress
 		if ((account.getPasswordResetTime() != null)
 				&& (System.currentTimeMillis()
@@ -589,14 +592,14 @@ public class UserServiceImpl extends DefaultEntityServiceImpl<UserProfile> imple
 			logger.error("Password reset failed. {} could not be updated.", username);
 		}
 
-		String resetPasswordUrl = MessageFormat.format(
+		final String resetPasswordUrl = MessageFormat.format(
 				"{0}{1}/{2}?action=resetpassword&username={3}&key={4}",
 				rootUrl,
 				customizationPath,
 				resetPasswordPath,
 				UriUtils.encodeQueryParam(userProfile.getLoginId(), "UTF-8"), account.getPasswordResetKey());
 
-		String mailBody = MessageFormat.format(
+		final String mailBody = MessageFormat.format(
 				resetPasswordMailBody,
 				resetPasswordUrl,
 				account.getPasswordResetKey()
@@ -606,8 +609,8 @@ public class UserServiceImpl extends DefaultEntityServiceImpl<UserProfile> imple
 	}
 
 	@Override
-	public boolean resetPassword(UserProfile userProfile, String key, String password) {
-		UserProfile.Account account = userProfile.getAccount();
+	public boolean resetPassword(final UserProfile userProfile, final String key, final String password) {
+		final UserProfile.Account account = userProfile.getAccount();
 		if (null == key || "".equals(key) || !key.equals(account.getPasswordResetKey())) {
 			logger.info("Password reset failed. Invalid key provided for User {}.", userProfile.getLoginId());
 
@@ -632,9 +635,9 @@ public class UserServiceImpl extends DefaultEntityServiceImpl<UserProfile> imple
 		return true;
 	}
 
-	private void sendEmail(UserProfile userProfile, String subject, String body) {
-		MimeMessage msg = mailSender.createMimeMessage();
-		MimeMessageHelper helper = new MimeMessageHelper(msg, "UTF-8");
+	private void sendEmail(final UserProfile userProfile, final String subject, final String body) {
+		final MimeMessage msg = mailSender.createMimeMessage();
+		final MimeMessageHelper helper = new MimeMessageHelper(msg, "UTF-8");
 		try {
 			helper.setFrom(mailSenderName + "<" + mailSenderAddress + ">");
 			helper.setTo(userProfile.getLoginId());
@@ -643,7 +646,7 @@ public class UserServiceImpl extends DefaultEntityServiceImpl<UserProfile> imple
 
 			logger.info("Sending mail \"{}\" from \"{}\" to \"{}\"", subject, msg.getFrom(), userProfile.getLoginId());
 			mailSender.send(msg);
-		} catch (MailException | MessagingException e) {
+		} catch (final MailException | MessagingException e) {
 			logger.warn("Mail \"{}\" could not be sent.", subject, e);
 		}
 	}
@@ -666,11 +669,11 @@ public class UserServiceImpl extends DefaultEntityServiceImpl<UserProfile> imple
 	}
 
 	public User getAuthenticatedUserByWsSession(final String wsSessionId) {
-		String jwt = wsSessionIdToJwt.getOrDefault(wsSessionId, null);
+		final String jwt = wsSessionIdToJwt.getOrDefault(wsSessionId, null);
 		if (jwt == null) {
 			return null;
 		}
-		User u = jwtService.verifyToken(jwt);
+		final User u = jwtService.verifyToken(jwt);
 		if (u == null) {
 			return null;
 		}
diff --git a/src/main/java/de/thm/arsnova/service/score/QuestionBasedScoreCalculator.java b/src/main/java/de/thm/arsnova/service/score/QuestionBasedScoreCalculator.java
index 6188ce98f5bb81e60417d7410e34757127089172..aa5298891a58cdbd2b416f2b2e6ba2186ff2a669 100644
--- a/src/main/java/de/thm/arsnova/service/score/QuestionBasedScoreCalculator.java
+++ b/src/main/java/de/thm/arsnova/service/score/QuestionBasedScoreCalculator.java
@@ -27,7 +27,7 @@ import de.thm.arsnova.persistence.SessionStatisticsRepository;
  */
 public class QuestionBasedScoreCalculator extends VariantScoreCalculator {
 
-	public QuestionBasedScoreCalculator(SessionStatisticsRepository sessionStatisticsRepository) {
+	public QuestionBasedScoreCalculator(final SessionStatisticsRepository sessionStatisticsRepository) {
 		super(sessionStatisticsRepository);
 	}
 
@@ -36,7 +36,7 @@ public class QuestionBasedScoreCalculator extends VariantScoreCalculator {
 		final int courseProgress = calculateCourseProgress();
 		final int numerator = courseScore.getQuestionCount() * courseProgress / 100;
 		final int denominator = courseScore.getQuestionCount();
-		ScoreStatistics lpv = new ScoreStatistics();
+		final ScoreStatistics lpv = new ScoreStatistics();
 		lpv.setCourseProgress(courseProgress);
 		lpv.setNumQuestions(courseScore.getQuestionCount());
 		lpv.setNumUsers(courseScore.getTotalUserCount());
@@ -47,11 +47,11 @@ public class QuestionBasedScoreCalculator extends VariantScoreCalculator {
 
 	private int calculateCourseProgress() {
 		double ratio = 0;
-		for (QuestionScore questionScore : courseScore) {
+		for (final QuestionScore questionScore : courseScore) {
 			if (!questionScore.hasScores()) {
 				continue;
 			}
-			int numAnswers = questionScore.getUserCount();
+			final int numAnswers = questionScore.getUserCount();
 			if (numAnswers != 0) {
 				ratio += (double) countCorrectAnswers(questionScore) / (numAnswers * courseScore.getQuestionCount());
 			}
@@ -59,10 +59,10 @@ public class QuestionBasedScoreCalculator extends VariantScoreCalculator {
 		return (int) Math.min(100, Math.round(ratio * 100));
 	}
 
-	private int countCorrectAnswers(QuestionScore questionScore) {
-		int requiredScore = questionScore.getMaximum();
+	private int countCorrectAnswers(final QuestionScore questionScore) {
+		final int requiredScore = questionScore.getMaximum();
 		int numAnswersCorrect = 0;
-		for (UserScore userScore : questionScore) {
+		for (final UserScore userScore : questionScore) {
 			if (userScore.hasScore(requiredScore)) {
 				numAnswersCorrect++;
 			}
@@ -71,10 +71,10 @@ public class QuestionBasedScoreCalculator extends VariantScoreCalculator {
 	}
 
 	@Override
-	protected ScoreStatistics createMyProgress(String userId) {
+	protected ScoreStatistics createMyProgress(final String userId) {
 		final int numerator = numQuestionsCorrectForUser(userId);
 		final int denominator = courseScore.getQuestionCount();
-		ScoreStatistics lpv = new ScoreStatistics();
+		final ScoreStatistics lpv = new ScoreStatistics();
 		lpv.setCourseProgress(calculateCourseProgress());
 		lpv.setMyProgress(myPercentage(numerator, denominator));
 		lpv.setNumQuestions(courseScore.getQuestionCount());
@@ -84,18 +84,18 @@ public class QuestionBasedScoreCalculator extends VariantScoreCalculator {
 		return lpv;
 	}
 
-	private int numQuestionsCorrectForUser(String userId) {
+	private int numQuestionsCorrectForUser(final String userId) {
 		int numQuestionsCorrect = 0;
-		for (QuestionScore questionScore : courseScore) {
+		for (final QuestionScore questionScore : courseScore) {
 			numQuestionsCorrect += countCorrectAnswersForUser(userId, questionScore);
 		}
 		return numQuestionsCorrect;
 	}
 
-	private int countCorrectAnswersForUser(String userId, QuestionScore questionScore) {
+	private int countCorrectAnswersForUser(final String userId, final QuestionScore questionScore) {
 		int numQuestionsCorrect = 0;
-		int requiredScore = questionScore.getMaximum();
-		for (UserScore userScore : questionScore) {
+		final int requiredScore = questionScore.getMaximum();
+		for (final UserScore userScore : questionScore) {
 			if (!userScore.isUser(userId)) {
 				continue;
 			}
@@ -106,7 +106,7 @@ public class QuestionBasedScoreCalculator extends VariantScoreCalculator {
 		return numQuestionsCorrect;
 	}
 
-	private int myPercentage(int numQuestionsCorrect, int questionCount) {
+	private int myPercentage(final int numQuestionsCorrect, final int questionCount) {
 		final double myLearningProgress = numQuestionsCorrect / (double) questionCount;
 		return (int) Math.min(100, Math.round(myLearningProgress * 100));
 	}
diff --git a/src/main/java/de/thm/arsnova/service/score/QuestionScore.java b/src/main/java/de/thm/arsnova/service/score/QuestionScore.java
index 62d01d9562942a926ef42ad65e8225b96f99818c..a4845fef8db9f13df50b39083755da9e7c81cd34 100644
--- a/src/main/java/de/thm/arsnova/service/score/QuestionScore.java
+++ b/src/main/java/de/thm/arsnova/service/score/QuestionScore.java
@@ -39,7 +39,8 @@ public class QuestionScore implements Iterable<UserScore> {
 
 	private List<UserScore> userScores = new ArrayList<>();
 
-	public QuestionScore(String questionId, String questionVariant, int piRound, int maximumScore) {
+	public QuestionScore(
+			final String questionId, final String questionVariant, final int piRound, final int maximumScore) {
 		this.questionId = questionId;
 		this.questionVariant = questionVariant;
 		this.piRound = piRound;
@@ -59,7 +60,7 @@ public class QuestionScore implements Iterable<UserScore> {
 		return !this.userScores.isEmpty();
 	}
 
-	public void add(int piRound, String userId, int userscore) {
+	public void add(final int piRound, final String userId, final int userscore) {
 		if (this.piRound == piRound) {
 			userScores.add(new UserScore(userId, userscore));
 		}
@@ -67,15 +68,15 @@ public class QuestionScore implements Iterable<UserScore> {
 
 	public int getTotalUserScore() {
 		int totalScore = 0;
-		for (UserScore score : userScores) {
+		for (final UserScore score : userScores) {
 			totalScore += score.getScore();
 		}
 		return totalScore;
 	}
 
-	public int getTotalUserScore(String userId) {
+	public int getTotalUserScore(final String userId) {
 		int totalScore = 0;
-		for (UserScore score : userScores) {
+		for (final UserScore score : userScores) {
 			if (score.isUser(userId)) {
 				totalScore += score.getScore();
 			}
@@ -87,13 +88,13 @@ public class QuestionScore implements Iterable<UserScore> {
 		return userScores.size();
 	}
 
-	public void collectUsers(Set<String> users) {
-		for (UserScore score : userScores) {
+	public void collectUsers(final Set<String> users) {
+		for (final UserScore score : userScores) {
 			users.add(score.getUserId());
 		}
 	}
 
-	public boolean isVariant(String questionVariant) {
+	public boolean isVariant(final String questionVariant) {
 		return this.questionVariant.equals(questionVariant);
 	}
 }
diff --git a/src/main/java/de/thm/arsnova/service/score/Score.java b/src/main/java/de/thm/arsnova/service/score/Score.java
index 99c7bd68422b0b10c17de4aeb869bafc3e8d8d82..d15fe2a53a6f89467a0758046ce18d308a05e4c1 100644
--- a/src/main/java/de/thm/arsnova/service/score/Score.java
+++ b/src/main/java/de/thm/arsnova/service/score/Score.java
@@ -36,18 +36,19 @@ public class Score implements Iterable<QuestionScore> {
 		this(new HashMap<String, QuestionScore>());
 	}
 
-	public Score(Map<String, QuestionScore> theScores) {
+	public Score(final Map<String, QuestionScore> theScores) {
 		this.scores = theScores;
 	}
 
-	public void addQuestion(String questionId, String questionVariant, int piRound, int questionScore) {
+	public void addQuestion(
+			final String questionId, final String questionVariant, final int piRound, final int questionScore) {
 		if (questionScore == 0) {
 			return;
 		}
 		scores.put(questionId, new QuestionScore(questionId, questionVariant, piRound, questionScore));
 	}
 
-	public void addAnswer(String questionId, int piRound, String userId, int userscore) {
+	public void addAnswer(final String questionId, final int piRound, final String userId, final int userscore) {
 		if (!scores.containsKey(questionId)) {
 			// Precondition failed, ignore this element.
 			// Most likely this is a question that has no score value.
@@ -57,15 +58,15 @@ public class Score implements Iterable<QuestionScore> {
 			// Precondition failed: ignore anonymous users
 			return;
 		}
-		QuestionScore questionScore = scores.get(questionId);
+		final QuestionScore questionScore = scores.get(questionId);
 		questionScore.add(piRound, userId, userscore);
 	}
 
-	public Score filterVariant(String questionVariant) {
-		Map<String, QuestionScore> newScores = new HashMap<>();
-		for (Entry<String, QuestionScore> entry : this.scores.entrySet()) {
-			String questionId = entry.getKey();
-			QuestionScore questionScore = entry.getValue();
+	public Score filterVariant(final String questionVariant) {
+		final Map<String, QuestionScore> newScores = new HashMap<>();
+		for (final Entry<String, QuestionScore> entry : this.scores.entrySet()) {
+			final String questionId = entry.getKey();
+			final QuestionScore questionScore = entry.getValue();
 			if (questionScore.isVariant(questionVariant)) {
 				newScores.put(questionId, questionScore);
 			}
@@ -75,7 +76,7 @@ public class Score implements Iterable<QuestionScore> {
 
 	public int getMaximumScore() {
 		int score = 0;
-		for (QuestionScore questionScore : this) {
+		for (final QuestionScore questionScore : this) {
 			score += questionScore.getMaximum();
 		}
 		return score;
@@ -83,23 +84,23 @@ public class Score implements Iterable<QuestionScore> {
 
 	public int getTotalUserScore() {
 		int score = 0;
-		for (QuestionScore questionScore : this) {
+		for (final QuestionScore questionScore : this) {
 			score += questionScore.getTotalUserScore();
 		}
 		return score;
 	}
 
-	public double getTotalUserScore(String userId) {
+	public double getTotalUserScore(final String userId) {
 		int score = 0;
-		for (QuestionScore questionScore : this) {
+		for (final QuestionScore questionScore : this) {
 			score += questionScore.getTotalUserScore(userId);
 		}
 		return score;
 	}
 
 	public int getTotalUserCount() {
-		Set<String> users = new HashSet<>();
-		for (QuestionScore questionScore : this) {
+		final Set<String> users = new HashSet<>();
+		for (final QuestionScore questionScore : this) {
 			questionScore.collectUsers(users);
 		}
 		return users.size();
diff --git a/src/main/java/de/thm/arsnova/service/score/ScoreBasedScoreCalculator.java b/src/main/java/de/thm/arsnova/service/score/ScoreBasedScoreCalculator.java
index f1ed464f5d6ec1aa4c8c6925a9db6e1a46e5e150..a624ee85c0ced71d9448fd586dc1cacf0c61b08c 100644
--- a/src/main/java/de/thm/arsnova/service/score/ScoreBasedScoreCalculator.java
+++ b/src/main/java/de/thm/arsnova/service/score/ScoreBasedScoreCalculator.java
@@ -26,13 +26,13 @@ import de.thm.arsnova.persistence.SessionStatisticsRepository;
  */
 public class ScoreBasedScoreCalculator extends VariantScoreCalculator {
 
-	public ScoreBasedScoreCalculator(SessionStatisticsRepository sessionStatisticsRepository) {
+	public ScoreBasedScoreCalculator(final SessionStatisticsRepository sessionStatisticsRepository) {
 		super(sessionStatisticsRepository);
 	}
 
 	@Override
 	protected ScoreStatistics createCourseProgress() {
-		ScoreStatistics lpv = new ScoreStatistics();
+		final ScoreStatistics lpv = new ScoreStatistics();
 		lpv.setCourseProgress(coursePercentage());
 		lpv.setNumQuestions(courseScore.getQuestionCount());
 		lpv.setNumUsers(courseScore.getTotalUserCount());
@@ -54,8 +54,8 @@ public class ScoreBasedScoreCalculator extends VariantScoreCalculator {
 	}
 
 	@Override
-	protected ScoreStatistics createMyProgress(String userId) {
-		ScoreStatistics lpv = new ScoreStatistics();
+	protected ScoreStatistics createMyProgress(final String userId) {
+		final ScoreStatistics lpv = new ScoreStatistics();
 		lpv.setCourseProgress(coursePercentage());
 		lpv.setNumQuestions(courseScore.getQuestionCount());
 		lpv.setNumUsers(courseScore.getTotalUserCount());
@@ -65,7 +65,7 @@ public class ScoreBasedScoreCalculator extends VariantScoreCalculator {
 		return lpv;
 	}
 
-	private int myPercentage(String userId) {
+	private int myPercentage(final String userId) {
 		final int courseMaximumValue = courseScore.getMaximumScore();
 		final double userTotalValue = courseScore.getTotalUserScore(userId);
 		if (courseMaximumValue == 0) {
diff --git a/src/main/java/de/thm/arsnova/service/score/ScoreCalculatorFactoryImpl.java b/src/main/java/de/thm/arsnova/service/score/ScoreCalculatorFactoryImpl.java
index c108a03192b0205bf52c781bf89765e53787d3f8..b32e015a6df4abd3bc68d2bd4f46b92b0cfa4ec9 100644
--- a/src/main/java/de/thm/arsnova/service/score/ScoreCalculatorFactoryImpl.java
+++ b/src/main/java/de/thm/arsnova/service/score/ScoreCalculatorFactoryImpl.java
@@ -47,8 +47,8 @@ public class ScoreCalculatorFactoryImpl implements ScoreCalculatorFactory, Appli
 	private ApplicationEventPublisher publisher;
 
 	@Override
-	public ScoreCalculator create(String type, String questionVariant) {
-		VariantScoreCalculator scoreCalculator;
+	public ScoreCalculator create(final String type, final String questionVariant) {
+		final VariantScoreCalculator scoreCalculator;
 		if ("questions".equals(type)) {
 			scoreCalculator = new QuestionBasedScoreCalculator(sessionStatisticsRepository);
 		} else {
@@ -60,36 +60,36 @@ public class ScoreCalculatorFactoryImpl implements ScoreCalculatorFactory, Appli
 
 	@CacheEvict(value = "score", key = "#event.entity.roomId", condition = "#event.entity.roomId != null")
 	@EventListener
-	public void handleAfterContentCreation(AfterCreationEvent<Content> event) {
+	public void handleAfterContentCreation(final AfterCreationEvent<Content> event) {
 		this.publisher.publishEvent(new ChangeScoreEvent(this, event.getEntity().getRoomId()));
 	}
 
 	@CacheEvict(value = "score", key = "#event.entity.roomId", condition = "#event.entity.roomId != null")
 	@EventListener(condition = "#event.stateName == 'state'")
-	public void handleContentStateChange(StateChangeEvent<Content, Content.State> event) {
+	public void handleContentStateChange(final StateChangeEvent<Content, Content.State> event) {
 		this.publisher.publishEvent(new ChangeScoreEvent(this, event.getEntity().getRoomId()));
 	}
 
 	@CacheEvict(value = "score", key = "#event.entity.roomId", condition = "#event.entity.roomId != null")
 	@EventListener
-	public void handleNewAnswer(AfterCreationEvent<Answer> event) {
+	public void handleNewAnswer(final AfterCreationEvent<Answer> event) {
 		this.publisher.publishEvent(new ChangeScoreEvent(this, event.getEntity().getRoomId()));
 	}
 
 	@CacheEvict(value = "score", key = "#event.entity.roomId", condition = "#event.entity.roomId != null")
 	@EventListener
-	public void handleDeleteAnswer(AfterDeletionEvent<Answer> event) {
+	public void handleDeleteAnswer(final AfterDeletionEvent<Answer> event) {
 		this.publisher.publishEvent(new ChangeScoreEvent(this, event.getEntity().getRoomId()));
 	}
 
 	@CacheEvict(value = "score", key = "#event.entity.roomId", condition = "#event.entity.roomId != null")
 	@EventListener
-	public void handleDeleteQuestion(AfterDeletionEvent<Content> event) {
+	public void handleDeleteQuestion(final AfterDeletionEvent<Content> event) {
 		this.publisher.publishEvent(new ChangeScoreEvent(this, event.getEntity().getRoomId()));
 	}
 
 	@Override
-	public void setApplicationEventPublisher(ApplicationEventPublisher publisher) {
+	public void setApplicationEventPublisher(final ApplicationEventPublisher publisher) {
 		this.publisher = publisher;
 	}
 
diff --git a/src/main/java/de/thm/arsnova/service/score/UserScore.java b/src/main/java/de/thm/arsnova/service/score/UserScore.java
index 175b862b0a329ee6e7388fe0425cf5b5b55c2e2b..4e4e2ca9d8fa64c7b6d98c76514fa63d91a017a8 100644
--- a/src/main/java/de/thm/arsnova/service/score/UserScore.java
+++ b/src/main/java/de/thm/arsnova/service/score/UserScore.java
@@ -27,12 +27,12 @@ public class UserScore {
 
 	private int score;
 
-	public UserScore(String userId, int score) {
+	public UserScore(final String userId, final int score) {
 		this.userId = userId;
 		this.score = score;
 	}
 
-	public boolean hasScore(int score) {
+	public boolean hasScore(final int score) {
 		return this.score == score;
 	}
 
@@ -40,7 +40,7 @@ public class UserScore {
 		return score;
 	}
 
-	public boolean isUser(String userId) {
+	public boolean isUser(final String userId) {
 		return this.userId.equals(userId);
 	}
 
diff --git a/src/main/java/de/thm/arsnova/service/score/VariantScoreCalculator.java b/src/main/java/de/thm/arsnova/service/score/VariantScoreCalculator.java
index 990a9548936208baaf541e28d98b5569f8a87378..549a7d6e07e78597890b5151384556c29fe972ae 100644
--- a/src/main/java/de/thm/arsnova/service/score/VariantScoreCalculator.java
+++ b/src/main/java/de/thm/arsnova/service/score/VariantScoreCalculator.java
@@ -53,7 +53,7 @@ abstract class VariantScoreCalculator implements ScoreCalculator {
 	}
 
 	@Override
-	public ScoreStatistics getCourseProgress(Room room) {
+	public ScoreStatistics getCourseProgress(final Room room) {
 		this.refreshProgress(room);
 		this.filterVariant();
 		return this.createCourseProgress();
@@ -62,7 +62,7 @@ abstract class VariantScoreCalculator implements ScoreCalculator {
 	protected abstract ScoreStatistics createCourseProgress();
 
 	@Override
-	public ScoreStatistics getMyProgress(Room room, String userId) {
+	public ScoreStatistics getMyProgress(final Room room, final String userId) {
 		this.refreshProgress(room);
 		this.filterVariant();
 		return this.createMyProgress(userId);
diff --git a/src/main/java/de/thm/arsnova/util/ImageUtils.java b/src/main/java/de/thm/arsnova/util/ImageUtils.java
index 2032ffd62140f3b0d9cef60a5c1981dbddf788ad..6ada092490ea64ccbc82ddb216c44cdcb239b764 100644
--- a/src/main/java/de/thm/arsnova/util/ImageUtils.java
+++ b/src/main/java/de/thm/arsnova/util/ImageUtils.java
@@ -95,7 +95,7 @@ public class ImageUtils {
 	 * @param maybeImage The Image as a base64 encoded {@link String}
 	 * @return true if the string is a potentially a base 64 encoded image.
 	 */
-	boolean isBase64EncodedImage(String maybeImage) {
+	boolean isBase64EncodedImage(final String maybeImage) {
 		return extractImageInfo(maybeImage) != null;
 	}
 
@@ -156,7 +156,7 @@ public class ImageUtils {
 	 * @return The rescaled Image as Base64-encoded {@link String}, returns null
 	 *         if the passed-on image isn't in a valid format (a Base64-Image).
 	 */
-	String createCover(String originalImageString, final int width, final int height) {
+	String createCover(final String originalImageString, final int width, final int height) {
 		if (!isBase64EncodedImage(originalImageString)) {
 			return null;
 		} else {
@@ -166,12 +166,12 @@ public class ImageUtils {
 			final String extension = imgInfo[0];
 			final String base64String = imgInfo[1];
 
-			byte[] imageData = Base64.decodeBase64(base64String);
+			final byte[] imageData = Base64.decodeBase64(base64String);
 			try (final ByteArrayInputStream bais = new ByteArrayInputStream(imageData);
 					final ByteArrayOutputStream baos = new ByteArrayOutputStream()) {
-				BufferedImage originalImage = ImageIO.read(bais);
-				BufferedImage newImage = new BufferedImage(width, height, originalImage.getType());
-				Graphics2D g = newImage.createGraphics();
+				final BufferedImage originalImage = ImageIO.read(bais);
+				final BufferedImage newImage = new BufferedImage(width, height, originalImage.getType());
+				final Graphics2D g = newImage.createGraphics();
 
 				final double ratio = ((double) originalImage.getWidth()) / ((double) originalImage.getHeight());
 
@@ -191,7 +191,7 @@ public class ImageUtils {
 				g.drawImage(originalImage, x, y, w, h, null);
 				g.dispose();
 
-				StringBuilder result = new StringBuilder();
+				final StringBuilder result = new StringBuilder();
 				result.append(IMAGE_PREFIX_START);
 				result.append(extension);
 				result.append(IMAGE_PREFIX_MIDDLE);
@@ -203,7 +203,7 @@ public class ImageUtils {
 				result.append(Base64.encodeBase64String(baos.toByteArray()));
 
 				return result.toString();
-			} catch (IOException e) {
+			} catch (final IOException e) {
 				logger.error(e.getLocalizedMessage());
 				return null;
 			}
@@ -218,7 +218,7 @@ public class ImageUtils {
 	 * @return true if the thumbnail image didn't exist before calling this
 	 *         method, false otherwise
 	 */
-	public boolean generateThumbnailImage(Answer answer) {
+	public boolean generateThumbnailImage(final Answer answer) {
 		if (!isBase64EncodedImage(answer.getAnswerThumbnailImage())) {
 			final String thumbImage = createCover(answer.getAnswerImage(), thumbWidth, thumbHeight);
 			answer.setAnswerThumbnailImage(thumbImage);
@@ -246,7 +246,7 @@ public class ImageUtils {
 			baos.flush();
 
 			return baos.toByteArray();
-		} catch (IOException e) {
+		} catch (final IOException e) {
 			logger.error(e.getLocalizedMessage());
 		}
 
diff --git a/src/main/java/de/thm/arsnova/web/CacheControl.java b/src/main/java/de/thm/arsnova/web/CacheControl.java
index 4fad63ee23334fc6df35a90ff35eb27b28dae1c2..7e27a0535c8893c9afb43aefc4a1a650a8df2275 100644
--- a/src/main/java/de/thm/arsnova/web/CacheControl.java
+++ b/src/main/java/de/thm/arsnova/web/CacheControl.java
@@ -39,7 +39,7 @@ public @interface CacheControl {
 			this.policyString = null;
 		}
 
-		Policy(String policyString) {
+		Policy(final String policyString) {
 			this.policyString = policyString;
 		}
 
diff --git a/src/main/java/de/thm/arsnova/web/CorsFilter.java b/src/main/java/de/thm/arsnova/web/CorsFilter.java
index f5aa3a32009d0be21d455e72f6e819f3feab0aaa..a8738832409a3367f0937620fd9b97d088f083d8 100644
--- a/src/main/java/de/thm/arsnova/web/CorsFilter.java
+++ b/src/main/java/de/thm/arsnova/web/CorsFilter.java
@@ -28,14 +28,14 @@ public class CorsFilter extends org.springframework.web.filter.CorsFilter {
 	private static final String TOKEN_HEADER_NAME = "Arsnova-Auth-Token";
 	private final Logger logger = LoggerFactory.getLogger(CorsFilter.class);
 
-	public CorsFilter(List<String> origins) {
+	public CorsFilter(final List<String> origins) {
 		super(configurationSource(origins));
 		logger.info("CorsFilter initialized. Allowed origins: {}", origins);
 	}
 
-	private static UrlBasedCorsConfigurationSource configurationSource(List<String> origins) {
-		UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
-		CorsConfiguration config;
+	private static UrlBasedCorsConfigurationSource configurationSource(final List<String> origins) {
+		final UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
+		final CorsConfiguration config;
 
 		if (!origins.isEmpty()) {
 			/* Grant full access from specified origins */
diff --git a/src/main/java/de/thm/arsnova/web/PathApiVersionContentNegotiationStrategy.java b/src/main/java/de/thm/arsnova/web/PathApiVersionContentNegotiationStrategy.java
index 699a79f6c45c959ef0371987b02acf78d9ec16da..b5875482a84979586104c51d2253d3825f793882 100644
--- a/src/main/java/de/thm/arsnova/web/PathApiVersionContentNegotiationStrategy.java
+++ b/src/main/java/de/thm/arsnova/web/PathApiVersionContentNegotiationStrategy.java
@@ -45,7 +45,7 @@ public class PathApiVersionContentNegotiationStrategy implements ContentNegotiat
 	private MediaType fallback;
 	private MediaType empty = MediaType.valueOf(AbstractEntityController.MEDIATYPE_EMPTY);
 
-	public PathApiVersionContentNegotiationStrategy(MediaType fallback) {
+	public PathApiVersionContentNegotiationStrategy(final MediaType fallback) {
 		this.fallback = fallback;
 	}
 
diff --git a/src/main/java/de/thm/arsnova/web/RangeAspect.java b/src/main/java/de/thm/arsnova/web/RangeAspect.java
index 4c9781392e461c2b520a2eff54875d9ab991828d..f6fae2b8fdceddf1986f18d3bae23b253e15b833 100644
--- a/src/main/java/de/thm/arsnova/web/RangeAspect.java
+++ b/src/main/java/de/thm/arsnova/web/RangeAspect.java
@@ -58,9 +58,10 @@ public class RangeAspect {
 	 */
 	@Around("execution(java.util.List+ de.thm.arsnova.controller.*.*(..))"
 			+ " && this(controller) && @annotation(de.thm.arsnova.web.Pagination)")
-	public Object handlePaginationRange(ProceedingJoinPoint pjp, final PaginationController controller) throws Throwable {
+	public Object handlePaginationRange(final ProceedingJoinPoint pjp, final PaginationController controller)
+			throws Throwable {
 		logger.debug("handlePaginationRange");
-		String rangeHeader = request.getHeader("Range");
+		final String rangeHeader = request.getHeader("Range");
 		Matcher matcher = null;
 		int start = -1;
 		int end = -1;
@@ -76,12 +77,12 @@ public class RangeAspect {
 		}
 		controller.setRange(start, end);
 
-		List<?> list = (List<?>) pjp.proceed();
+		final List<?> list = (List<?>) pjp.proceed();
 
 		if (list != null && matcher != null && matcher.matches()) {
 			int totalSize = -1;
 			if (list instanceof PaginationListDecorator) {
-				PaginationListDecorator<?> pl = (PaginationListDecorator<?>) list;
+				final PaginationListDecorator<?> pl = (PaginationListDecorator<?>) list;
 				totalSize = pl.getTotalSize();
 			}
 
@@ -90,8 +91,8 @@ public class RangeAspect {
 			 * The value for end is calculated since the result list
 			 * could be shorter than requested.
 			 */
-			String rangeStr = String.format("items %d-%d/%d", start, start + list.size() - 1, totalSize);
-			HttpServletResponse response = responseProviderService.getResponse();
+			final String rangeStr = String.format("items %d-%d/%d", start, start + list.size() - 1, totalSize);
+			final HttpServletResponse response = responseProviderService.getResponse();
 			response.addHeader("Content-Range", rangeStr);
 		}
 
diff --git a/src/main/java/de/thm/arsnova/web/ResponseInterceptorHandler.java b/src/main/java/de/thm/arsnova/web/ResponseInterceptorHandler.java
index 7e7c69547a34b95a9c2aeed0e448bc166f24a64b..eb7c0975212a17f240a0854741420c931a32f604 100644
--- a/src/main/java/de/thm/arsnova/web/ResponseInterceptorHandler.java
+++ b/src/main/java/de/thm/arsnova/web/ResponseInterceptorHandler.java
@@ -38,9 +38,9 @@ public class ResponseInterceptorHandler extends HandlerInterceptorAdapter {
 
 	@Override
 	public boolean preHandle(
-			HttpServletRequest request,
-			HttpServletResponse response,
-			Object handler
+			final HttpServletRequest request,
+			final HttpServletResponse response,
+			final Object handler
 	) throws Exception {
 		responseProviderService.setResponse(response);
 
diff --git a/src/main/java/de/thm/arsnova/web/V2ContentTypeOverrideFilter.java b/src/main/java/de/thm/arsnova/web/V2ContentTypeOverrideFilter.java
index 99c09a24eae85b5f69db5e3b40ef04779b46f7a9..ab033adb9f01b3b7b061d707de90bc722a1a0c88 100644
--- a/src/main/java/de/thm/arsnova/web/V2ContentTypeOverrideFilter.java
+++ b/src/main/java/de/thm/arsnova/web/V2ContentTypeOverrideFilter.java
@@ -61,10 +61,10 @@ public class V2ContentTypeOverrideFilter extends OncePerRequestFilter {
 	@Override
 	protected void doFilterInternal(final HttpServletRequest request, final HttpServletResponse response,
 			final FilterChain filterChain) throws IOException, ServletException {
-		HttpServletRequest requestWrapper = new HttpServletRequestWrapper(request) {
+		final HttpServletRequest requestWrapper = new HttpServletRequestWrapper(request) {
 			@Override
 			public String getHeader(final String name) {
-				String header = super.getHeader(name);
+				final String header = super.getHeader(name);
 				if (header != null && HttpHeaders.CONTENT_TYPE.equals(name)
 						&& MediaType.APPLICATION_JSON.includes(MediaType.valueOf(header))) {
 					logger.debug("Overriding {} header: {}", HttpHeaders.CONTENT_TYPE, AppConfig.API_V2_MEDIA_TYPE_VALUE);
@@ -81,7 +81,7 @@ public class V2ContentTypeOverrideFilter extends OncePerRequestFilter {
 
 			@Override
 			public Enumeration<String> getHeaders(final String name) {
-				String firstHeader = super.getHeaders(name).nextElement();
+				final String firstHeader = super.getHeaders(name).nextElement();
 				if (firstHeader != null && HttpHeaders.CONTENT_TYPE.equals(name)
 						&& MediaType.APPLICATION_JSON.includes(MediaType.valueOf(firstHeader))) {
 					logger.debug("Overriding {} header: {}", HttpHeaders.CONTENT_TYPE, AppConfig.API_V2_MEDIA_TYPE_VALUE);
diff --git a/src/main/java/de/thm/arsnova/web/exceptions/BadRequestException.java b/src/main/java/de/thm/arsnova/web/exceptions/BadRequestException.java
index 7f417aca25d9f61a91e4254365b7e6948ba0d4f6..2ece9003fb5bced06a41ef2513326cc4494eef57 100644
--- a/src/main/java/de/thm/arsnova/web/exceptions/BadRequestException.java
+++ b/src/main/java/de/thm/arsnova/web/exceptions/BadRequestException.java
@@ -10,15 +10,15 @@ public class BadRequestException extends RuntimeException {
 		super();
 	}
 
-	public BadRequestException(String message) {
+	public BadRequestException(final String message) {
 		super(message);
 	}
 
-	public BadRequestException(Throwable e) {
+	public BadRequestException(final Throwable e) {
 		super(e);
 	}
 
-	public BadRequestException(String message, Throwable e) {
+	public BadRequestException(final String message, final Throwable e) {
 		super(message, e);
 	}
 }
diff --git a/src/main/java/de/thm/arsnova/web/exceptions/ForbiddenException.java b/src/main/java/de/thm/arsnova/web/exceptions/ForbiddenException.java
index aefe91f3383d8e85e78c40bce1126ad221b23b72..54908825a0b3e70672aefd06f9de3509d248c39c 100644
--- a/src/main/java/de/thm/arsnova/web/exceptions/ForbiddenException.java
+++ b/src/main/java/de/thm/arsnova/web/exceptions/ForbiddenException.java
@@ -10,15 +10,15 @@ public class ForbiddenException extends RuntimeException {
 		super();
 	}
 
-	public ForbiddenException(String message) {
+	public ForbiddenException(final String message) {
 		super(message);
 	}
 
-	public ForbiddenException(Throwable e) {
+	public ForbiddenException(final Throwable e) {
 		super(e);
 	}
 
-	public ForbiddenException(String message, Throwable e) {
+	public ForbiddenException(final String message, final Throwable e) {
 		super(message, e);
 	}
 }
diff --git a/src/main/java/de/thm/arsnova/web/exceptions/NoContentException.java b/src/main/java/de/thm/arsnova/web/exceptions/NoContentException.java
index 0177ac4acd3a1b02f3f4bda77b98adc3f809e3f1..10778acfe47a4747e16c6df3de67f165a7a8655d 100644
--- a/src/main/java/de/thm/arsnova/web/exceptions/NoContentException.java
+++ b/src/main/java/de/thm/arsnova/web/exceptions/NoContentException.java
@@ -10,15 +10,15 @@ public class NoContentException extends RuntimeException {
 		super();
 	}
 
-	public NoContentException(String message) {
+	public NoContentException(final String message) {
 		super(message);
 	}
 
-	public NoContentException(Throwable e) {
+	public NoContentException(final Throwable e) {
 		super(e);
 	}
 
-	public NoContentException(String message, Throwable e) {
+	public NoContentException(final String message, final Throwable e) {
 		super(message, e);
 	}
 }
diff --git a/src/main/java/de/thm/arsnova/web/exceptions/NotFoundException.java b/src/main/java/de/thm/arsnova/web/exceptions/NotFoundException.java
index faa58e11db4da59ad02496d8bcbfde169f6eb2a3..dfb4b8953ed3ffdb47a35c912180b033f3a3c71e 100644
--- a/src/main/java/de/thm/arsnova/web/exceptions/NotFoundException.java
+++ b/src/main/java/de/thm/arsnova/web/exceptions/NotFoundException.java
@@ -10,15 +10,15 @@ public class NotFoundException extends RuntimeException {
 		super();
 	}
 
-	public NotFoundException(String message) {
+	public NotFoundException(final String message) {
 		super(message);
 	}
 
-	public NotFoundException(Throwable e) {
+	public NotFoundException(final Throwable e) {
 		super(e);
 	}
 
-	public NotFoundException(String message, Throwable e) {
+	public NotFoundException(final String message, final Throwable e) {
 		super(message, e);
 	}
 }
diff --git a/src/main/java/de/thm/arsnova/web/exceptions/NotImplementedException.java b/src/main/java/de/thm/arsnova/web/exceptions/NotImplementedException.java
index 7941effb45549ff2563e8473152f59dfb30d66de..146616256ce2bbad37c9969b11c8601838f0c7bc 100644
--- a/src/main/java/de/thm/arsnova/web/exceptions/NotImplementedException.java
+++ b/src/main/java/de/thm/arsnova/web/exceptions/NotImplementedException.java
@@ -10,15 +10,15 @@ public class NotImplementedException extends RuntimeException {
 		super();
 	}
 
-	public NotImplementedException(String message) {
+	public NotImplementedException(final String message) {
 		super(message);
 	}
 
-	public NotImplementedException(Throwable e) {
+	public NotImplementedException(final Throwable e) {
 		super(e);
 	}
 
-	public NotImplementedException(String message, Throwable e) {
+	public NotImplementedException(final String message, final Throwable e) {
 		super(message, e);
 	}
 }
diff --git a/src/main/java/de/thm/arsnova/web/exceptions/PayloadTooLargeException.java b/src/main/java/de/thm/arsnova/web/exceptions/PayloadTooLargeException.java
index 5dff0716a522ef6b77ef9d6a7ea9aee3813f230b..a17d4dce84dd6a8c41b04f26a9407942580123c1 100644
--- a/src/main/java/de/thm/arsnova/web/exceptions/PayloadTooLargeException.java
+++ b/src/main/java/de/thm/arsnova/web/exceptions/PayloadTooLargeException.java
@@ -10,15 +10,15 @@ public class PayloadTooLargeException extends RuntimeException {
 		super();
 	}
 
-	public PayloadTooLargeException(String message) {
+	public PayloadTooLargeException(final String message) {
 		super(message);
 	}
 
-	public PayloadTooLargeException(Throwable e) {
+	public PayloadTooLargeException(final Throwable e) {
 		super(e);
 	}
 
-	public PayloadTooLargeException(String message, Throwable e) {
+	public PayloadTooLargeException(final String message, final Throwable e) {
 		super(message, e);
 	}
 }
diff --git a/src/main/java/de/thm/arsnova/web/exceptions/PreconditionFailedException.java b/src/main/java/de/thm/arsnova/web/exceptions/PreconditionFailedException.java
index 31c1de8b2dbb3d370f1ce0819a7b269cc5c5512d..3956603c05ff13a03cca14bb4b770f8f39215e77 100644
--- a/src/main/java/de/thm/arsnova/web/exceptions/PreconditionFailedException.java
+++ b/src/main/java/de/thm/arsnova/web/exceptions/PreconditionFailedException.java
@@ -10,15 +10,15 @@ public class PreconditionFailedException extends RuntimeException {
 		super();
 	}
 
-	public PreconditionFailedException(String message) {
+	public PreconditionFailedException(final String message) {
 		super(message);
 	}
 
-	public PreconditionFailedException(Throwable e) {
+	public PreconditionFailedException(final Throwable e) {
 		super(e);
 	}
 
-	public PreconditionFailedException(String message, Throwable e) {
+	public PreconditionFailedException(final String message, final Throwable e) {
 		super(message, e);
 	}
 }
diff --git a/src/main/java/de/thm/arsnova/web/exceptions/UnauthorizedException.java b/src/main/java/de/thm/arsnova/web/exceptions/UnauthorizedException.java
index e889a0f42c21c2b1bc019429250e16be6a645bf4..f7651d56207340636374f1184308248da7f0499c 100644
--- a/src/main/java/de/thm/arsnova/web/exceptions/UnauthorizedException.java
+++ b/src/main/java/de/thm/arsnova/web/exceptions/UnauthorizedException.java
@@ -10,15 +10,15 @@ public class UnauthorizedException extends RuntimeException {
 		super();
 	}
 
-	public UnauthorizedException(String message) {
+	public UnauthorizedException(final String message) {
 		super(message);
 	}
 
-	public UnauthorizedException(Throwable e) {
+	public UnauthorizedException(final Throwable e) {
 		super(e);
 	}
 
-	public UnauthorizedException(String message, Throwable e) {
+	public UnauthorizedException(final String message, final Throwable e) {
 		super(message, e);
 	}
 }
diff --git a/src/main/java/de/thm/arsnova/websocket/ArsnovaSocketioServerImpl.java b/src/main/java/de/thm/arsnova/websocket/ArsnovaSocketioServerImpl.java
index 314ee9a2ca0fb973dd02e7e3241dfe9a5235a231..4717df44f9683b4b0e45e25702e09e5346ecf3ad 100644
--- a/src/main/java/de/thm/arsnova/websocket/ArsnovaSocketioServerImpl.java
+++ b/src/main/java/de/thm/arsnova/websocket/ArsnovaSocketioServerImpl.java
@@ -135,7 +135,7 @@ public class ArsnovaSocketioServerImpl implements ArsnovaSocketioServer {
 		/* hack: listen to ipv4 adresses */
 		System.setProperty("java.net.preferIPv4Stack", "true");
 
-		SocketConfig soConfig = new SocketConfig();
+		final SocketConfig soConfig = new SocketConfig();
 		soConfig.setReuseAddress(true);
 		config.setSocketConfig(soConfig);
 		config.setPort(portNumber);
@@ -213,13 +213,13 @@ public class ArsnovaSocketioServerImpl implements ArsnovaSocketioServer {
 					@Override
 					@Timed(name = "readInterposedQuestionEvent.onData")
 					public void onData(
-							SocketIOClient client,
-							Comment comment,
-							AckRequest ackRequest) {
+							final SocketIOClient client,
+							final Comment comment,
+							final AckRequest ackRequest) {
 						final String user = userService.getUserIdToSocketId(client.getSessionId());
 						try {
 							commentService.getAndMarkRead(comment.getId());
-						} catch (IOException | NotFoundException | UnauthorizedException e) {
+						} catch (final IOException | NotFoundException | UnauthorizedException e) {
 							logger.error("Loading of comment {} failed for user {} with exception {}",
 									comment.getId(), user, e.getMessage());
 						}
@@ -228,11 +228,11 @@ public class ArsnovaSocketioServerImpl implements ArsnovaSocketioServer {
 
 		server.addEventListener("readFreetextAnswer", String.class, new DataListener<String>() {
 			@Override
-			public void onData(SocketIOClient client, String answerId, AckRequest ackRequest) {
+			public void onData(final SocketIOClient client, final String answerId, final AckRequest ackRequest) {
 				final String userId = userService.getUserIdToSocketId(client.getSessionId());
 				try {
 					answerService.getFreetextAnswerAndMarkRead(answerId, userId);
-				} catch (NotFoundException | UnauthorizedException e) {
+				} catch (final NotFoundException | UnauthorizedException e) {
 					logger.error("Marking answer {} as read failed for user {} with exception {}",
 							answerId, userId, e.getMessage());
 				}
@@ -245,7 +245,8 @@ public class ArsnovaSocketioServerImpl implements ArsnovaSocketioServer {
 				new DataListener<ScoreOptions>() {
 					@Override
 					@Timed(name = "setLearningProgressOptionsEvent.onData")
-					public void onData(SocketIOClient client, ScoreOptions scoreOptions, AckRequest ack) {
+					public void onData(
+							final SocketIOClient client, final ScoreOptions scoreOptions, final AckRequest ack) {
 						throw new UnsupportedOperationException("Not implemented.");
 						/* FIXME: missing implementation */
 					}
@@ -363,7 +364,7 @@ public class ArsnovaSocketioServerImpl implements ArsnovaSocketioServer {
 		return result;
 	}
 
-	private void sendToUser(final String userId, final String event, Object data) {
+	private void sendToUser(final String userId, final String event, final Object data) {
 		final List<UUID> connectionIds = findConnectionIdForUserId(userId);
 		if (connectionIds.isEmpty()) {
 			return;
@@ -459,8 +460,8 @@ public class ArsnovaSocketioServerImpl implements ArsnovaSocketioServer {
 	}
 
 	public void reportContentAvailable(final String roomId, final List<de.thm.arsnova.model.Content> qs) {
-		List<Content> contents = new ArrayList<>();
-		for (de.thm.arsnova.model.Content q : qs) {
+		final List<Content> contents = new ArrayList<>();
+		for (final de.thm.arsnova.model.Content q : qs) {
 			contents.add(new Content(q));
 		}
 
@@ -472,8 +473,8 @@ public class ArsnovaSocketioServerImpl implements ArsnovaSocketioServer {
 	}
 
 	public void reportContentsLocked(final String roomId, final List<de.thm.arsnova.model.Content> qs) {
-		List<Content> contents = new ArrayList<>();
-		for (de.thm.arsnova.model.Content q : qs) {
+		final List<Content> contents = new ArrayList<>();
+		for (final de.thm.arsnova.model.Content q : qs) {
 			contents.add(new Content(q));
 		}
 		broadcastInRoom(roomId, "lecturerQuestionLocked", contents);
@@ -499,13 +500,13 @@ public class ArsnovaSocketioServerImpl implements ArsnovaSocketioServer {
 	}
 
 	@EventListener
-	public void handleAfterContentCreation(AfterCreationEvent<de.thm.arsnova.model.Content> event) {
+	public void handleAfterContentCreation(final AfterCreationEvent<de.thm.arsnova.model.Content> event) {
 		this.reportContentAvailable(event.getEntity().getId(), Collections.singletonList(event.getEntity()));
 	}
 
 	@EventListener(condition = "#event.stateName == 'state'")
 	public void handleContentIsVisibleStateChange(
-			StateChangeEvent<de.thm.arsnova.model.Content, de.thm.arsnova.model.Content.State> event) {
+			final StateChangeEvent<de.thm.arsnova.model.Content, de.thm.arsnova.model.Content.State> event) {
 		if (event.getEntity().getState().isVisible()) {
 			this.reportContentAvailable(event.getEntity().getRoomId(), Collections.singletonList(event.getEntity()));
 		} else {
@@ -514,14 +515,14 @@ public class ArsnovaSocketioServerImpl implements ArsnovaSocketioServer {
 	}
 
 	@EventListener
-	public void handleAfterCommentCreation(AfterCreationEvent<Comment> event) {
+	public void handleAfterCommentCreation(final AfterCreationEvent<Comment> event) {
 		this.reportCommentAvailable(event.getEntity().getId(), event.getEntity().getId());
 	}
 
 	@Async
 	@EventListener
 	@Timed
-	public void handleNewAnswer(AfterCreationEvent<Answer> event) {
+	public void handleNewAnswer(final AfterCreationEvent<Answer> event) {
 		final String roomId = event.getEntity().getRoomId();
 		this.reportAnswersToContentAvailable(event.getEntity().getRoomId(), event.getEntity().getContentId());
 		broadcastInRoom(roomId, "countQuestionAnswersByQuestionId",
@@ -541,7 +542,7 @@ public class ArsnovaSocketioServerImpl implements ArsnovaSocketioServer {
 	@Async
 	@EventListener
 	@Timed
-	public void handleAfterAnswerDeletion(AfterDeletionEvent<Answer> event) {
+	public void handleAfterAnswerDeletion(final AfterDeletionEvent<Answer> event) {
 		final String roomId = event.getEntity().getRoomId();
 		this.reportAnswersToContentAvailable(event.getEntity().getRoomId(), event.getEntity().getContentId());
 		// We do not know which user's answer was deleted, so we can't update his 'unanswered' list of questions...
@@ -554,7 +555,7 @@ public class ArsnovaSocketioServerImpl implements ArsnovaSocketioServer {
 	@EventListener(condition = "#event.stateName == 'state'")
 	@Timed
 	public void handlePiRoundDelayedStart(
-			StateChangeEvent<de.thm.arsnova.model.Content, de.thm.arsnova.model.Content.State> event) {
+			final StateChangeEvent<de.thm.arsnova.model.Content, de.thm.arsnova.model.Content.State> event) {
 		broadcastInRoom(event.getEntity().getRoomId(), "startDelayedPiRound",
 				generateRoundInfo(event.getEntity()));
 	}
@@ -563,7 +564,7 @@ public class ArsnovaSocketioServerImpl implements ArsnovaSocketioServer {
 	@EventListener(condition = "#event.stateName == 'state'")
 	@Timed
 	public void handlePiRoundEnd(
-			StateChangeEvent<de.thm.arsnova.model.Content, de.thm.arsnova.model.Content.State> event) {
+			final StateChangeEvent<de.thm.arsnova.model.Content, de.thm.arsnova.model.Content.State> event) {
 		broadcastInRoom(event.getEntity().getRoomId(), "endPiRound", generateRoundInfo(event.getEntity()));
 	}
 
@@ -571,18 +572,18 @@ public class ArsnovaSocketioServerImpl implements ArsnovaSocketioServer {
 	@EventListener(condition = "#event.stateName == 'state'")
 	@Timed
 	public void handlePiRoundCancel(
-			StateChangeEvent<de.thm.arsnova.model.Content, de.thm.arsnova.model.Content.State> event) {
+			final StateChangeEvent<de.thm.arsnova.model.Content, de.thm.arsnova.model.Content.State> event) {
 		broadcastInRoom(event.getEntity().getRoomId(), "cancelPiRound", event.getEntity().getId());
 	}
 
 	@EventListener(condition = "#event.stateName == 'state'")
 	public void handlePiRoundReset(
-			StateChangeEvent<de.thm.arsnova.model.Content, de.thm.arsnova.model.Content.State> event) {
+			final StateChangeEvent<de.thm.arsnova.model.Content, de.thm.arsnova.model.Content.State> event) {
 		broadcastInRoom(event.getEntity().getRoomId(), "resetPiRound", generateRoundInfo(event.getEntity()));
 	}
 
-	private Map<String, Object> generateRoundInfo(de.thm.arsnova.model.Content content) {
-		Map<String, Object> map = new HashMap<>();
+	private Map<String, Object> generateRoundInfo(final de.thm.arsnova.model.Content content) {
+		final Map<String, Object> map = new HashMap<>();
 		map.put("_id", content.getId());
 		if (content.getState().getRoundEndTimestamp() != null) {
 			map.put("endTime", content.getState().getRoundEndTimestamp().getTime());
@@ -601,11 +602,11 @@ public class ArsnovaSocketioServerImpl implements ArsnovaSocketioServer {
 
 	@EventListener(condition = "#event.stateName == 'state'")
 	public void handleContentResponsesEnabledStateChange(
-			StateChangeEvent<de.thm.arsnova.model.Content, de.thm.arsnova.model.Content.State> event) {
+			final StateChangeEvent<de.thm.arsnova.model.Content, de.thm.arsnova.model.Content.State> event) {
 		/* Multiple groups for a single Content are not handled. */
 		final String groupName = event.getEntity().getGroups().iterator().hasNext()
 				? event.getEntity().getGroups().iterator().next() : "";
-		Map<String, Object> map = new HashMap<>();
+		final Map<String, Object> map = new HashMap<>();
 		map.put("_id", event.getEntity().getId());
 		map.put("variant", groupName);
 		if (event.getEntity().getState().isResponsesEnabled()) {
@@ -618,7 +619,7 @@ public class ArsnovaSocketioServerImpl implements ArsnovaSocketioServer {
 
 	@EventListener(condition = "#event.stateName == 'settings'")
 	public void handleFeatureChange(
-			StateChangeEvent<de.thm.arsnova.model.Room, de.thm.arsnova.model.Room.Settings> event) {
+			final StateChangeEvent<de.thm.arsnova.model.Room, de.thm.arsnova.model.Room.Settings> event) {
 		final String roomId = event.getEntity().getId();
 		final de.thm.arsnova.model.Room.Settings settings = event.getEntity().getSettings();
 		broadcastInRoom(roomId, "featureChange", toV2Migrator.migrate(settings));
@@ -633,35 +634,35 @@ public class ArsnovaSocketioServerImpl implements ArsnovaSocketioServer {
 
 	@EventListener(condition = "#event.stateName == 'settings'")
 	public void handleLockFeedback(
-			StateChangeEvent<de.thm.arsnova.model.Room, de.thm.arsnova.model.Room.Settings> event) {
+			final StateChangeEvent<de.thm.arsnova.model.Room, de.thm.arsnova.model.Room.Settings> event) {
 		broadcastInRoom(event.getEntity().getId(), "lockFeedback",
 				event.getEntity().getSettings().isFeedbackLocked());
 	}
 
 	@EventListener
-	public void handleFlipFlashcards(FlipFlashcardsEvent event) {
+	public void handleFlipFlashcards(final FlipFlashcardsEvent event) {
 		/* FIXME: missing implementation */
 		//broadcastInRoom(event.getRoom().getId(), "flipFlashcards", event.getRoom().getFlipFlashcards());
 	}
 
 	@EventListener
-	public void handleNewFeedback(NewFeedbackEvent event) {
+	public void handleNewFeedback(final NewFeedbackEvent event) {
 		this.reportUpdatedFeedbackForRoom(event.getRoomId());
 	}
 
 	@EventListener
-	public void handleDeleteFeedbackForRooms(DeleteFeedbackForRoomsEvent event) {
+	public void handleDeleteFeedbackForRooms(final DeleteFeedbackForRoomsEvent event) {
 		this.reportDeletedFeedback(event.getUserId(), event.getSessions());
 
 	}
 
 	@EventListener(condition = "#event.stateName == 'closed'")
-	public void handleRoomClosedStateChange(StateChangeEvent<de.thm.arsnova.model.Room, Boolean> event) {
+	public void handleRoomClosedStateChange(final StateChangeEvent<de.thm.arsnova.model.Room, Boolean> event) {
 		this.reportRoomStatus(event.getEntity().getId(), !event.getNewValue());
 	}
 
 	@EventListener
-	public void handleChangeScore(ChangeScoreEvent event) {
+	public void handleChangeScore(final ChangeScoreEvent event) {
 		broadcastInRoom(event.getRoomId(), "learningProgressChange", null);
 	}
 }
diff --git a/src/main/java/de/thm/arsnova/websocket/WebsocketAuthenticationAspect.java b/src/main/java/de/thm/arsnova/websocket/WebsocketAuthenticationAspect.java
index 6b045c98123d4e2c04dba58afef88d4358b1b9b9..f8404c8c8c785fed468da96810a6196952456d16 100644
--- a/src/main/java/de/thm/arsnova/websocket/WebsocketAuthenticationAspect.java
+++ b/src/main/java/de/thm/arsnova/websocket/WebsocketAuthenticationAspect.java
@@ -68,15 +68,15 @@ public class WebsocketAuthenticationAspect {
 	}
 
 	private void populateSecurityContext(final UUID socketId) {
-		String userId = userService.getUserIdToSocketId(socketId);
+		final String userId = userService.getUserIdToSocketId(socketId);
 		if (userId == null) {
 			throw new AccessDeniedException("No user authenticated for WebSocket connection");
 		}
-		SecurityContext context = SecurityContextHolder.getContext();
-		Set<GrantedAuthority> authorities = new HashSet<>();
+		final SecurityContext context = SecurityContextHolder.getContext();
+		final Set<GrantedAuthority> authorities = new HashSet<>();
 		authorities.add(WEBSOCKET_AUTHORITY);
-		User user = userService.loadUser(userId, authorities);
-		Authentication auth = new UsernamePasswordAuthenticationToken(user, null, authorities);
+		final User user = userService.loadUser(userId, authorities);
+		final Authentication auth = new UsernamePasswordAuthenticationToken(user, null, authorities);
 		context.setAuthentication(auth);
 		SecurityContextHolder.setContext(context);
 	}
diff --git a/src/main/java/de/thm/arsnova/websocket/handler/AuthChannelInterceptorAdapter.java b/src/main/java/de/thm/arsnova/websocket/handler/AuthChannelInterceptorAdapter.java
index 4318789f9d6125bfc67f98a9efc1e6c8bbded06b..a9098c962cd32f7ec5ce189d08cdfd52e0519fb1 100644
--- a/src/main/java/de/thm/arsnova/websocket/handler/AuthChannelInterceptorAdapter.java
+++ b/src/main/java/de/thm/arsnova/websocket/handler/AuthChannelInterceptorAdapter.java
@@ -31,14 +31,14 @@ public class AuthChannelInterceptorAdapter implements ChannelInterceptor {
 	@Nullable
 	@Override
 	public Message<?> preSend(final Message<?> message, final MessageChannel channel) {
-		StompHeaderAccessor accessor = StompHeaderAccessor.wrap(message);
+		final StompHeaderAccessor accessor = StompHeaderAccessor.wrap(message);
 
-		String sessionId = accessor.getSessionId();
+		final String sessionId = accessor.getSessionId();
 		if (accessor.getCommand() != null && accessor.getCommand().equals(StompCommand.CONNECT)) {
 			// user needs to authorize
-			List<String> tokenList = accessor.getNativeHeader("token");
+			final List<String> tokenList = accessor.getNativeHeader("token");
 			if (tokenList != null && tokenList.size() > 0) {
-				String token = tokenList.get(0);
+				final String token = tokenList.get(0);
 				service.addWsSessionToJwtMapping(sessionId, token);
 			} else {
 				// no token given -> auth failed
@@ -46,11 +46,11 @@ public class AuthChannelInterceptorAdapter implements ChannelInterceptor {
 				return null;
 			}
 		} else {
-			List<String> userIdList = accessor.getNativeHeader("ars-user-id");
+			final List<String> userIdList = accessor.getNativeHeader("ars-user-id");
 			if (userIdList != null && userIdList.size() > 0) {
 				// user-id is given, check for auth
-				String userId = userIdList.get(0);
-				User u = service.getAuthenticatedUserByWsSession(sessionId);
+				final String userId = userIdList.get(0);
+				final User u = service.getAuthenticatedUserByWsSession(sessionId);
 				if (u == null || !userId.equals(u.getId())) {
 					// user isn't authorized, drop message
 					logger.debug("user-id not validated, dropping frame");
diff --git a/src/main/java/de/thm/arsnova/websocket/handler/FeedbackCommandHandler.java b/src/main/java/de/thm/arsnova/websocket/handler/FeedbackCommandHandler.java
index 06b6f33f0e755f2f4c018c6b6574ae2e84774c4b..172b998e025b7033024bf9ce888781f0114c6c5d 100644
--- a/src/main/java/de/thm/arsnova/websocket/handler/FeedbackCommandHandler.java
+++ b/src/main/java/de/thm/arsnova/websocket/handler/FeedbackCommandHandler.java
@@ -18,23 +18,23 @@ public class FeedbackCommandHandler {
 	private final SimpMessagingTemplate messagingTemplate;
 
 	@Autowired
-	public FeedbackCommandHandler(SimpMessagingTemplate messagingTemplate) {
+	public FeedbackCommandHandler(final SimpMessagingTemplate messagingTemplate) {
 		this.messagingTemplate = messagingTemplate;
 	}
 
-	private synchronized int[] updateFeedbackForRoom(String roomId, int index) {
-		int[] values = roomValues.getOrDefault(roomId, new int[4]);
+	private synchronized int[] updateFeedbackForRoom(final String roomId, final int index) {
+		final int[] values = roomValues.getOrDefault(roomId, new int[4]);
 		values[index]++;
 		roomValues.put(roomId, values);
 		return values;
 	}
 
-	public void handle(CreateFeedbackCommand command) {
-		int updatedIndex = command.getPayload().getPayload().getValue();
-		int[] newVals = updateFeedbackForRoom(command.getRoomId(), updatedIndex);
+	public void handle(final CreateFeedbackCommand command) {
+		final int updatedIndex = command.getPayload().getPayload().getValue();
+		final int[] newVals = updateFeedbackForRoom(command.getRoomId(), updatedIndex);
 
-		FeedbackChanged feedbackChanged = new FeedbackChanged();
-		FeedbackChangedPayload feedbackChangedPayload = new FeedbackChangedPayload();
+		final FeedbackChanged feedbackChanged = new FeedbackChanged();
+		final FeedbackChangedPayload feedbackChangedPayload = new FeedbackChangedPayload();
 		feedbackChangedPayload.setValues(newVals);
 		feedbackChanged.setPayload(feedbackChangedPayload);
 
@@ -44,11 +44,11 @@ public class FeedbackCommandHandler {
 		);
 	}
 
-	public void handle(GetFeedbackCommand command) {
-		int[] currentVals = roomValues.getOrDefault(command.getRoomId(), new int[4]);
+	public void handle(final GetFeedbackCommand command) {
+		final int[] currentVals = roomValues.getOrDefault(command.getRoomId(), new int[4]);
 
-		FeedbackChanged feedbackChanged = new FeedbackChanged();
-		FeedbackChangedPayload feedbackChangedPayload = new FeedbackChangedPayload();
+		final FeedbackChanged feedbackChanged = new FeedbackChanged();
+		final FeedbackChangedPayload feedbackChangedPayload = new FeedbackChangedPayload();
 		feedbackChangedPayload.setValues(currentVals);
 		feedbackChanged.setPayload(feedbackChangedPayload);
 
@@ -65,7 +65,7 @@ public class FeedbackCommandHandler {
 		private String roomId;
 		private CreateFeedback payload;
 
-		public CreateFeedbackCommand(String roomId, CreateFeedback payload) {
+		public CreateFeedbackCommand(final String roomId, final CreateFeedback payload) {
 			this.roomId = roomId;
 			this.payload = payload;
 		}
@@ -84,7 +84,7 @@ public class FeedbackCommandHandler {
 		private String roomId;
 		private GetFeedback payload;
 
-		public GetFeedbackCommand(String roomId, GetFeedback payload) {
+		public GetFeedbackCommand(final String roomId, final GetFeedback payload) {
 			this.roomId = roomId;
 			this.payload = payload;
 		}
diff --git a/src/main/java/de/thm/arsnova/websocket/handler/FeedbackHandler.java b/src/main/java/de/thm/arsnova/websocket/handler/FeedbackHandler.java
index 50308d6ffdc7fb12dadb8b7be7f2e34d9158530f..1708df58a5592d952070009ba7a837fc360d71b8 100644
--- a/src/main/java/de/thm/arsnova/websocket/handler/FeedbackHandler.java
+++ b/src/main/java/de/thm/arsnova/websocket/handler/FeedbackHandler.java
@@ -13,14 +13,14 @@ public class FeedbackHandler {
 	private final FeedbackCommandHandler commandHandler;
 
 	@Autowired
-	public FeedbackHandler(FeedbackCommandHandler commandHandler) {
+	public FeedbackHandler(final FeedbackCommandHandler commandHandler) {
 		this.commandHandler = commandHandler;
 	}
 
 	@MessageMapping("/queue/{roomId}.feedback.command")
 	public void send(
-			@DestinationVariable("roomId") String roomId,
-			CreateFeedback value
+			@DestinationVariable("roomId") final String roomId,
+			final CreateFeedback value
 	) throws Exception {
 
 		commandHandler.handle(
@@ -31,8 +31,8 @@ public class FeedbackHandler {
 
 	@MessageMapping("/queue/{roomId}.feedback.query")
 	public void send(
-			@DestinationVariable("roomId") String roomId,
-			GetFeedback value
+			@DestinationVariable("roomId") final String roomId,
+			final GetFeedback value
 	) throws Exception {
 
 		commandHandler.handle(
diff --git a/src/main/java/de/thm/arsnova/websocket/message/Content.java b/src/main/java/de/thm/arsnova/websocket/message/Content.java
index 243349e9c1ece31f459bb2bb2cc1a616e3777539..e2539d1c0e3aab49a880277abb8280e71b3136cb 100644
--- a/src/main/java/de/thm/arsnova/websocket/message/Content.java
+++ b/src/main/java/de/thm/arsnova/websocket/message/Content.java
@@ -28,7 +28,7 @@ public class Content {
 	private final String id;
 	private final String variant;
 
-	public Content(de.thm.arsnova.model.Content content) {
+	public Content(final de.thm.arsnova.model.Content content) {
 		this.id = content.getId();
 		/* FIXME: Message does not support content with multiple groups */
 		this.variant = content.getGroups().toArray(new String[1])[0];
diff --git a/src/main/java/de/thm/arsnova/websocket/message/CreateFeedbackPayload.java b/src/main/java/de/thm/arsnova/websocket/message/CreateFeedbackPayload.java
index ee74510fd0e835804bc32a152270c713c689a979..c7abf3a9f250907982fadbbbe5ae1bf0ce587fa2 100644
--- a/src/main/java/de/thm/arsnova/websocket/message/CreateFeedbackPayload.java
+++ b/src/main/java/de/thm/arsnova/websocket/message/CreateFeedbackPayload.java
@@ -6,7 +6,7 @@ public class CreateFeedbackPayload implements WebSocketPayload {
 	public CreateFeedbackPayload() {
 	}
 
-	public CreateFeedbackPayload(int value) {
+	public CreateFeedbackPayload(final int value) {
 		this.value = value;
 	}
 
@@ -14,7 +14,7 @@ public class CreateFeedbackPayload implements WebSocketPayload {
 		return value;
 	}
 
-	public void setValue(int value) {
+	public void setValue(final int value) {
 		this.value = value;
 	}
 }
diff --git a/src/main/java/de/thm/arsnova/websocket/message/Feedback.java b/src/main/java/de/thm/arsnova/websocket/message/Feedback.java
index e18789dc4a7649b71f392bc6960d6e558e5d2fa7..d1b3e3a4c638e4a211a84f7545d02bafc3548394 100644
--- a/src/main/java/de/thm/arsnova/websocket/message/Feedback.java
+++ b/src/main/java/de/thm/arsnova/websocket/message/Feedback.java
@@ -29,7 +29,7 @@ public class Feedback {
 		return value;
 	}
 
-	public void setValue(int value) {
+	public void setValue(final int value) {
 		this.value = value;
 	}
 
diff --git a/src/main/java/de/thm/arsnova/websocket/message/FeedbackChanged.java b/src/main/java/de/thm/arsnova/websocket/message/FeedbackChanged.java
index 2e7414358875bdd63e6b056c6c093ca5da1c1a68..f8a6a0c846670f87c9dec0a2879f9a2af6bf8df7 100644
--- a/src/main/java/de/thm/arsnova/websocket/message/FeedbackChanged.java
+++ b/src/main/java/de/thm/arsnova/websocket/message/FeedbackChanged.java
@@ -6,14 +6,14 @@ public class FeedbackChanged extends WebSocketMessage<FeedbackChangedPayload> {
 	}
 
 	@Override
-	public boolean equals(Object o) {
+	public boolean equals(final Object o) {
 		if (this == o) {
 			return true;
 		}
 		if (o == null || getClass() != o.getClass()) {
 			return false;
 		}
-		FeedbackChanged that = (FeedbackChanged) o;
+		final FeedbackChanged that = (FeedbackChanged) o;
 		return this.getPayload().equals(that.getPayload());
 	}
 }
diff --git a/src/main/java/de/thm/arsnova/websocket/message/FeedbackChangedPayload.java b/src/main/java/de/thm/arsnova/websocket/message/FeedbackChangedPayload.java
index 29278f4686e608e896ded31625aa0bedcd2df197..13f6d26f0eab704bd995d54498bc6d753cfd22c5 100644
--- a/src/main/java/de/thm/arsnova/websocket/message/FeedbackChangedPayload.java
+++ b/src/main/java/de/thm/arsnova/websocket/message/FeedbackChangedPayload.java
@@ -9,19 +9,19 @@ public class FeedbackChangedPayload implements WebSocketPayload {
 		return values;
 	}
 
-	public void setValues(int[] values) {
+	public void setValues(final int[] values) {
 		this.values = values;
 	}
 
 	@Override
-	public boolean equals(Object o) {
+	public boolean equals(final Object o) {
 		if (this == o) {
 			return true;
 		}
 		if (o == null || getClass() != o.getClass()) {
 			return false;
 		}
-		FeedbackChangedPayload that = (FeedbackChangedPayload) o;
+		final FeedbackChangedPayload that = (FeedbackChangedPayload) o;
 		return Arrays.equals(values, that.values);
 	}
 
diff --git a/src/main/java/de/thm/arsnova/websocket/message/Patched.java b/src/main/java/de/thm/arsnova/websocket/message/Patched.java
index 87f84cab6e5bbd32db75c2dc5599ace34c8ae1c7..1d31bfec070d9e987173d22fbdf77f788f6dd49d 100644
--- a/src/main/java/de/thm/arsnova/websocket/message/Patched.java
+++ b/src/main/java/de/thm/arsnova/websocket/message/Patched.java
@@ -1,7 +1,7 @@
 package de.thm.arsnova.websocket.message;
 
 public class Patched extends WebSocketMessage<PatchedPayload> {
-	public Patched(String type) {
+	public Patched(final String type) {
 		super(type);
 	}
 }
diff --git a/src/main/java/de/thm/arsnova/websocket/message/PatchedPayload.java b/src/main/java/de/thm/arsnova/websocket/message/PatchedPayload.java
index 1c94099a0bc4448eaac3c9ed70d382f99e55fddc..2e8944823d3b3b5da32b5944559e50722697ba56 100644
--- a/src/main/java/de/thm/arsnova/websocket/message/PatchedPayload.java
+++ b/src/main/java/de/thm/arsnova/websocket/message/PatchedPayload.java
@@ -9,7 +9,7 @@ public class PatchedPayload implements WebSocketPayload {
 
 	boolean propertyValue;
 
-	public PatchedPayload(String type) {
+	public PatchedPayload(final String type) {
 		this.type = type;
 	}
 
@@ -17,7 +17,7 @@ public class PatchedPayload implements WebSocketPayload {
 		return type;
 	}
 
-	public void setType(String type) {
+	public void setType(final String type) {
 		this.type = type;
 	}
 
@@ -25,7 +25,7 @@ public class PatchedPayload implements WebSocketPayload {
 		return id;
 	}
 
-	public void setId(String id) {
+	public void setId(final String id) {
 		this.id = id;
 	}
 
@@ -33,7 +33,7 @@ public class PatchedPayload implements WebSocketPayload {
 		return propertyName;
 	}
 
-	public void setPropertyName(String propertyName) {
+	public void setPropertyName(final String propertyName) {
 		this.propertyName = propertyName;
 	}
 
@@ -41,7 +41,7 @@ public class PatchedPayload implements WebSocketPayload {
 		return propertyValue;
 	}
 
-	public void setPropertyValue(boolean propertyValue) {
+	public void setPropertyValue(final boolean propertyValue) {
 		this.propertyValue = propertyValue;
 	}
 }
diff --git a/src/main/java/de/thm/arsnova/websocket/message/Room.java b/src/main/java/de/thm/arsnova/websocket/message/Room.java
index 25de1d48bdbb8ed27d995eb947c34c347ffb65a3..2b18bf97d1e5fef15b13ff28f4c8a0209590a185 100644
--- a/src/main/java/de/thm/arsnova/websocket/message/Room.java
+++ b/src/main/java/de/thm/arsnova/websocket/message/Room.java
@@ -28,7 +28,7 @@ public class Room {
 		return keyword;
 	}
 
-	public void setKeyword(String keyword) {
+	public void setKeyword(final String keyword) {
 		this.keyword = keyword;
 	}
 }
diff --git a/src/main/java/de/thm/arsnova/websocket/message/WebSocketMessage.java b/src/main/java/de/thm/arsnova/websocket/message/WebSocketMessage.java
index 6a0b6d4152f821554a36ae15f25c113b4ee1561f..48d4fda4c01c818d567394b9a91f2f372a3fc0be 100644
--- a/src/main/java/de/thm/arsnova/websocket/message/WebSocketMessage.java
+++ b/src/main/java/de/thm/arsnova/websocket/message/WebSocketMessage.java
@@ -5,7 +5,7 @@ public class WebSocketMessage<P extends WebSocketPayload> {
 
 	private P payload;
 
-	public WebSocketMessage(String type) {
+	public WebSocketMessage(final String type) {
 		this.type = type;
 	}
 
@@ -13,7 +13,7 @@ public class WebSocketMessage<P extends WebSocketPayload> {
 		return type;
 	}
 
-	public void setType(String type) {
+	public void setType(final String type) {
 		this.type = type;
 	}
 
@@ -21,7 +21,7 @@ public class WebSocketMessage<P extends WebSocketPayload> {
 		return payload;
 	}
 
-	public void setPayload(P payload) {
+	public void setPayload(final P payload) {
 		this.payload = payload;
 	}
 }
diff --git a/src/test/java/de/thm/arsnova/config/AppConfigTest.java b/src/test/java/de/thm/arsnova/config/AppConfigTest.java
index 0d7062cd176f8af6883620ffc55341ed92060c63..c6210b2dc406548c12f2a1104a689ceb8360aca3 100644
--- a/src/test/java/de/thm/arsnova/config/AppConfigTest.java
+++ b/src/test/java/de/thm/arsnova/config/AppConfigTest.java
@@ -59,8 +59,8 @@ public class AppConfigTest extends AbstractJUnit4SpringContextTests {
 
 	@Test
 	public void testShouldUseAdminAccountFromTestPropertiesFile() {
-		List<String> expected = Arrays.asList("TestAdmin");
-		List<String> actual = Arrays.asList(adminAccounts);
+		final List<String> expected = Arrays.asList("TestAdmin");
+		final List<String> actual = Arrays.asList(adminAccounts);
 
 		assertEquals("Configuration did not load correct property file", expected, actual);
 	}
diff --git a/src/test/java/de/thm/arsnova/config/TestAppConfig.java b/src/test/java/de/thm/arsnova/config/TestAppConfig.java
index 6fdff03e377f42b91567878ac1414970702c0957..b63470c6fc7d795f42fca2f788188bb56a6d795d 100644
--- a/src/test/java/de/thm/arsnova/config/TestAppConfig.java
+++ b/src/test/java/de/thm/arsnova/config/TestAppConfig.java
@@ -97,9 +97,9 @@ public class TestAppConfig {
 	@Bean
 	@Primary
 	public StubUserService stubUserService(
-			UserRepository repository,
-			JavaMailSender mailSender,
-			@Qualifier("defaultJsonMessageConverter") MappingJackson2HttpMessageConverter jackson2HttpMessageConverter) {
+			final UserRepository repository,
+			final JavaMailSender mailSender,
+			@Qualifier("defaultJsonMessageConverter") final MappingJackson2HttpMessageConverter jackson2HttpMessageConverter) {
 		return new StubUserService(repository, mailSender, jackson2HttpMessageConverter);
 	}
 
diff --git a/src/test/java/de/thm/arsnova/config/TestSecurityConfig.java b/src/test/java/de/thm/arsnova/config/TestSecurityConfig.java
index 34750f9762dbe34d5776a62b407fda10443f881a..d8e99426614dc8b5c0186d6bd47cd13977621e6d 100644
--- a/src/test/java/de/thm/arsnova/config/TestSecurityConfig.java
+++ b/src/test/java/de/thm/arsnova/config/TestSecurityConfig.java
@@ -44,7 +44,7 @@ import de.thm.arsnova.security.CasUserDetailsService;
 @Profile("test")
 public class TestSecurityConfig extends SecurityConfig {
 	@Override
-	protected void configure(HttpSecurity http) {}
+	protected void configure(final HttpSecurity http) {}
 
 	@Override
 	@Bean
diff --git a/src/test/java/de/thm/arsnova/event/StateEventDispatcherTest.java b/src/test/java/de/thm/arsnova/event/StateEventDispatcherTest.java
index 6a0d592f3517282b0dbae5a3469fc7335431639a..852101f0e3ef6e4891cec048982bbd91635412cd 100644
--- a/src/test/java/de/thm/arsnova/event/StateEventDispatcherTest.java
+++ b/src/test/java/de/thm/arsnova/event/StateEventDispatcherTest.java
@@ -103,7 +103,7 @@ public class StateEventDispatcherTest {
 
 		when(roomRepository.save(any(Room.class))).then(returnsFirstArg());
 
-		Room room = new Room();
+		final Room room = new Room();
 		room.setOwnerId(TEST_USER_ID);
 		entityService.patch(room, Collections.singletonMap(QUESTIONS_ENABLED_PROPERTY_NAME, false), Room::getSettings);
 		assertEquals(1, eventListenerConfig.getRoomSettingsStateChangeEvents().size());
@@ -118,13 +118,13 @@ public class StateEventDispatcherTest {
 				Content.class, contentRepository, objectMapper);
 		entityService.setApplicationEventPublisher(eventPublisher);
 
-		Room room = new Room();
+		final Room room = new Room();
 		room.setId(TEST_ROOM_ID);
 		room.setOwnerId(TEST_USER_ID);
 		when(contentRepository.save(any(Content.class))).then(returnsFirstArg());
 		when(roomRepository.findOne(eq(room.getId()))).thenReturn(room);
 
-		Content content = new Content();
+		final Content content = new Content();
 		content.setRoomId(room.getId());
 		entityService.patch(content, Collections.singletonMap(VISIBLE_PROPERTY_NAME, false), Content::getState);
 		assertEquals(1, eventListenerConfig.getContentStateChangeEvents().size());
@@ -137,12 +137,12 @@ public class StateEventDispatcherTest {
 		private List<StateChangeEvent<Content, Content.State>> contentStateChangeEvents = new ArrayList<>();
 
 		@EventListener(condition = "#event.stateName == '" + SETTINGS_PROPERTY_NAME + "'")
-		public void handleRoomSettingsStateChangeEvent(StateChangeEvent<Room, Room.Settings> event) {
+		public void handleRoomSettingsStateChangeEvent(final StateChangeEvent<Room, Room.Settings> event) {
 			roomSettingsStateChangeEvents.add(event);
 		}
 
 		@EventListener(condition = "#event.stateName == '" + STATE_PROPERTY_NAME + "'")
-		public void handleContentStateChangeEvent(StateChangeEvent<Content, Content.State> event) {
+		public void handleContentStateChangeEvent(final StateChangeEvent<Content, Content.State> event) {
 			contentStateChangeEvents.add(event);
 		}
 
diff --git a/src/test/java/de/thm/arsnova/model/ContentTest.java b/src/test/java/de/thm/arsnova/model/ContentTest.java
index 78ed369a3b7bfd7c06d5517c7688c322435fe3da..272b0f35d0255c987e1f3f700a072374b7a70899 100644
--- a/src/test/java/de/thm/arsnova/model/ContentTest.java
+++ b/src/test/java/de/thm/arsnova/model/ContentTest.java
@@ -40,15 +40,15 @@ public class ContentTest {
 		p2.setText("No");
 		p2.setCorrect(false);
 		p2.setValue(-10);
-		Content q = new Content();
+		final Content q = new Content();
 		q.setQuestionType("yesno");
 		q.setPossibleAnswers(new ArrayList<AnswerOption>() {{
 			add(p1);
 			add(p2);
 		}});
-		Answer answer1 = new Answer();
+		final Answer answer1 = new Answer();
 		answer1.setAnswerText("Yes");
-		Answer answer2 = new Answer();
+		final Answer answer2 = new Answer();
 		answer2.setAnswerText("No");
 
 		assertEquals(10, q.calculateValue(answer1));
@@ -66,13 +66,13 @@ public class ContentTest {
 		p2.setText("No");
 		p2.setCorrect(false);
 		p2.setValue(-10);
-		Content q = new Content();
+		final Content q = new Content();
 		q.setAbstention(true);
 		q.setPossibleAnswers(new ArrayList<AnswerOption>() {{
 			add(p1);
 			add(p2);
 		}});
-		Answer answer = new Answer();
+		final Answer answer = new Answer();
 		answer.setAbstention(true);
 
 		assertEquals(0, q.calculateValue(answer));
@@ -93,21 +93,21 @@ public class ContentTest {
 		p3.setText("Maybe");
 		p3.setCorrect(true);
 		p3.setValue(10);
-		Content q = new Content();
+		final Content q = new Content();
 		q.setQuestionType("mc");
 		q.setPossibleAnswers(new ArrayList<AnswerOption>() {{
 			add(p1);
 			add(p2);
 			add(p3);
 		}});
-		Answer answer1 = createAnswerWithText("0,0,0");
-		Answer answer2 = createAnswerWithText("0,0,1");
-		Answer answer3 = createAnswerWithText("0,1,0");
-		Answer answer4 = createAnswerWithText("0,1,1");
-		Answer answer5 = createAnswerWithText("1,0,0");
-		Answer answer6 = createAnswerWithText("1,0,1");
-		Answer answer7 = createAnswerWithText("1,1,0");
-		Answer answer8 = createAnswerWithText("1,1,1");
+		final Answer answer1 = createAnswerWithText("0,0,0");
+		final Answer answer2 = createAnswerWithText("0,0,1");
+		final Answer answer3 = createAnswerWithText("0,1,0");
+		final Answer answer4 = createAnswerWithText("0,1,1");
+		final Answer answer5 = createAnswerWithText("1,0,0");
+		final Answer answer6 = createAnswerWithText("1,0,1");
+		final Answer answer7 = createAnswerWithText("1,1,0");
+		final Answer answer8 = createAnswerWithText("1,1,1");
 
 		assertEquals(0, q.calculateValue(answer1));
 		assertEquals(10, q.calculateValue(answer2));
@@ -138,7 +138,7 @@ public class ContentTest {
 		p4.setText("1;1");
 		p4.setCorrect(true);
 		p4.setValue(10);
-		Content q = new Content();
+		final Content q = new Content();
 		q.setQuestionType("grid");
 		q.setPossibleAnswers(new ArrayList<AnswerOption>() {{
 			add(p1);
@@ -146,17 +146,17 @@ public class ContentTest {
 			add(p3);
 			add(p4);
 		}});
-		Answer answer1 = createAnswerWithText("0;0");
-		Answer answer2 = createAnswerWithText("0;1,1;1");
-		Answer answer3 = createAnswerWithText("0;0,1;0,1;1");
+		final Answer answer1 = createAnswerWithText("0;0");
+		final Answer answer2 = createAnswerWithText("0;1,1;1");
+		final Answer answer3 = createAnswerWithText("0;0,1;0,1;1");
 
 		assertEquals(10, q.calculateValue(answer1));
 		assertEquals(0, q.calculateValue(answer2));
 		assertEquals(30, q.calculateValue(answer3));
 	}
 
-	private static Answer createAnswerWithText(String text) {
-		Answer answer = new Answer();
+	private static Answer createAnswerWithText(final String text) {
+		final Answer answer = new Answer();
 		answer.setAnswerText(text);
 		return answer;
 	}
diff --git a/src/test/java/de/thm/arsnova/model/EntityTest.java b/src/test/java/de/thm/arsnova/model/EntityTest.java
index aee0db9c83dd97e608c067fb6c6168f5fe829d5d..22d40d447b5348cf34862c69978f920cb89a8990 100644
--- a/src/test/java/de/thm/arsnova/model/EntityTest.java
+++ b/src/test/java/de/thm/arsnova/model/EntityTest.java
@@ -38,7 +38,7 @@ public class EntityTest {
 	class SomeEntity extends Entity {
 		private String testA;
 
-		public SomeEntity(String id, String rev, Date creationTimestamp, Date updateTimestamp, String testA) {
+		public SomeEntity(final String id, final String rev, final Date creationTimestamp, final Date updateTimestamp, final String testA) {
 			this.id = id;
 			this.rev = rev;
 			this.creationTimestamp = creationTimestamp;
@@ -61,7 +61,7 @@ public class EntityTest {
 		private String testB;
 
 		public AnotherEntity(
-				String id, String rev, Date creationTimestamp, Date updateTimestamp, String testA, String testB) {
+				final String id, final String rev, final Date creationTimestamp, final Date updateTimestamp, final String testA, final String testB) {
 			super(id, rev, creationTimestamp, updateTimestamp, testA);
 			this.testB = testB;
 		}
@@ -79,33 +79,33 @@ public class EntityTest {
 
 	@Test
 	public void testHashCode() {
-		SomeEntity entity1 = new SomeEntity("id", "rev", new Date(0), new Date(0), "test");
-		SomeEntity entity2 = new SomeEntity("id", "rev", new Date(0), new Date(0), "test");
-		SomeEntity entity3 = new SomeEntity("wrongId", "rev", new Date(0), new Date(0), "test");
+		final SomeEntity entity1 = new SomeEntity("id", "rev", new Date(0), new Date(0), "test");
+		final SomeEntity entity2 = new SomeEntity("id", "rev", new Date(0), new Date(0), "test");
+		final SomeEntity entity3 = new SomeEntity("wrongId", "rev", new Date(0), new Date(0), "test");
 		assertEquals(entity1.hashCode(), entity2.hashCode());
 		assertNotEquals(entity1.hashCode(), entity3.hashCode());
-		AnotherEntity entity4 = new AnotherEntity("id", "rev", new Date(0), new Date(0), "someTest", "anotherTest");
-		AnotherEntity entity5 = new AnotherEntity("id", "rev", new Date(0), new Date(0), "someTest", "anotherTest");
-		AnotherEntity entity6 = new AnotherEntity("id", "rev", new Date(0), new Date(0), "someTest", "wrong");
+		final AnotherEntity entity4 = new AnotherEntity("id", "rev", new Date(0), new Date(0), "someTest", "anotherTest");
+		final AnotherEntity entity5 = new AnotherEntity("id", "rev", new Date(0), new Date(0), "someTest", "anotherTest");
+		final AnotherEntity entity6 = new AnotherEntity("id", "rev", new Date(0), new Date(0), "someTest", "wrong");
 		assertEquals(entity4.hashCode(), entity5.hashCode());
 		assertNotEquals(entity4.hashCode(), entity6.hashCode());
 	}
 
 	@Test
 	public void testEquals() {
-		SomeEntity entity1 = new SomeEntity("id", "rev", new Date(0), new Date(0), "test");
-		SomeEntity entity2 = new SomeEntity("id", "rev", new Date(0), new Date(0), "test");
-		SomeEntity entity3 = new SomeEntity("wrongId", "rev", new Date(0), new Date(0), "test");
+		final SomeEntity entity1 = new SomeEntity("id", "rev", new Date(0), new Date(0), "test");
+		final SomeEntity entity2 = new SomeEntity("id", "rev", new Date(0), new Date(0), "test");
+		final SomeEntity entity3 = new SomeEntity("wrongId", "rev", new Date(0), new Date(0), "test");
 		assertEquals(entity1, entity2);
 		assertNotEquals(entity1, entity3);
 	}
 
 	@Test
 	public void testToString() {
-		SomeEntity entity1 = new SomeEntity("id", "rev", new Date(0), new Date(0), "test");
+		final SomeEntity entity1 = new SomeEntity("id", "rev", new Date(0), new Date(0), "test");
 		assertThat(entity1.toString(), startsWith("[EntityTest.SomeEntity"));
 		assertThat(entity1.toString(), endsWith("testA = 'test']"));
-		AnotherEntity entity2 = new AnotherEntity("id", "rev", new Date(0), new Date(0), "someTest", "anotherTest");
+		final AnotherEntity entity2 = new AnotherEntity("id", "rev", new Date(0), new Date(0), "someTest", "anotherTest");
 		assertThat(entity2.toString(), startsWith("[EntityTest.AnotherEntity"));
 		assertThat(entity2.toString(), endsWith("testA = 'someTest', testB = 'anotherTest']"));
 	}
diff --git a/src/test/java/de/thm/arsnova/model/FeedbackTest.java b/src/test/java/de/thm/arsnova/model/FeedbackTest.java
index 5cc91beb6d7ede1c85ee39b207c1e26977d4ad79..9ff34ed937a4e104ec4c83db53a3f446e2ffb7f9 100644
--- a/src/test/java/de/thm/arsnova/model/FeedbackTest.java
+++ b/src/test/java/de/thm/arsnova/model/FeedbackTest.java
@@ -29,16 +29,16 @@ public class FeedbackTest {
 
 	@Test
 	public void differentObjectsShouldNotBeEqual() {
-		Feedback f = new Feedback(0, 0, 0, 0);
-		String x = "";
+		final Feedback f = new Feedback(0, 0, 0, 0);
+		final String x = "";
 
 		assertFalse(f.equals(x));
 	}
 
 	@Test
 	public void differentlySizedFeedbacksShouldNotBeEqual() {
-		Feedback f1 = new Feedback(0, 0, 0, 0);
-		Feedback f2 = new Feedback(0, 0, 0, 0);
+		final Feedback f1 = new Feedback(0, 0, 0, 0);
+		final Feedback f2 = new Feedback(0, 0, 0, 0);
 		f2.getValues().add(0);
 
 		assertFalse(f1.equals(f2));
@@ -46,14 +46,14 @@ public class FeedbackTest {
 
 	@Test
 	public void nullShouldNotBeEqual() {
-		Feedback f = new Feedback(0, 0, 0, 0);
+		final Feedback f = new Feedback(0, 0, 0, 0);
 		assertFalse(f.equals(null));
 	}
 
 	@Test
 	public void sameContentsShouldBeEqual() {
-		Feedback f1 = new Feedback(1, 2, 3, 4);
-		Feedback f2 = new Feedback(1, 2, 3, 4);
+		final Feedback f1 = new Feedback(1, 2, 3, 4);
+		final Feedback f2 = new Feedback(1, 2, 3, 4);
 
 		assertTrue(f1.equals(f2));
 		assertTrue(f2.equals(f1));
@@ -61,8 +61,8 @@ public class FeedbackTest {
 
 	@Test
 	public void differentContentsShouldNotBeEqual() {
-		Feedback f1 = new Feedback(1, 2, 3, 4);
-		Feedback f2 = new Feedback(4, 3, 2, 1);
+		final Feedback f1 = new Feedback(1, 2, 3, 4);
+		final Feedback f2 = new Feedback(4, 3, 2, 1);
 
 		assertFalse(f1.equals(f2));
 		assertFalse(f2.equals(f1));
@@ -70,29 +70,29 @@ public class FeedbackTest {
 
 	@Test
 	public void shouldCalculateAverageValue() {
-		Feedback f = new Feedback(1, 0, 0, 1);
+		final Feedback f = new Feedback(1, 0, 0, 1);
 
-		double expected = 1.5;
-		double actual = f.getAverage().get();
+		final double expected = 1.5;
+		final double actual = f.getAverage().get();
 
 		assertEquals(expected, actual, 0.01);
 	}
 
 	@Test
 	public void averageCalculationShouldAvoidDivisionByZero() {
-		Feedback f = new Feedback(0, 0, 0, 0);
+		final Feedback f = new Feedback(0, 0, 0, 0);
 
-		Optional<Double> actual = f.getAverage();
+		final Optional<Double> actual = f.getAverage();
 
 		assertFalse(actual.isPresent());
 	}
 
 	@Test
 	public void shouldCountVotes() {
-		Feedback f = new Feedback(2, 4, 8, 16);
+		final Feedback f = new Feedback(2, 4, 8, 16);
 
-		int expected = 30;
-		int actual = f.getCount();
+		final int expected = 30;
+		final int actual = f.getCount();
 
 		assertEquals(expected, actual);
 
diff --git a/src/test/java/de/thm/arsnova/model/TestClient.java b/src/test/java/de/thm/arsnova/model/TestClient.java
index d51426482f927cd5945173f3961850789c052dce..f6751f3fa843b178479250e96ace5e94399368b7 100644
--- a/src/test/java/de/thm/arsnova/model/TestClient.java
+++ b/src/test/java/de/thm/arsnova/model/TestClient.java
@@ -29,7 +29,7 @@ public class TestClient extends ClientAuthentication {
 	private static final long serialVersionUID = 1L;
 	private final Set<GrantedAuthority> grantedAuthorities;
 
-	public TestClient(String username) {
+	public TestClient(final String username) {
 		super();
 		grantedAuthorities = new HashSet<>();
 		setId(UUID.randomUUID().toString());
diff --git a/src/test/java/de/thm/arsnova/model/migration/FromV2MigratorTest.java b/src/test/java/de/thm/arsnova/model/migration/FromV2MigratorTest.java
index 475d4df818271b8deaf99becc4cb894eda90d7be..80630dfd5a432a9640a0334690fa004aaba7614c 100644
--- a/src/test/java/de/thm/arsnova/model/migration/FromV2MigratorTest.java
+++ b/src/test/java/de/thm/arsnova/model/migration/FromV2MigratorTest.java
@@ -67,35 +67,35 @@ public class FromV2MigratorTest {
 
 	@Test
 	public void testMigrateAnswerMultipleResponse() {
-		Answer answerV2 = new Answer();
+		final Answer answerV2 = new Answer();
 		answerV2.setId(ANSWER_ID);
 		answerV2.setQuestionId(CONTENT_ID);
 		answerV2.setSessionId(ROOM_ID);
 		answerV2.setPiRound(ROUND);
 		answerV2.setAnswerText("0,1,1");
 
-		List<ChoiceQuestionContent.AnswerOption> options = new ArrayList<>();
-		ChoiceQuestionContent.AnswerOption option1 = new ChoiceQuestionContent.AnswerOption();
+		final List<ChoiceQuestionContent.AnswerOption> options = new ArrayList<>();
+		final ChoiceQuestionContent.AnswerOption option1 = new ChoiceQuestionContent.AnswerOption();
 		option1.setLabel(OPTION1_LABEL);
 		options.add(option1);
-		ChoiceQuestionContent.AnswerOption option2 = new ChoiceQuestionContent.AnswerOption();
+		final ChoiceQuestionContent.AnswerOption option2 = new ChoiceQuestionContent.AnswerOption();
 		option2.setLabel(OPTION2_LABEL);
 		options.add(option2);
-		ChoiceQuestionContent.AnswerOption option3 = new ChoiceQuestionContent.AnswerOption();
+		final ChoiceQuestionContent.AnswerOption option3 = new ChoiceQuestionContent.AnswerOption();
 		option3.setLabel(OPTION3_LABEL);
 		options.add(option3);
 
-		ChoiceQuestionContent content = new ChoiceQuestionContent();
+		final ChoiceQuestionContent content = new ChoiceQuestionContent();
 		content.setFormat(FORMAT);
 		content.setRoomId(ROOM_ID);
 		content.setMultiple(true);
 		content.setOptions(options);
 
-		List<Integer> selectedChoices = new ArrayList<>();
+		final List<Integer> selectedChoices = new ArrayList<>();
 		selectedChoices.add(1);
 		selectedChoices.add(2);
 
-		ChoiceAnswer answerV3 = (ChoiceAnswer) fromV2Migrator.migrate(answerV2, content);
+		final ChoiceAnswer answerV3 = (ChoiceAnswer) fromV2Migrator.migrate(answerV2, content);
 
 		assertEquals(ANSWER_ID, answerV3.getId());
 		assertEquals(CONTENT_ID, answerV3.getContentId());
diff --git a/src/test/java/de/thm/arsnova/model/migration/ToV2MigratorTest.java b/src/test/java/de/thm/arsnova/model/migration/ToV2MigratorTest.java
index 9b96a2db28144483a0f63f31aecefb80e10b2456..c8bc41db5440470bcd5d6934b70201bed82a998d 100644
--- a/src/test/java/de/thm/arsnova/model/migration/ToV2MigratorTest.java
+++ b/src/test/java/de/thm/arsnova/model/migration/ToV2MigratorTest.java
@@ -78,10 +78,10 @@ public class ToV2MigratorTest {
 		final ChoiceQuestionContent.AnswerOption option1 = new ChoiceQuestionContent.AnswerOption();
 		option1.setLabel(OPTION1_LABEL);
 		options.add(option1);
-		ChoiceQuestionContent.AnswerOption option2 = new ChoiceQuestionContent.AnswerOption();
+		final ChoiceQuestionContent.AnswerOption option2 = new ChoiceQuestionContent.AnswerOption();
 		option2.setLabel(OPTION2_LABEL);
 		options.add(option2);
-		ChoiceQuestionContent.AnswerOption option3 = new ChoiceQuestionContent.AnswerOption();
+		final ChoiceQuestionContent.AnswerOption option3 = new ChoiceQuestionContent.AnswerOption();
 		option3.setLabel(OPTION3_LABEL);
 		options.add(option3);
 
@@ -123,11 +123,11 @@ public class ToV2MigratorTest {
 
 		final ChoiceQuestionContent.AnswerOption option1 = new ChoiceQuestionContent.AnswerOption();
 		option1.setLabel(OPTION1_LABEL);
-		ChoiceQuestionContent.AnswerOption option2 = new ChoiceQuestionContent.AnswerOption();
+		final ChoiceQuestionContent.AnswerOption option2 = new ChoiceQuestionContent.AnswerOption();
 		option2.setLabel(OPTION2_LABEL);
-		ChoiceQuestionContent.AnswerOption option3 = new ChoiceQuestionContent.AnswerOption();
+		final ChoiceQuestionContent.AnswerOption option3 = new ChoiceQuestionContent.AnswerOption();
 		option3.setLabel(OPTION3_LABEL);
-		ChoiceQuestionContent.AnswerOption option4 = new ChoiceQuestionContent.AnswerOption();
+		final ChoiceQuestionContent.AnswerOption option4 = new ChoiceQuestionContent.AnswerOption();
 		option3.setLabel(OPTION4_LABEL);
 		final List<ChoiceQuestionContent.AnswerOption> options = Arrays.asList(new ChoiceQuestionContent.AnswerOption[] {
 			option1, option2, option3, option4
@@ -145,7 +145,7 @@ public class ToV2MigratorTest {
 		assertEquals(ABSTENTION_COUNT, abstentionStatsV2.getAbstentionCount());
 
 		for (int i = 0; i < ANSWER_COUNTS.size(); i++) {
-			Answer answerStatsV2 = statsV2.get(i + 1);
+			final Answer answerStatsV2 = statsV2.get(i + 1);
 			assertEquals(ANSWER_COUNTS.get(i).intValue(), answerStatsV2.getAnswerCount());
 			assertEquals(ABSTENTION_COUNT, answerStatsV2.getAbstentionCount());
 			assertEquals(options.get(i).getLabel(), answerStatsV2.getAnswerText());
diff --git a/src/test/java/de/thm/arsnova/service/DefaultEntityServiceImplTest.java b/src/test/java/de/thm/arsnova/service/DefaultEntityServiceImplTest.java
index 8d4657cb976b3da64af4b593ccf1e2587cb31e39..84e64df881bac672ffcb2662de2b1b84bcb842e6 100644
--- a/src/test/java/de/thm/arsnova/service/DefaultEntityServiceImplTest.java
+++ b/src/test/java/de/thm/arsnova/service/DefaultEntityServiceImplTest.java
@@ -122,7 +122,7 @@ public class DefaultEntityServiceImplTest {
 
 		when(roomRepository.saveAll(anyListOf(Room.class))).then(returnsFirstArg());
 
-		List<Room> sessions = new ArrayList<>();
+		final List<Room> sessions = new ArrayList<>();
 		final String originalId1 = "d8833f0d78964a9487ded02ba2dfbbad";
 		final String originalName1 = "Test Room 1";
 		final String originalOwnerId1 = "TestUser";
diff --git a/src/test/java/de/thm/arsnova/service/FeedbackServiceTest.java b/src/test/java/de/thm/arsnova/service/FeedbackServiceTest.java
index 71cb00fedd633f6eed1098098a8928d3b1448ba9..7a50a840fadd89d1846c6307d15965968c0ab36f 100644
--- a/src/test/java/de/thm/arsnova/service/FeedbackServiceTest.java
+++ b/src/test/java/de/thm/arsnova/service/FeedbackServiceTest.java
@@ -51,7 +51,7 @@ public class FeedbackServiceTest {
 		lenient().when(this.roomService.get(anyString())).thenReturn(null);
 		lenient().when(this.roomService.get(eq(this.roomId))).thenReturn(room);
 
-		FeedbackStorageService fss = new FeedbackStorageServiceImpl();
+		final FeedbackStorageService fss = new FeedbackStorageServiceImpl();
 		this.feedbackService = new FeedbackServiceImpl(fss, this.roomService);
 		((FeedbackServiceImpl) this.feedbackService).setApplicationEventPublisher(this.publisher);
 	}
@@ -61,7 +61,7 @@ public class FeedbackServiceTest {
 		feedbackService.save(roomId, 0, "user-id-one");
 		feedbackService.save(roomId, 0, "user-id-two");
 
-		int actual = feedbackService.countFeedbackByRoomId(roomId);
+		final int actual = feedbackService.countFeedbackByRoomId(roomId);
 
 		assertEquals(2, actual);
 	}
@@ -71,8 +71,8 @@ public class FeedbackServiceTest {
 		feedbackService.save(roomId, 0, "user-id-one");
 		feedbackService.save(roomId, 3, "user-id-two");
 
-		double expected = 1.5;
-		double actual = feedbackService.calculateAverageFeedback(roomId);
+		final double expected = 1.5;
+		final double actual = feedbackService.calculateAverageFeedback(roomId);
 
 		assertEquals(expected, actual, 0.01);
 	}
@@ -92,8 +92,8 @@ public class FeedbackServiceTest {
 		feedbackService.save(roomId, 0, "user-id-one");
 		feedbackService.save(roomId, 3, "user-id-two");
 
-		Feedback expected = new Feedback(1, 0, 0, 1);
-		Feedback actual = feedbackService.getByRoomId(roomId);
+		final Feedback expected = new Feedback(1, 0, 0, 1);
+		final Feedback actual = feedbackService.getByRoomId(roomId);
 
 		assertEquals(expected, actual);
 	}
@@ -102,18 +102,18 @@ public class FeedbackServiceTest {
 	public void shouldReturnSingleVoteFromUser() {
 		feedbackService.save(roomId, 2, "user-id-one");
 
-		int actual = feedbackService.getByRoomIdAndUserId(roomId, "user-id-one");
+		final int actual = feedbackService.getByRoomIdAndUserId(roomId, "user-id-one");
 
 		assertEquals(2, actual);
 	}
 
 	@Test
 	public void shouldDeleteOldFeedbackVotes() {
-		FeedbackStorageService fss = Mockito.mock(FeedbackStorageService.class);
+		final FeedbackStorageService fss = Mockito.mock(FeedbackStorageService.class);
 		this.feedbackService = new FeedbackServiceImpl(fss, this.roomService);
 		((FeedbackServiceImpl) this.feedbackService).setApplicationEventPublisher(this.publisher);
 
-		Map<Room, List<String>> roomToUserMappings = new HashMap<Room, List<String>>() {{
+		final Map<Room, List<String>> roomToUserMappings = new HashMap<Room, List<String>>() {{
 			put(room, Arrays.asList("user-id-one"));
 		}};
 		when(fss.cleanVotes(anyInt())).thenReturn(roomToUserMappings);
@@ -126,7 +126,7 @@ public class FeedbackServiceTest {
 
 	@Test
 	public void shouldDeleteOldFeedbackVotesForSpecificRoom() {
-		FeedbackStorageService fss = Mockito.mock(FeedbackStorageService.class);
+		final FeedbackStorageService fss = Mockito.mock(FeedbackStorageService.class);
 		this.feedbackService = new FeedbackServiceImpl(fss, this.roomService);
 		((FeedbackServiceImpl) this.feedbackService).setApplicationEventPublisher(this.publisher);
 
diff --git a/src/test/java/de/thm/arsnova/service/StubUserService.java b/src/test/java/de/thm/arsnova/service/StubUserService.java
index 3375e27c0cad348bcc4f66bd2ddd744dc28bc573..a8bfb3b4089f7bd0c71a6f58d2af7586d9fe3e33 100644
--- a/src/test/java/de/thm/arsnova/service/StubUserService.java
+++ b/src/test/java/de/thm/arsnova/service/StubUserService.java
@@ -36,21 +36,21 @@ public class StubUserService extends UserServiceImpl {
 	private User stubUser = null;
 
 	public StubUserService(
-			UserRepository repository,
-			JavaMailSender mailSender,
-			@Qualifier("defaultJsonMessageConverter") MappingJackson2HttpMessageConverter jackson2HttpMessageConverter) {
+			final UserRepository repository,
+			final JavaMailSender mailSender,
+			@Qualifier("defaultJsonMessageConverter") final MappingJackson2HttpMessageConverter jackson2HttpMessageConverter) {
 		super(repository, mailSender, jackson2HttpMessageConverter);
 		grantedAuthorities = new HashSet<>();
 		grantedAuthorities.add(new SimpleGrantedAuthority("ROLE_USER"));
 	}
 
-	public void setUserAuthenticated(boolean isAuthenticated) {
+	public void setUserAuthenticated(final boolean isAuthenticated) {
 		this.setUserAuthenticated(isAuthenticated, "ptsr00");
 	}
 
-	public void setUserAuthenticated(boolean isAuthenticated, String username) {
+	public void setUserAuthenticated(final boolean isAuthenticated, final String username) {
 		if (isAuthenticated) {
-			UserProfile userProfile = new UserProfile(UserProfile.AuthProvider.ARSNOVA, username);
+			final UserProfile userProfile = new UserProfile(UserProfile.AuthProvider.ARSNOVA, username);
 			userProfile.setId(UUID.randomUUID().toString());
 			stubUser = new User(userProfile, grantedAuthorities);
 		} else {
diff --git a/src/test/java/de/thm/arsnova/service/UserServiceTest.java b/src/test/java/de/thm/arsnova/service/UserServiceTest.java
index d08e109309fcec34f4081ffad10c5e3f635fa392..86ae23d3d04e155620aae7bf93b01a651952c487 100644
--- a/src/test/java/de/thm/arsnova/service/UserServiceTest.java
+++ b/src/test/java/de/thm/arsnova/service/UserServiceTest.java
@@ -73,27 +73,27 @@ public class UserServiceTest {
 		//		new ClientAuthentication(new UsernamePasswordAuthenticationToken("ptsr00", UUID.randomUUID())));
 		//socketid2user.put(UUID.randomUUID(), new ClientAuthentication(new AttributePrincipalImpl("ptstr0")));
 
-		GoogleOidcProfile profile = new GoogleOidcProfile();
+		final GoogleOidcProfile profile = new GoogleOidcProfile();
 		profile.addAttribute(CommonProfileDefinition.DISPLAY_NAME, "ptsr00");
 		profile.addAttribute(CommonProfileDefinition.EMAIL, "mail@host.com");
 		profile.addAttribute("email_verified", true);
-		UserProfile userProfile = new UserProfile(UserProfile.AuthProvider.GOOGLE, "ptsr00");
+		final UserProfile userProfile = new UserProfile(UserProfile.AuthProvider.GOOGLE, "ptsr00");
 		userProfile.setId(UUID.randomUUID().toString());
-		User user = new User(userProfile, Collections.emptyList());
-		OAuthToken token = new OAuthToken(user, profile, Collections.emptyList());
+		final User user = new User(userProfile, Collections.emptyList());
+		final OAuthToken token = new OAuthToken(user, profile, Collections.emptyList());
 		socketid2user.put(UUID.randomUUID(), new ClientAuthentication(token));
 
-		List<GrantedAuthority> authorities = new ArrayList<>();
+		final List<GrantedAuthority> authorities = new ArrayList<>();
 		authorities.add(new SimpleGrantedAuthority("ROLE_GUEST"));
 		socketid2user.put(UUID.randomUUID(), new ClientAuthentication(
 				new AnonymousAuthenticationToken("ptsr00", UUID.randomUUID(), authorities)));
 
-		ByteArrayOutputStream out = new ByteArrayOutputStream();
-		ObjectOutputStream objOut = new ObjectOutputStream(out);
+		final ByteArrayOutputStream out = new ByteArrayOutputStream();
+		final ObjectOutputStream objOut = new ObjectOutputStream(out);
 		objOut.writeObject(socketid2user);
 		objOut.close();
-		ObjectInputStream objIn = new ObjectInputStream(new ByteArrayInputStream(out.toByteArray()));
-		Map<UUID, ClientAuthentication> actual = (Map<UUID, ClientAuthentication>) objIn.readObject();
+		final ObjectInputStream objIn = new ObjectInputStream(new ByteArrayInputStream(out.toByteArray()));
+		final Map<UUID, ClientAuthentication> actual = (Map<UUID, ClientAuthentication>) objIn.readObject();
 		assertEquals(actual, socketid2user);
 	}
 
@@ -104,12 +104,12 @@ public class UserServiceTest {
 		user2session.put("ptsr02", UUID.randomUUID().toString());
 		user2session.put("ptsr03", UUID.randomUUID().toString());
 
-		ByteArrayOutputStream out = new ByteArrayOutputStream();
-		ObjectOutputStream objOut = new ObjectOutputStream(out);
+		final ByteArrayOutputStream out = new ByteArrayOutputStream();
+		final ObjectOutputStream objOut = new ObjectOutputStream(out);
 		objOut.writeObject(user2session);
 		objOut.close();
-		ObjectInputStream objIn = new ObjectInputStream(new ByteArrayInputStream(out.toByteArray()));
-		Map<String, String> actual = (Map<String, String>) objIn.readObject();
+		final ObjectInputStream objIn = new ObjectInputStream(new ByteArrayInputStream(out.toByteArray()));
+		final Map<String, String> actual = (Map<String, String>) objIn.readObject();
 		assertEquals(actual, user2session);
 	}
 
diff --git a/src/test/java/de/thm/arsnova/service/score/QuestionBasedScoreCalculatorTest.java b/src/test/java/de/thm/arsnova/service/score/QuestionBasedScoreCalculatorTest.java
index c591959e963e1b62acefe28101a280f6b9f2a4ef..ba45798689ea27d84c38f7916d6d74cdb73962c4 100644
--- a/src/test/java/de/thm/arsnova/service/score/QuestionBasedScoreCalculatorTest.java
+++ b/src/test/java/de/thm/arsnova/service/score/QuestionBasedScoreCalculatorTest.java
@@ -35,14 +35,14 @@ public class QuestionBasedScoreCalculatorTest {
 
 	private int id = 1;
 
-	private String addQuestion(String questionVariant, int points) {
+	private String addQuestion(final String questionVariant, final int points) {
 		final String questionId = "question" + (id++);
 		final int piRound = 1;
 		courseScore.addQuestion(questionId, questionVariant, piRound, points);
 		return questionId;
 	}
 
-	private void addAnswer(String questionId, String userId, int points) {
+	private void addAnswer(final String questionId, final String userId, final int points) {
 		final int piRound = 1;
 		courseScore.addAnswer(questionId, piRound, userId, points);
 	}
@@ -50,7 +50,7 @@ public class QuestionBasedScoreCalculatorTest {
 	@Before
 	public void setUp() {
 		this.courseScore = new Score();
-		SessionStatisticsRepository db = mock(SessionStatisticsRepository.class);
+		final SessionStatisticsRepository db = mock(SessionStatisticsRepository.class);
 		when(db.getLearningProgress(null)).thenReturn(courseScore);
 		this.lp = new QuestionBasedScoreCalculator(db);
 	}
@@ -62,32 +62,32 @@ public class QuestionBasedScoreCalculatorTest {
 	public void shouldIgnoreQuestionsWithoutCorrectAnswers() {
 		final int questionMaxValue = 0;
 		final int userScore = 0;
-		String userId = "user1";
-		String questionId = this.addQuestion("lecture", questionMaxValue);
+		final String userId = "user1";
+		final String questionId = this.addQuestion("lecture", questionMaxValue);
 		this.addAnswer(questionId, userId, userScore);
 
-		ScoreStatistics expected = new ScoreStatistics();
+		final ScoreStatistics expected = new ScoreStatistics();
 		expected.setCourseProgress(0);
 		expected.setMyProgress(0);
 		expected.setNumQuestions(0);
-		ScoreStatistics actual = lp.getMyProgress(null, userId);
+		final ScoreStatistics actual = lp.getMyProgress(null, userId);
 
 		assertEquals(expected, actual);
 	}
 
 	@Test
 	public void shouldIgnoreQuestionsWithoutCorrectAnswersInQuestionCount() {
-		String userId = "user";
+		final String userId = "user";
 		courseScore.addQuestion("question-without-correct-answers", "lecture", 1, 0);
 		courseScore.addQuestion("question-with-correct-answers", "lecture", 1, 50);
 		courseScore.addAnswer("question-without-correct-answers", 1, userId, 0);
 		courseScore.addAnswer("question-with-correct-answers", 1, userId, 50);
 
-		ScoreStatistics expected = new ScoreStatistics();
+		final ScoreStatistics expected = new ScoreStatistics();
 		expected.setCourseProgress(100);
 		expected.setMyProgress(100);
 		expected.setNumQuestions(1);
-		ScoreStatistics actual = lp.getMyProgress(null, userId);
+		final ScoreStatistics actual = lp.getMyProgress(null, userId);
 
 		assertEquals(expected, actual);
 	}
@@ -97,14 +97,14 @@ public class QuestionBasedScoreCalculatorTest {
 	 */
 	@Test
 	public void shouldCalculatePercentageOfOneQuestionWithSomeWrongAnswers() {
-		String questionId = this.addQuestion("lecture", 10);
+		final String questionId = this.addQuestion("lecture", 10);
 		for (int i = 0; i < 99; i++) {
 			this.addAnswer(questionId, "user" + i, 10);
 		}
 		this.addAnswer(questionId, "user-with-a-wrong-answer", 0);
 
-		int expected = 99;
-		int actual = lp.getCourseProgress(null).getCourseProgress();
+		final int expected = 99;
+		final int actual = lp.getCourseProgress(null).getCourseProgress();
 
 		assertEquals(expected, actual);
 	}
@@ -117,19 +117,19 @@ public class QuestionBasedScoreCalculatorTest {
 	@Test
 	public void shouldCalculatePercentageOfMultipleQuestionsAndAnswers() {
 		// two questions
-		String q1 = this.addQuestion("lecture", 10);
-		String q2 = this.addQuestion("lecture", 10);
+		final String q1 = this.addQuestion("lecture", 10);
+		final String q2 = this.addQuestion("lecture", 10);
 		// two users
-		String userId1 = "user1";
-		String userId2 = "user2";
+		final String userId1 = "user1";
+		final String userId2 = "user2";
 		// four answers, last one is wrong
 		this.addAnswer(q1, userId1, 10);
 		this.addAnswer(q1, userId2, 10);
 		this.addAnswer(q2, userId1, 10);
 		this.addAnswer(q2, userId2, 0);
 
-		int expected = 75;
-		int actual = lp.getCourseProgress(null).getCourseProgress();
+		final int expected = 75;
+		final int actual = lp.getCourseProgress(null).getCourseProgress();
 
 		assertEquals(expected, actual);
 	}
@@ -137,8 +137,8 @@ public class QuestionBasedScoreCalculatorTest {
 	@Test
 	public void shouldNotBeBiasedByPointsOrAnswerCount() {
 		// two questions
-		String q1 = this.addQuestion("lecture", 1000);
-		String q2 = this.addQuestion("lecture", 1);
+		final String q1 = this.addQuestion("lecture", 1000);
+		final String q2 = this.addQuestion("lecture", 1);
 		// first question has many answers, all of them correct
 		for (int i = 0; i < 100; i++) {
 			this.addAnswer(q1, "user" + i, 1000);
@@ -146,18 +146,18 @@ public class QuestionBasedScoreCalculatorTest {
 		// second question has one wrong answer
 		this.addAnswer(q2,  "another-user", 0);
 
-		int expected = 50;
-		int actual = lp.getCourseProgress(null).getCourseProgress();
+		final int expected = 50;
+		final int actual = lp.getCourseProgress(null).getCourseProgress();
 
 		assertEquals(expected, actual);
 	}
 
 	@Test
 	public void shouldFilterBasedOnQuestionVariant() {
-		String q1 = this.addQuestion("lecture", 100);
-		String q2 = this.addQuestion("preparation", 100);
-		String userId1 = "user1";
-		String userId2 = "user2";
+		final String q1 = this.addQuestion("lecture", 100);
+		final String q2 = this.addQuestion("preparation", 100);
+		final String userId1 = "user1";
+		final String userId2 = "user2";
 		// first question is answered correctly, second one is not
 		this.addAnswer(q1, userId1, 100);
 		this.addAnswer(q1, userId2, 100);
@@ -165,11 +165,11 @@ public class QuestionBasedScoreCalculatorTest {
 		this.addAnswer(q2, userId2, 0);
 
 		lp.setQuestionVariant("lecture");
-		ScoreStatistics lectureProgress = lp.getCourseProgress(null);
-		ScoreStatistics myLectureProgress = lp.getMyProgress(null, userId1);
+		final ScoreStatistics lectureProgress = lp.getCourseProgress(null);
+		final ScoreStatistics myLectureProgress = lp.getMyProgress(null, userId1);
 		lp.setQuestionVariant("preparation");
-		ScoreStatistics prepProgress = lp.getCourseProgress(null);
-		ScoreStatistics myPrepProgress = lp.getMyProgress(null, userId1);
+		final ScoreStatistics prepProgress = lp.getCourseProgress(null);
+		final ScoreStatistics myPrepProgress = lp.getMyProgress(null, userId1);
 
 		assertEquals(100, lectureProgress.getCourseProgress());
 		assertEquals(100, myLectureProgress.getMyProgress());
@@ -179,8 +179,8 @@ public class QuestionBasedScoreCalculatorTest {
 
 	@Test
 	public void shouldConsiderAnswersOfSamePiRound() {
-		String userId1 = "user1";
-		String userId2 = "user2";
+		final String userId1 = "user1";
+		final String userId2 = "user2";
 		// question is in round 2
 		courseScore.addQuestion("q1", "lecture", 2, 100);
 		// 25 points in round 1, 75 points in round two for the first user
@@ -190,8 +190,8 @@ public class QuestionBasedScoreCalculatorTest {
 		courseScore.addAnswer("q1", 1, userId2, 100);
 		courseScore.addAnswer("q1", 2, userId2, 25);
 
-		ScoreStatistics u1Progress = lp.getMyProgress(null, userId1);
-		ScoreStatistics u2Progress = lp.getMyProgress(null, userId2);
+		final ScoreStatistics u1Progress = lp.getMyProgress(null, userId1);
+		final ScoreStatistics u2Progress = lp.getMyProgress(null, userId2);
 
 		// only the answer for round 2 should be considered
 		assertEquals(50, u1Progress.getCourseProgress());
@@ -203,12 +203,12 @@ public class QuestionBasedScoreCalculatorTest {
 	@Test
 	public void shouldIncludeNominatorAndDenominatorOfResultExcludingStudentCount() {
 		// two questions
-		String q1 = this.addQuestion("lecture", 10);
-		String q2 = this.addQuestion("lecture", 10);
+		final String q1 = this.addQuestion("lecture", 10);
+		final String q2 = this.addQuestion("lecture", 10);
 		// three users
-		String userId1 = "user1";
-		String userId2 = "user2";
-		String userId3 = "user3";
+		final String userId1 = "user1";
+		final String userId2 = "user2";
+		final String userId3 = "user3";
 		// six answers
 		this.addAnswer(q1, userId1, 10);
 		this.addAnswer(q2, userId1, -100);
@@ -217,8 +217,8 @@ public class QuestionBasedScoreCalculatorTest {
 		this.addAnswer(q1, userId3, -100);
 		this.addAnswer(q2, userId3, -100);
 
-		int numerator = lp.getCourseProgress(null).getNumerator();
-		int denominator = lp.getCourseProgress(null).getDenominator();
+		final int numerator = lp.getCourseProgress(null).getNumerator();
+		final int denominator = lp.getCourseProgress(null).getDenominator();
 
 		// If the percentage is wrong, then we need to adapt this test case!
 		assertEquals("Precondition failed -- The underlying calculation has changed",
diff --git a/src/test/java/de/thm/arsnova/service/score/ScoreBasedScoreCalculatorTest.java b/src/test/java/de/thm/arsnova/service/score/ScoreBasedScoreCalculatorTest.java
index b4cfe3f4d7153c72a7d1012eb2984207204ba3eb..c20eefd17d990b872e8f145384e8af980ea4d965 100644
--- a/src/test/java/de/thm/arsnova/service/score/ScoreBasedScoreCalculatorTest.java
+++ b/src/test/java/de/thm/arsnova/service/score/ScoreBasedScoreCalculatorTest.java
@@ -35,14 +35,14 @@ public class ScoreBasedScoreCalculatorTest {
 
 	private int id = 1;
 
-	private String addQuestion(String questionVariant, int points) {
+	private String addQuestion(final String questionVariant, final int points) {
 		final String questionId = "question" + (id++);
 		final int piRound = 1;
 		courseScore.addQuestion(questionId, questionVariant, piRound, points);
 		return questionId;
 	}
 
-	private void addAnswer(String questionId, String userId, int points) {
+	private void addAnswer(final String questionId, final String userId, final int points) {
 		final int piRound = 1;
 		courseScore.addAnswer(questionId, piRound, userId, points);
 	}
@@ -50,7 +50,7 @@ public class ScoreBasedScoreCalculatorTest {
 	@Before
 	public void setUp() {
 		this.courseScore = new Score();
-		SessionStatisticsRepository db = mock(SessionStatisticsRepository.class);
+		final SessionStatisticsRepository db = mock(SessionStatisticsRepository.class);
 		when(db.getLearningProgress(null)).thenReturn(courseScore);
 		this.lp = new ScoreBasedScoreCalculator(db);
 	}
@@ -58,12 +58,12 @@ public class ScoreBasedScoreCalculatorTest {
 	@Test
 	public void shouldFilterBasedOnQuestionVariant() {
 		// Total of 300 Points
-		String q1 = this.addQuestion("lecture", 100);
-		String q2 = this.addQuestion("lecture", 100);
-		String q3 = this.addQuestion("lecture", 100);
-		String userId1 = "user1";
-		String userId2 = "user2";
-		String userId3 = "user3";
+		final String q1 = this.addQuestion("lecture", 100);
+		final String q2 = this.addQuestion("lecture", 100);
+		final String q3 = this.addQuestion("lecture", 100);
+		final String userId1 = "user1";
+		final String userId2 = "user2";
+		final String userId3 = "user3";
 		// Both users achieve 200 points
 		this.addAnswer(q1, userId1, 100);
 		this.addAnswer(q1, userId2, 100);
@@ -76,7 +76,7 @@ public class ScoreBasedScoreCalculatorTest {
 		this.addAnswer(q3, userId3, 0);
 
 		lp.setQuestionVariant("lecture");
-		ScoreStatistics u1LectureProgress = lp.getMyProgress(null, userId1);
+		final ScoreStatistics u1LectureProgress = lp.getMyProgress(null, userId1);
 		// (500/3) / 300 ~= 0,56.
 		assertEquals(56, u1LectureProgress.getCourseProgress());
 		// 200 / 300 ~= 0,67.
@@ -86,11 +86,11 @@ public class ScoreBasedScoreCalculatorTest {
 	@Test
 	public void shouldNotContainRoundingErrors() {
 		// Total of 300 Points
-		String q1 = this.addQuestion("lecture", 100);
-		String q2 = this.addQuestion("lecture", 100);
-		String q3 = this.addQuestion("lecture", 100);
-		String userId1 = "user1";
-		String userId2 = "user2";
+		final String q1 = this.addQuestion("lecture", 100);
+		final String q2 = this.addQuestion("lecture", 100);
+		final String q3 = this.addQuestion("lecture", 100);
+		final String userId1 = "user1";
+		final String userId2 = "user2";
 		// Both users achieve 200 points
 		this.addAnswer(q1, userId1, 100);
 		this.addAnswer(q1, userId2, 100);
@@ -100,7 +100,7 @@ public class ScoreBasedScoreCalculatorTest {
 		this.addAnswer(q3, userId2, 100);
 
 		lp.setQuestionVariant("lecture");
-		ScoreStatistics u1LectureProgress = lp.getMyProgress(null, userId1);
+		final ScoreStatistics u1LectureProgress = lp.getMyProgress(null, userId1);
 		// 200 / 300 = 0,67
 		assertEquals(67, u1LectureProgress.getCourseProgress());
 		assertEquals(67, u1LectureProgress.getMyProgress());
@@ -108,8 +108,8 @@ public class ScoreBasedScoreCalculatorTest {
 
 	@Test
 	public void shouldConsiderAnswersOfSamePiRound() {
-		String userId1 = "user1";
-		String userId2 = "user2";
+		final String userId1 = "user1";
+		final String userId2 = "user2";
 		// question is in round 2
 		courseScore.addQuestion("q1", "lecture", 2, 100);
 		// 25 points in round 1, 75 points in round two for the first user
@@ -119,8 +119,8 @@ public class ScoreBasedScoreCalculatorTest {
 		courseScore.addAnswer("q1", 1, userId2, 75);
 		courseScore.addAnswer("q1", 2, userId2, 25);
 
-		ScoreStatistics u1Progress = lp.getMyProgress(null, userId1);
-		ScoreStatistics u2Progress = lp.getMyProgress(null, userId2);
+		final ScoreStatistics u1Progress = lp.getMyProgress(null, userId1);
+		final ScoreStatistics u2Progress = lp.getMyProgress(null, userId2);
 
 		// only the answer for round 2 should be considered
 		assertEquals(50, u1Progress.getCourseProgress());
@@ -132,12 +132,12 @@ public class ScoreBasedScoreCalculatorTest {
 	@Test
 	public void shouldIncludeNominatorAndDenominatorOfResultExcludingStudentCount() {
 		// two questions
-		String q1 = this.addQuestion("lecture", 10);
-		String q2 = this.addQuestion("lecture", 10);
+		final String q1 = this.addQuestion("lecture", 10);
+		final String q2 = this.addQuestion("lecture", 10);
 		// three users
-		String userId1 = "user1";
-		String userId2 = "user2";
-		String userId3 = "user3";
+		final String userId1 = "user1";
+		final String userId2 = "user2";
+		final String userId3 = "user3";
 		// six answers
 		this.addAnswer(q1, userId1, 10);
 		this.addAnswer(q2, userId1, 0);
@@ -146,8 +146,8 @@ public class ScoreBasedScoreCalculatorTest {
 		this.addAnswer(q1, userId3, 10);
 		this.addAnswer(q2, userId3, 0);
 
-		int numerator = lp.getCourseProgress(null).getNumerator();
-		int denominator = lp.getCourseProgress(null).getDenominator();
+		final int numerator = lp.getCourseProgress(null).getNumerator();
+		final int denominator = lp.getCourseProgress(null).getDenominator();
 
 		// If the percentage is wrong, then we need to adapt this test case!
 		assertEquals("Precondition failed -- The underlying calculation has changed",
diff --git a/src/test/java/de/thm/arsnova/test/context/support/WithMockUserSecurityContextFactory.java b/src/test/java/de/thm/arsnova/test/context/support/WithMockUserSecurityContextFactory.java
index 9a0ee1b86cec8462a9634fcd04405489fbc5d8ee..2f30676db936bb8344f686563520b685230b7041 100644
--- a/src/test/java/de/thm/arsnova/test/context/support/WithMockUserSecurityContextFactory.java
+++ b/src/test/java/de/thm/arsnova/test/context/support/WithMockUserSecurityContextFactory.java
@@ -37,14 +37,14 @@ import de.thm.arsnova.security.User;
 public class WithMockUserSecurityContextFactory implements WithSecurityContextFactory<WithMockUser> {
 	@Override
 	public SecurityContext createSecurityContext(final WithMockUser withMockUser) {
-		String loginId = StringUtils.hasLength(withMockUser.loginId()) ? withMockUser.loginId() : withMockUser.value();
-		UserProfile userProfile = new UserProfile(withMockUser.authProvider(), loginId);
+		final String loginId = StringUtils.hasLength(withMockUser.loginId()) ? withMockUser.loginId() : withMockUser.value();
+		final UserProfile userProfile = new UserProfile(withMockUser.authProvider(), loginId);
 		userProfile.setId(!withMockUser.userId().isEmpty() ? withMockUser.userId() : loginId);
-		User user = new User(userProfile, Arrays.stream(withMockUser.roles())
+		final User user = new User(userProfile, Arrays.stream(withMockUser.roles())
 				.map(r -> new SimpleGrantedAuthority("ROLE_" + r)).collect(Collectors.toList()));
-		Authentication authentication =
+		final Authentication authentication =
 				new UsernamePasswordAuthenticationToken(user, withMockUser.password(), user.getAuthorities());
-		SecurityContext context = SecurityContextHolder.createEmptyContext();
+		final SecurityContext context = SecurityContextHolder.createEmptyContext();
 		context.setAuthentication(authentication);
 
 		return context;
diff --git a/src/test/java/de/thm/arsnova/util/ImageUtilsTest.java b/src/test/java/de/thm/arsnova/util/ImageUtilsTest.java
index a1f47cf13fd73b1ffef909f4986a3cb3d8411a7f..a96e1abf2414dcf2de9cabaf64286bc04b239933 100644
--- a/src/test/java/de/thm/arsnova/util/ImageUtilsTest.java
+++ b/src/test/java/de/thm/arsnova/util/ImageUtilsTest.java
@@ -68,7 +68,7 @@ public class ImageUtilsTest {
       "data:image/png;base63,IMAGE-DATA"
     };
 
-    for (String fakeString : fakeStrings) {
+    for (final String fakeString : fakeStrings) {
       assertFalse(
         String.format("The String %s is not a valid Base64 String.", fakeString),
         imageUtils.isBase64EncodedImage(fakeString)
diff --git a/src/test/java/de/thm/arsnova/websocket/handler/FeedbackCommandHandlerTest.java b/src/test/java/de/thm/arsnova/websocket/handler/FeedbackCommandHandlerTest.java
index 844234368ae55a44eef9252867f7a314ebe81d76..3261a01776b89af36c0bb4c66814b15742e01f80 100644
--- a/src/test/java/de/thm/arsnova/websocket/handler/FeedbackCommandHandlerTest.java
+++ b/src/test/java/de/thm/arsnova/websocket/handler/FeedbackCommandHandlerTest.java
@@ -33,21 +33,21 @@ public class FeedbackCommandHandlerTest {
 
 	@Test
 	public void getFeedback() {
-		String roomId = "12345678";
-		GetFeedback getFeedback = new GetFeedback();
-		FeedbackCommandHandler.GetFeedbackCommand getFeedbackCommand =
+		final String roomId = "12345678";
+		final GetFeedback getFeedback = new GetFeedback();
+		final FeedbackCommandHandler.GetFeedbackCommand getFeedbackCommand =
 				new FeedbackCommandHandler.GetFeedbackCommand(roomId, null);
 
 		commandHandler.handle(getFeedbackCommand);
 
-		FeedbackChangedPayload feedbackChangedPayload = new FeedbackChangedPayload();
-		int[] expectedVals = new int[]{0, 0, 0, 0};
+		final FeedbackChangedPayload feedbackChangedPayload = new FeedbackChangedPayload();
+		final int[] expectedVals = new int[]{0, 0, 0, 0};
 		feedbackChangedPayload.setValues(expectedVals);
-		FeedbackChanged feedbackChanged = new FeedbackChanged();
+		final FeedbackChanged feedbackChanged = new FeedbackChanged();
 		feedbackChanged.setPayload(feedbackChangedPayload);
 
-		ArgumentCaptor<String> topicCaptor = ArgumentCaptor.forClass(String.class);
-		ArgumentCaptor<FeedbackChanged> messageCaptor =
+		final ArgumentCaptor<String> topicCaptor = ArgumentCaptor.forClass(String.class);
+		final ArgumentCaptor<FeedbackChanged> messageCaptor =
 				ArgumentCaptor.forClass(FeedbackChanged.class);
 
 		verify(messagingTemplate).convertAndSend(topicCaptor.capture(), messageCaptor.capture());
@@ -57,17 +57,17 @@ public class FeedbackCommandHandlerTest {
 
 	@Test
 	public void sendFeedback() {
-		String roomId = "12345678";
-		CreateFeedbackPayload createFeedbackPayload = new CreateFeedbackPayload(1);
+		final String roomId = "12345678";
+		final CreateFeedbackPayload createFeedbackPayload = new CreateFeedbackPayload(1);
 		createFeedbackPayload.setValue(1);
-		CreateFeedback createFeedback = new CreateFeedback();
+		final CreateFeedback createFeedback = new CreateFeedback();
 		createFeedback.setPayload(createFeedbackPayload);
-		FeedbackCommandHandler.CreateFeedbackCommand createFeedbackCommand =
+		final FeedbackCommandHandler.CreateFeedbackCommand createFeedbackCommand =
 				new FeedbackCommandHandler.CreateFeedbackCommand(roomId, createFeedback);
 
 		commandHandler.handle(createFeedbackCommand);
 
-		ArgumentCaptor<String> captor = ArgumentCaptor.forClass(String.class);
+		final ArgumentCaptor<String> captor = ArgumentCaptor.forClass(String.class);
 		verify(messagingTemplate).convertAndSend(captor.capture(), any(FeedbackChanged.class));
 		assertThat(captor.getValue()).isEqualTo("/topic/" + roomId + ".feedback.stream");
 	}
diff --git a/src/test/java/de/thm/arsnova/websocket/handler/FeedbackHandlerTest.java b/src/test/java/de/thm/arsnova/websocket/handler/FeedbackHandlerTest.java
index b95cd307a460b531ca11a39daaa999a31fedecc2..5df17f42ce3f155369d11cd1e1f4325ab13071cc 100644
--- a/src/test/java/de/thm/arsnova/websocket/handler/FeedbackHandlerTest.java
+++ b/src/test/java/de/thm/arsnova/websocket/handler/FeedbackHandlerTest.java
@@ -33,7 +33,7 @@ public class FeedbackHandlerTest {
 				new CreateFeedback()
 		);
 
-		ArgumentCaptor<FeedbackCommandHandler.CreateFeedbackCommand> captor =
+		final ArgumentCaptor<FeedbackCommandHandler.CreateFeedbackCommand> captor =
 				ArgumentCaptor.forClass(FeedbackCommandHandler.CreateFeedbackCommand.class);
 		verify(feedbackCommandHandler, times(1)).handle(captor.capture());