From a06f3c0ad8bd0a24383e9ca6cb80ac789652dbd6 Mon Sep 17 00:00:00 2001
From: Daniel Gerhardt <code@dgerhardt.net>
Date: Thu, 27 Jun 2019 14:08:10 +0200
Subject: [PATCH] Declare all unchanged variables as final

---
 checkstyle.xml                                |   6 +
 .../de/thm/arsnova/cache/CacheBusterImpl.java |  12 +-
 .../java/de/thm/arsnova/config/AppConfig.java |  34 ++---
 .../de/thm/arsnova/config/AppInitializer.java |   8 +-
 .../de/thm/arsnova/config/SecurityConfig.java |  44 +++---
 .../thm/arsnova/config/WebSocketConfig.java   |   8 +-
 .../controller/AbstractEntityController.java  |  12 +-
 .../controller/AuthenticationController.java  |   2 +-
 .../controller/ConfigurationController.java   |   4 +-
 .../controller/ControllerExceptionHelper.java |   4 +-
 .../controller/PaginationController.java      |   2 +-
 .../arsnova/controller/UserController.java    |   6 +-
 .../arsnova/controller/WelcomeController.java |  10 +-
 .../v2/AuthenticationController.java          |  34 ++---
 .../controller/v2/CommentController.java      |   6 +-
 .../controller/v2/ContentController.java      |  62 ++++----
 .../controller/v2/FeedbackController.java     |  10 +-
 .../arsnova/controller/v2/MotdController.java |  22 +--
 .../arsnova/controller/v2/RoomController.java |  24 ++--
 .../controller/v2/SocketController.java       |   4 +-
 .../arsnova/controller/v2/UserController.java |   4 +-
 .../de/thm/arsnova/event/ArsnovaEvent.java    |   2 +-
 .../thm/arsnova/event/ChangeScoreEvent.java   |   2 +-
 .../event/DeleteFeedbackForRoomsEvent.java    |   2 +-
 .../arsnova/event/FlipFlashcardsEvent.java    |   2 +-
 .../thm/arsnova/event/NewFeedbackEvent.java   |   2 +-
 .../java/de/thm/arsnova/event/RoomEvent.java  |   2 +-
 .../arsnova/event/StateEventDispatcher.java   |   6 +-
 .../java/de/thm/arsnova/model/Answer.java     |   4 +-
 .../thm/arsnova/model/AnswerStatistics.java   |  10 +-
 .../java/de/thm/arsnova/model/Attachment.java |   8 +-
 .../arsnova/model/ChoiceQuestionContent.java  |   4 +-
 .../java/de/thm/arsnova/model/Comment.java    |   2 +-
 .../java/de/thm/arsnova/model/Content.java    |   6 +-
 .../java/de/thm/arsnova/model/Entity.java     |   6 +-
 .../java/de/thm/arsnova/model/Feedback.java   |   4 +-
 .../java/de/thm/arsnova/model/LogEntry.java   |   3 +-
 .../de/thm/arsnova/model/MigrationState.java  |   2 +-
 src/main/java/de/thm/arsnova/model/Room.java  |   6 +-
 .../java/de/thm/arsnova/model/TextAnswer.java |   2 +-
 .../de/thm/arsnova/model/UserProfile.java     |   8 +-
 .../model/migration/FromV2Migrator.java       |  28 ++--
 .../arsnova/model/migration/ToV2Migrator.java |  24 ++--
 .../arsnova/model/migration/v2/Answer.java    |  22 +--
 .../model/migration/v2/AnswerOption.java      |   8 +-
 .../migration/v2/ClientAuthentication.java    |   8 +-
 .../arsnova/model/migration/v2/Comment.java   |  14 +-
 .../migration/v2/CommentReadingCount.java     |   6 +-
 .../arsnova/model/migration/v2/Content.java   |  90 ++++++------
 .../arsnova/model/migration/v2/DbUser.java    |  18 +--
 .../arsnova/model/migration/v2/LogEntry.java  |   3 +-
 .../arsnova/model/migration/v2/LoggedIn.java  |  16 +--
 .../thm/arsnova/model/migration/v2/Motd.java  |   4 +-
 .../arsnova/model/migration/v2/MotdList.java  |   2 +-
 .../thm/arsnova/model/migration/v2/Room.java  |  14 +-
 .../model/migration/v2/RoomFeature.java       |  36 ++---
 .../arsnova/model/migration/v2/RoomInfo.java  |  40 +++---
 .../model/migration/v2/VisitedRoom.java       |   6 +-
 .../serialization/CouchDbDocumentModule.java  |   2 +-
 .../CouchDbObjectMapperFactory.java           |   4 +-
 .../CouchDbTypeFieldConverter.java            |   6 +-
 .../CouchDbTypeFieldV2Converter.java          |   6 +-
 .../FormatAnswerTypeIdResolver.java           |   2 +-
 .../FormatContentTypeIdResolver.java          |   2 +-
 .../transport/ImportExportContainer.java      |  64 ++++-----
 .../model/transport/ScoreStatistics.java      |  16 +--
 .../persistence/LogEntryRepository.java       |   2 +-
 .../couchdb/CouchDbAnswerRepository.java      |   6 +-
 .../couchdb/CouchDbCrudRepository.java        |   2 +-
 .../couchdb/CouchDbInitializer.java           |  10 +-
 .../couchdb/CouchDbRoomRepository.java        |   8 +-
 .../CouchDbSessionStatisticsRepository.java   |   4 +-
 .../couchdb/CouchDbStatisticsRepository.java  |   4 +-
 .../couchdb/CouchDbUserRepository.java        |   2 +-
 .../couchdb/migrations/MigrationExecutor.java |   4 +-
 .../couchdb/migrations/V2ToV3Migration.java   | 135 +++++++++---------
 .../support/MangoCouchDbConnector.java        |  72 +++++-----
 .../support/MangoQueryResultParser.java       |  18 +--
 .../couchdb/support/MangoResponseHandler.java |  10 +-
 .../ApplicationPermissionEvaluator.java       |  12 +-
 .../security/CasLogoutSuccessHandler.java     |   2 +-
 .../security/CustomLdapUserDetailsMapper.java |   2 +-
 .../security/GuestUserDetailsService.java     |   2 +-
 .../LoginAuthenticationFailureHandler.java    |   2 +-
 .../LoginAuthenticationSucessHandler.java     |   2 +-
 .../thm/arsnova/security/jwt/JwtService.java  |   4 +-
 .../arsnova/security/jwt/JwtTokenFilter.java  |   6 +-
 .../arsnova/security/pac4j/OAuthToken.java    |   4 +-
 .../pac4j/OauthAuthenticationProvider.java    |   4 +-
 .../security/pac4j/OauthCallbackFilter.java   |   6 +-
 .../pac4j/OauthUserDetailsService.java        |   4 +-
 .../arsnova/service/AnswerServiceImpl.java    |  22 +--
 .../service/AttachmentServiceImpl.java        |   4 +-
 .../service/CommentFindQueryService.java      |   4 +-
 .../arsnova/service/CommentServiceImpl.java   |  15 +-
 .../service/ContentFindQueryService.java      |   6 +-
 .../arsnova/service/ContentServiceImpl.java   |  37 ++---
 .../service/DefaultEntityServiceImpl.java     |  31 ++--
 .../arsnova/service/FeedbackServiceImpl.java  |  22 +--
 .../service/FeedbackStorageServiceImpl.java   |   2 +-
 .../thm/arsnova/service/MotdServiceImpl.java  |  23 +--
 .../service/ResponseProviderServiceImpl.java  |   2 +-
 .../arsnova/service/RoomFindQueryService.java |   6 +-
 .../thm/arsnova/service/RoomServiceImpl.java  |  66 ++++-----
 .../service/StatisticsServiceImpl.java        |   4 +-
 .../thm/arsnova/service/TimerServiceImpl.java |   2 +-
 .../thm/arsnova/service/UserServiceImpl.java  | 107 +++++++-------
 .../score/QuestionBasedScoreCalculator.java   |  30 ++--
 .../arsnova/service/score/QuestionScore.java  |  17 +--
 .../de/thm/arsnova/service/score/Score.java   |  31 ++--
 .../score/ScoreBasedScoreCalculator.java      |  10 +-
 .../score/ScoreCalculatorFactoryImpl.java     |  16 +--
 .../thm/arsnova/service/score/UserScore.java  |   6 +-
 .../service/score/VariantScoreCalculator.java |   4 +-
 .../java/de/thm/arsnova/util/ImageUtils.java  |  20 +--
 .../java/de/thm/arsnova/web/CacheControl.java |   2 +-
 .../java/de/thm/arsnova/web/CorsFilter.java   |   8 +-
 ...hApiVersionContentNegotiationStrategy.java |   2 +-
 .../java/de/thm/arsnova/web/RangeAspect.java  |  13 +-
 .../web/ResponseInterceptorHandler.java       |   6 +-
 .../web/V2ContentTypeOverrideFilter.java      |   6 +-
 .../web/exceptions/BadRequestException.java   |   6 +-
 .../web/exceptions/ForbiddenException.java    |   6 +-
 .../web/exceptions/NoContentException.java    |   6 +-
 .../web/exceptions/NotFoundException.java     |   6 +-
 .../exceptions/NotImplementedException.java   |   6 +-
 .../exceptions/PayloadTooLargeException.java  |   6 +-
 .../PreconditionFailedException.java          |   6 +-
 .../web/exceptions/UnauthorizedException.java |   6 +-
 .../websocket/ArsnovaSocketioServerImpl.java  |  67 ++++-----
 .../WebsocketAuthenticationAspect.java        |  10 +-
 .../AuthChannelInterceptorAdapter.java        |  14 +-
 .../handler/FeedbackCommandHandler.java       |  28 ++--
 .../websocket/handler/FeedbackHandler.java    |  10 +-
 .../arsnova/websocket/message/Content.java    |   2 +-
 .../message/CreateFeedbackPayload.java        |   4 +-
 .../arsnova/websocket/message/Feedback.java   |   2 +-
 .../websocket/message/FeedbackChanged.java    |   4 +-
 .../message/FeedbackChangedPayload.java       |   6 +-
 .../arsnova/websocket/message/Patched.java    |   2 +-
 .../websocket/message/PatchedPayload.java     |  10 +-
 .../thm/arsnova/websocket/message/Room.java   |   2 +-
 .../websocket/message/WebSocketMessage.java   |   6 +-
 .../de/thm/arsnova/config/AppConfigTest.java  |   4 +-
 .../de/thm/arsnova/config/TestAppConfig.java  |   6 +-
 .../arsnova/config/TestSecurityConfig.java    |   2 +-
 .../event/StateEventDispatcherTest.java       |  10 +-
 .../de/thm/arsnova/model/ContentTest.java     |  40 +++---
 .../java/de/thm/arsnova/model/EntityTest.java |  26 ++--
 .../de/thm/arsnova/model/FeedbackTest.java    |  34 ++---
 .../java/de/thm/arsnova/model/TestClient.java |   2 +-
 .../model/migration/FromV2MigratorTest.java   |  16 +--
 .../model/migration/ToV2MigratorTest.java     |  12 +-
 .../service/DefaultEntityServiceImplTest.java |   2 +-
 .../arsnova/service/FeedbackServiceTest.java  |  20 +--
 .../thm/arsnova/service/StubUserService.java  |  12 +-
 .../thm/arsnova/service/UserServiceTest.java  |  26 ++--
 .../QuestionBasedScoreCalculatorTest.java     |  84 +++++------
 .../score/ScoreBasedScoreCalculatorTest.java  |  54 +++----
 .../WithMockUserSecurityContextFactory.java   |  10 +-
 .../de/thm/arsnova/util/ImageUtilsTest.java   |   2 +-
 .../handler/FeedbackCommandHandlerTest.java   |  26 ++--
 .../handler/FeedbackHandlerTest.java          |   2 +-
 163 files changed, 1160 insertions(+), 1138 deletions(-)

