Browse Source

fix some (old) quality flaws

tags/8.0
Sébastien Lesaint 4 years ago
parent
commit
7a9b72c6a4

+ 7
- 7
server/sonar-webserver-webapi/src/main/java/org/sonar/server/metric/ws/SearchAction.java View File

@@ -89,13 +89,13 @@ public class SearchAction implements MetricsWsAction {
try (DbSession dbSession = dbClient.openSession(false)) {
List<MetricDto> metrics = dbClient.metricDao().selectEnabled(dbSession, isCustom, searchOptions.getOffset(), searchOptions.getLimit());
int nbMetrics = dbClient.metricDao().countEnabled(dbSession, isCustom);
JsonWriter json = response.newJsonWriter();
json.beginObject();
Set<String> desiredFields = desiredFields(request.paramAsStrings(Param.FIELDS));
writeMetrics(json, metrics, desiredFields);
searchOptions.writeJson(json, nbMetrics);
json.endObject();
json.close();
try (JsonWriter json = response.newJsonWriter()) {
json.beginObject();
Set<String> desiredFields = desiredFields(request.paramAsStrings(Param.FIELDS));
writeMetrics(json, metrics, desiredFields);
searchOptions.writeJson(json, nbMetrics);
json.endObject();
}
}
}


+ 13
- 1
server/sonar-webserver/src/main/java/org/sonar/server/platform/web/MasterServletFilter.java View File

@@ -25,6 +25,8 @@ import com.google.common.collect.Lists;
import java.io.IOException;
import java.util.Iterator;
import java.util.List;
import javax.annotation.CheckForNull;
import javax.annotation.Nullable;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
@@ -41,7 +43,7 @@ import org.sonar.server.platform.PlatformImpl;
*/
public class MasterServletFilter implements Filter {

public static volatile MasterServletFilter INSTANCE;
private static volatile MasterServletFilter INSTANCE;
private ServletFilter[] filters;
private FilterConfig config;

@@ -59,6 +61,16 @@ public class MasterServletFilter implements Filter {
init(config, PlatformImpl.getInstance().getContainer().getComponentsByType(ServletFilter.class));
}

@CheckForNull
public static MasterServletFilter getInstance() {
return INSTANCE;
}

@VisibleForTesting
static void setInstance(@Nullable MasterServletFilter instance) {
INSTANCE = instance;
}

void init(FilterConfig config, List<ServletFilter> filters) {
this.config = config;
initFilters(filters);

+ 3
- 2
server/sonar-webserver/src/main/java/org/sonar/server/platform/web/RegisterServletFilters.java View File

@@ -39,11 +39,12 @@ public class RegisterServletFilters implements Startable {

@Override
public void start() {
if (MasterServletFilter.INSTANCE != null) {
MasterServletFilter masterServletFilter = MasterServletFilter.getInstance();
if (masterServletFilter != null) {
// Probably a database upgrade. MasterSlaveFilter was instantiated by the servlet container
// while picocontainer was not completely up.
// See https://jira.sonarsource.com/browse/SONAR-3612
MasterServletFilter.INSTANCE.initFilters(Arrays.asList(filters));
masterServletFilter.initFilters(Arrays.asList(filters));
}
}


+ 1
- 1
server/sonar-webserver/src/test/java/org/sonar/server/platform/web/MasterServletFilterTest.java View File

@@ -56,7 +56,7 @@ public class MasterServletFilterTest {

@Before
public void resetSingleton() {
MasterServletFilter.INSTANCE = null;
MasterServletFilter.setInstance(null);
}

@Test

+ 8
- 9
server/sonar-webserver/src/test/java/org/sonar/server/platform/web/RegisterServletFiltersTest.java View File

@@ -19,7 +19,6 @@
*/
package org.sonar.server.platform.web;

import javax.servlet.ServletException;
import org.junit.Test;
import org.sonar.api.web.ServletFilter;

@@ -29,24 +28,24 @@ import static org.mockito.Mockito.verify;

public class RegisterServletFiltersTest {
@Test
public void should_not_fail_if_master_filter_is_not_up() throws ServletException {
MasterServletFilter.INSTANCE = null;
public void should_not_fail_if_master_filter_is_not_up() {
MasterServletFilter.setInstance(null);
new RegisterServletFilters(new ServletFilter[2]).start();
}

@Test
public void should_register_filters_if_master_filter_is_up() throws ServletException {
MasterServletFilter.INSTANCE = mock(MasterServletFilter.class);
public void should_register_filters_if_master_filter_is_up() {
MasterServletFilter.setInstance(mock(MasterServletFilter.class));
new RegisterServletFilters(new ServletFilter[2]).start();

verify(MasterServletFilter.INSTANCE).initFilters(anyList());
verify(MasterServletFilter.getInstance()).initFilters(anyList());
}

@Test
public void filters_should_be_optional() throws ServletException {
MasterServletFilter.INSTANCE = mock(MasterServletFilter.class);
public void filters_should_be_optional() {
MasterServletFilter.setInstance(mock(MasterServletFilter.class));
new RegisterServletFilters().start();
// do not fail
verify(MasterServletFilter.INSTANCE).initFilters(anyList());
verify(MasterServletFilter.getInstance()).initFilters(anyList());
}
}

Loading…
Cancel
Save