diff --git a/checkstyle.xml b/checkstyle.xml
index 89f130ae3..b95092f43 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 2eb5a718b..4d8a7ed92 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 ec8803475..fc360c599 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 780b342f0..74e069a74 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 eb10e7ff9..bd832e20f 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 f8dd3dee2..e2dee780a 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 f87c4fc5c..fd32ace47 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 f9bd848ac..7c7df3663 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 6a69d8b27..b530717f0 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 55972994e..ea7336c06 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 3f0983db4..e51e9806c 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 cd6519a23..fb8880f24 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 779d9a2a0..8ce005e50 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 e4e601f8c..8a1b43f79 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 4b0cc2c20..9ee584c8e 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 5aff031c6..88eb31b51 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 3aa4a83ff..982ceae90 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 2d986e02b..9667802cf 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 b84c0bfa8..aa674f9df 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 a84d51408..d3ed9a737 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 5bd9c30aa..0604ea5a9 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 66d51c083..d370b83c2 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 4dc188ddd..b22bea8bf 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 45729339f..7d9d6ea02 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 73abd1b11..93ec84c35 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 07e54276a..7550f6508 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 93352387b..c260a14c8 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 243a32e59..6b2a34c96 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 6c7868940..551fb7484 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 a0a9f049c..7fb3d10e5 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 3941c93e7..6bb0af004 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 5c92d6528..39fd66f89 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 b5c66bc14..97160635e 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 e01aa2bdf..f708e6f9f 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 4d653ea90..09df82537 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 c64521796..478a0b52f 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 4e1eaa86e..5f6c48c33 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 5a96ead20..23d4dc28c 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 2fcbc65db..142ad48f8 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 ac84b9d59..f4a206997 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 dfbf10f21..7d17f9fcf 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 30f7f1936..9e7f218d2 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 cef7acfa8..387ecec98 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 31c1003f2..1c9740751 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 ea8f58885..1574d7f35 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 33cbcb499..2510ad89d 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 057deaf3f..1103e5bb4 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 0a52b3bbe..2b6291a29 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 3d334d997..258fe80f0 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 a54810bc9..1ec263bde 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 522c3928c..74232a127 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 a34ebc862..54332633b 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 cd834cceb..76ccbe954 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 27ba44b0c..bc5d1ac94 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 552fb2cff..e79a0531f 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 568fcbf65..2ab9711bd 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 c24129e40..e127e88d7 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 e0ae732c2..2f7385c67 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 546365644..c01dbd81e 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 b53860bf6..0ac9a9e78 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 498d88ecb..58b0e6f7a 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 00fa737fa..6a16b2429 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 a415be14a..81ed4117d 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 d52dc1f66..209ebce24 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 1e4f33659..12e623907 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 63dc193d5..97916d418 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 368211ba9..6af528455 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 8c1c67d41..a6b70c5d3 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 d2c95ab4b..9844e8ba8 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 0e5f7c168..c055f3a4c 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 792dc8f56..c3c186658 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 a30960570..9e733d29f 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 5020e8842..88c9441bc 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 819f74c47..e2686688e 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 9a7ee62dc..24897a63d 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 cd376bce5..adebf71a0 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 c293bf778..5ca603939 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 6f58b8a05..3967b0036 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 e79db8c3c..26aa71b35 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 9a62f9be7..3385d5508 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 4ae26b672..ccb0b686d 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 4efa3c1c8..f848b148f 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 01b5af53a..1a71b867e 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 c86605d86..c3330f1eb 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 dbfaf1cce..fe16ae086 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 3ebafe67a..ce1b81a3e 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 51d8472ed..22a5bce91 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 31d05e17c..1cb64286a 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 6e9c208fd..3c20be9f3 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 f75f0850e..c6dc76eaf 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 f81eec48f..b4f49e309 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 82685c8ce..465779fc0 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 619eadde3..d31955f1a 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 f8841bb6e..f5fcd1633 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 0ee2f04a7..a640924ae 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 0a20659cc..ad668a81f 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 6070a0ee0..4c003d790 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 b303c12c4..dea9736b0 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 3de6be8f5..d36364fd5 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 820bb0624..4600cf979 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 13b2abcf3..e57202ff5 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 c50b8c5fa..61a40def8 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 12c6b84f2..180a187d4 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 8fb29b28d..0bef23bac 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 e92a7f576..da0f7f4f5 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 1fabf8ea1..a539d3371 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 98a93c5b7..5bf25e1a4 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 6188ce98f..aa5298891 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 62d01d956..a4845fef8 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 99c7bd684..d15fe2a53 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 f1ed464f5..a624ee85c 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 c108a0319..b32e015a6 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 175b862b0..4e4e2ca9d 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 990a95489..549a7d6e0 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 2032ffd62..6ada09249 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 4fad63ee2..7e27a0535 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 f5aa3a320..a87388324 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 699a79f6c..b5875482a 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 4c9781392..f6fae2b8f 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 7e7c69547..eb7c09752 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 99c09a24e..ab033adb9 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 7f417aca2..2ece9003f 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 aefe91f33..54908825a 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 0177ac4ac..10778acfe 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 faa58e11d..dfb4b8953 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 7941effb4..146616256 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 5dff0716a..a17d4dce8 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 31c1de8b2..3956603c0 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 e889a0f42..f7651d562 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 314ee9a2c..4717df44f 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 6b045c981..f8404c8c8 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 4318789f9..a9098c962 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 06b6f33f0..172b998e0 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 50308d6ff..1708df58a 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 243349e9c..e2539d1c0 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 ee74510fd..c7abf3a9f 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 e18789dc4..d1b3e3a4c 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 2e7414358..f8a6a0c84 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 29278f468..13f6d26f0 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 87f84cab6..1d31bfec0 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 1c94099a0..2e8944823 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 25de1d48b..2b18bf97d 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 6a0b6d415..48d4fda4c 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 0d7062cd1..c6210b2dc 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 6fdff03e3..b63470c6f 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 34750f976..d8e994266 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 6a0d592f3..852101f0e 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 78ed369a3..272b0f35d 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 aee0db9c8..22d40d447 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 5cc91beb6..9ff34ed93 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 d51426482..f6751f3fa 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 475d4df81..80630dfd5 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 9b96a2db2..c8bc41db5 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 8d4657cb9..84e64df88 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 71cb00fed..7a50a840f 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 3375e27c0..a8bfb3b40 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 d08e10930..86ae23d3d 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 c591959e9..ba4579868 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 b4cfe3f4d..c20eefd17 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 9a0ee1b86..2f30676db 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 a1f47cf13..a96e1abf2 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 844234368..3261a0177 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 b95cd307a..5df17f42c 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());
 
-- 
GitLab