[SCB-2626] make spotbugs check integrations (#3163)
diff --git a/.github/workflows/spotbugs.yml b/.github/workflows/spotbugs.yml
index a2bc422..9487422 100644
--- a/.github/workflows/spotbugs.yml
+++ b/.github/workflows/spotbugs.yml
@@ -35,4 +35,4 @@
java-version: '8'
distribution: 'temurin'
- name: spotbugs
- run: mvn -B -DskipTests clean verify spotbugs:spotbugs
+ run: mvn -B -Pit -DskipTests clean verify spotbugs:spotbugs
diff --git a/ci/spotbugs/exclude.xml b/ci/spotbugs/exclude.xml
index 1b33321..0bd1332 100644
--- a/ci/spotbugs/exclude.xml
+++ b/ci/spotbugs/exclude.xml
@@ -44,6 +44,30 @@
</Match>
<Match>
+ <Bug pattern="DM_DEFAULT_ENCODING"/>
+ <Class name="org.apache.servicecomb.demo.jaxrs.server.beanParam.BeanParamTestService"/>
+ </Match>
+
+ <Match>
+ <Bug pattern="DM_DEFAULT_ENCODING"/>
+ <Class name="org.apache.servicecomb.it.deploy.Deploys"/>
+ </Match>
+
+ <Match>
+ <Bug pattern="DM_DEFAULT_ENCODING"/>
+ <Class name="org.apache.servicecomb.it.testcase.TestParamCodecEdge"/>
+ </Match>
+
+ <Match>
+ <Bug pattern="DM_DEFAULT_ENCODING"/>
+ <Class name="org.apache.servicecomb.it.testcase.TestRestServerConfigEdge"/>
+ </Match>
+
+ <Match>
+ <Bug pattern="DM_EXIT"/>
+ </Match>
+
+ <Match>
<Bug pattern="EC_UNRELATED_TYPES"/>
</Match>
@@ -116,14 +140,41 @@
</Match>
<Match>
+ <Bug pattern="NM_CLASS_NOT_EXCEPTION"/>
+ </Match>
+
+ <Match>
+ <Bug pattern="NM_METHOD_NAMING_CONVENTION"/>
+ </Match>
+
+ <Match>
<Bug pattern="NM_SAME_SIMPLE_NAME_AS_SUPERCLASS"/>
</Match>
<Match>
+ <Bug pattern="NP_NONNULL_PARAM_VIOLATION"/>
+ <Class name="org.apache.servicecomb.it.testcase.objectparams.TestJAXRSObjectParamType"/>
+ </Match>
+
+ <Match>
+ <Bug pattern="NP_NONNULL_PARAM_VIOLATION"/>
+ <Class name="org.apache.servicecomb.it.testcase.objectparams.TestRPCObjectParamType"/>
+ </Match>
+
+ <Match>
+ <Bug pattern="NP_NONNULL_PARAM_VIOLATION"/>
+ <Class name="org.apache.servicecomb.it.testcase.objectparams.TestSpringMVCObjectParamType"/>
+ </Match>
+
+ <Match>
<Bug pattern="NP_NONNULL_RETURN_VIOLATION"/>
</Match>
<Match>
+ <Bug pattern="NP_NULL_ON_SOME_PATH"/>
+ </Match>
+
+ <Match>
<Bug pattern="NP_NULL_ON_SOME_PATH_FROM_RETURN_VALUE"/>
</Match>
@@ -144,6 +195,11 @@
</Match>
<Match>
+ <Bug pattern="REC_CATCH_EXCEPTION"/>
+ <Class name="org.apache.servicecomb.demo.springmvc.SpringmvcClient"/>
+ </Match>
+
+ <Match>
<Bug pattern="REFLC_REFLECTION_MAY_INCREASE_ACCESSIBILITY_OF_CLASS"/>
</Match>
@@ -152,10 +208,19 @@
</Match>
<Match>
+ <Bug pattern="RV_RETURN_VALUE_IGNORED"/>
+ </Match>
+
+ <Match>
<Bug pattern="SE_BAD_FIELD"/>
</Match>
<Match>
+ <Bug pattern="SR_NOT_CHECKED"/>
+ <Class name="org.apache.servicecomb.demo.springmvc.client.ConsumerTestsAfterBootup"/>
+ </Match>
+
+ <Match>
<Bug pattern="ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD"/>
</Match>
@@ -168,6 +233,18 @@
</Match>
<Match>
+ <Bug pattern="THROWS_METHOD_THROWS_CLAUSE_BASIC_EXCEPTION"/>
+ </Match>
+
+ <Match>
+ <Bug pattern="THROWS_METHOD_THROWS_CLAUSE_THROWABLE"/>
+ </Match>
+
+ <Match>
+ <Bug pattern="THROWS_METHOD_THROWS_RUNTIMEEXCEPTION"/>
+ </Match>
+
+ <Match>
<Bug pattern="URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD"/>
</Match>
@@ -183,16 +260,4 @@
<Bug pattern="VA_FORMAT_STRING_USES_NEWLINE"/>
</Match>
- <Match>
- <Bug pattern="THROWS_METHOD_THROWS_CLAUSE_BASIC_EXCEPTION"/>
- </Match>
-
- <Match>
- <Bug pattern="THROWS_METHOD_THROWS_CLAUSE_THROWABLE"/>
- </Match>
-
- <Match>
- <Bug pattern="THROWS_METHOD_THROWS_RUNTIMEEXCEPTION"/>
- </Match>
-
</FindBugsFilter>
diff --git a/demo/demo-filter/filter-client/src/main/java/org/apache/servicecomb/demo/filter/retry/TestRetrySchema.java b/demo/demo-filter/filter-client/src/main/java/org/apache/servicecomb/demo/filter/retry/TestRetrySchema.java
index 108774a..0ee6a7f 100644
--- a/demo/demo-filter/filter-client/src/main/java/org/apache/servicecomb/demo/filter/retry/TestRetrySchema.java
+++ b/demo/demo-filter/filter-client/src/main/java/org/apache/servicecomb/demo/filter/retry/TestRetrySchema.java
@@ -38,7 +38,7 @@
RestTemplate restTemplate = RestTemplateBuilder.create();
- final String server = "servicecomb://filterServer";
+ private static final String SERVER = "servicecomb://filterServer";
@Override
public void testAllTransport() throws Exception {
@@ -55,7 +55,7 @@
}
private void testRetryGovernanceRestTemplate() {
- TestMgr.check(restTemplate.getForObject(server + "/retry/governance/successWhenRetry", boolean.class), true);
- TestMgr.check(restTemplate.getForObject(server + "/retry/governance/successWhenRetry", boolean.class), true);
+ TestMgr.check(restTemplate.getForObject(SERVER + "/retry/governance/successWhenRetry", boolean.class), true);
+ TestMgr.check(restTemplate.getForObject(SERVER + "/retry/governance/successWhenRetry", boolean.class), true);
}
}
diff --git a/demo/demo-jaxrs/jaxrs-client/src/main/java/org/apache/servicecomb/demo/jaxrs/client/beanParam/BeanParamPojoClient.java b/demo/demo-jaxrs/jaxrs-client/src/main/java/org/apache/servicecomb/demo/jaxrs/client/beanParam/BeanParamPojoClient.java
index 9e09bc1..5f34487 100644
--- a/demo/demo-jaxrs/jaxrs-client/src/main/java/org/apache/servicecomb/demo/jaxrs/client/beanParam/BeanParamPojoClient.java
+++ b/demo/demo-jaxrs/jaxrs-client/src/main/java/org/apache/servicecomb/demo/jaxrs/client/beanParam/BeanParamPojoClient.java
@@ -19,6 +19,7 @@
import java.io.BufferedInputStream;
import java.io.ByteArrayInputStream;
+import java.nio.charset.StandardCharsets;
import org.apache.servicecomb.demo.CategorizedTestCase;
import org.apache.servicecomb.demo.TestMgr;
@@ -58,9 +59,9 @@
}
private void testUpload() {
- BufferedInputStream bufferedInputStream0 = new BufferedInputStream(new ByteArrayInputStream("up0".getBytes()));
- BufferedInputStream bufferedInputStream1 = new BufferedInputStream(new ByteArrayInputStream("up1".getBytes()));
- BufferedInputStream bufferedInputStream2 = new BufferedInputStream(new ByteArrayInputStream("up2".getBytes()));
+ BufferedInputStream bufferedInputStream0 = new BufferedInputStream(new ByteArrayInputStream("up0".getBytes(StandardCharsets.UTF_8)));
+ BufferedInputStream bufferedInputStream1 = new BufferedInputStream(new ByteArrayInputStream("up1".getBytes(StandardCharsets.UTF_8)));
+ BufferedInputStream bufferedInputStream2 = new BufferedInputStream(new ByteArrayInputStream("up2".getBytes(StandardCharsets.UTF_8)));
String result = beanParamTestServiceIntf.beanParameterTestUpload(
bufferedInputStream0, "queryTest", bufferedInputStream1, bufferedInputStream2, "ex");
diff --git a/demo/demo-jaxrs/jaxrs-client/src/main/java/org/apache/servicecomb/demo/jaxrs/client/beanParam/BeanParamRestTemplateClient.java b/demo/demo-jaxrs/jaxrs-client/src/main/java/org/apache/servicecomb/demo/jaxrs/client/beanParam/BeanParamRestTemplateClient.java
index 69c5057..33e8d9f 100644
--- a/demo/demo-jaxrs/jaxrs-client/src/main/java/org/apache/servicecomb/demo/jaxrs/client/beanParam/BeanParamRestTemplateClient.java
+++ b/demo/demo-jaxrs/jaxrs-client/src/main/java/org/apache/servicecomb/demo/jaxrs/client/beanParam/BeanParamRestTemplateClient.java
@@ -19,6 +19,7 @@
import java.io.BufferedInputStream;
import java.io.ByteArrayInputStream;
+import java.nio.charset.StandardCharsets;
import java.util.HashMap;
import java.util.Map;
@@ -76,9 +77,9 @@
}
private void testUpload() {
- BufferedInputStream bufferedInputStream0 = new BufferedInputStream(new ByteArrayInputStream("up0".getBytes()));
- BufferedInputStream bufferedInputStream1 = new BufferedInputStream(new ByteArrayInputStream("up1".getBytes()));
- BufferedInputStream bufferedInputStream2 = new BufferedInputStream(new ByteArrayInputStream("up2".getBytes()));
+ BufferedInputStream bufferedInputStream0 = new BufferedInputStream(new ByteArrayInputStream("up0".getBytes(StandardCharsets.UTF_8)));
+ BufferedInputStream bufferedInputStream1 = new BufferedInputStream(new ByteArrayInputStream("up1".getBytes(StandardCharsets.UTF_8)));
+ BufferedInputStream bufferedInputStream2 = new BufferedInputStream(new ByteArrayInputStream("up2".getBytes(StandardCharsets.UTF_8)));
HashMap<String, Object> formData = new HashMap<>();
formData.put("up0", bufferedInputStream0);
diff --git a/demo/demo-jaxrs/jaxrs-server/src/main/java/org/apache/servicecomb/demo/jaxrs/server/CodeFirstJaxrs.java b/demo/demo-jaxrs/jaxrs-server/src/main/java/org/apache/servicecomb/demo/jaxrs/server/CodeFirstJaxrs.java
index 8db5585..3fedafd 100644
--- a/demo/demo-jaxrs/jaxrs-server/src/main/java/org/apache/servicecomb/demo/jaxrs/server/CodeFirstJaxrs.java
+++ b/demo/demo-jaxrs/jaxrs-server/src/main/java/org/apache/servicecomb/demo/jaxrs/server/CodeFirstJaxrs.java
@@ -150,7 +150,7 @@
public String testRawJsonString(String jsonInput) {
Map<String, String> person;
try {
- person = RestObjectMapperFactory.getRestObjectMapper().readValue(jsonInput.getBytes(), Map.class);
+ person = RestObjectMapperFactory.getRestObjectMapper().readValue(jsonInput.getBytes(StandardCharsets.UTF_8), Map.class);
} catch (Exception e) {
e.printStackTrace();
return null;
@@ -187,11 +187,11 @@
@DELETE
@Produces(MediaType.TEXT_PLAIN)
public String addString(@QueryParam("s") List<String> s) {
- String result = "";
+ StringBuilder result = new StringBuilder();
for (String x : s) {
- result += x;
+ result.append(x);
}
- return result;
+ return result.toString();
}
@Path("/ignore")
@@ -209,7 +209,7 @@
public String testRawJsonAnnotation(@RawJsonRequestBody String jsonInput) {
Map<String, String> person;
try {
- person = RestObjectMapperFactory.getRestObjectMapper().readValue(jsonInput.getBytes(), Map.class);
+ person = RestObjectMapperFactory.getRestObjectMapper().readValue(jsonInput.getBytes(StandardCharsets.UTF_8), Map.class);
} catch (Exception e) {
e.printStackTrace();
return null;
diff --git a/demo/demo-jaxrs/jaxrs-server/src/main/java/org/apache/servicecomb/demo/jaxrs/server/ComputeImpl.java b/demo/demo-jaxrs/jaxrs-server/src/main/java/org/apache/servicecomb/demo/jaxrs/server/ComputeImpl.java
index 9797901..af5a277 100644
--- a/demo/demo-jaxrs/jaxrs-server/src/main/java/org/apache/servicecomb/demo/jaxrs/server/ComputeImpl.java
+++ b/demo/demo-jaxrs/jaxrs-server/src/main/java/org/apache/servicecomb/demo/jaxrs/server/ComputeImpl.java
@@ -17,6 +17,7 @@
package org.apache.servicecomb.demo.jaxrs.server;
+import java.nio.charset.StandardCharsets;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
@@ -73,7 +74,7 @@
public String testRawJsonString(String jsonInput) {
Map<String, String> person;
try {
- person = RestObjectMapperFactory.getRestObjectMapper().readValue(jsonInput.getBytes(), Map.class);
+ person = RestObjectMapperFactory.getRestObjectMapper().readValue(jsonInput.getBytes(StandardCharsets.UTF_8), Map.class);
} catch (Exception e) {
e.printStackTrace();
return null;
@@ -116,10 +117,10 @@
@DELETE
@Produces(MediaType.TEXT_PLAIN)
public String addString(@QueryParam("s") String[] s) {
- String result = "";
+ StringBuilder result = new StringBuilder();
for (String x : s) {
- result += x;
+ result.append(x);
}
- return result;
+ return result.toString();
}
}
diff --git a/demo/demo-local-registry/demo-local-registry-client/src/main/java/org/apache/servicecomb/demo/localRegistryClient/LocalRegistryServerTest.java b/demo/demo-local-registry/demo-local-registry-client/src/main/java/org/apache/servicecomb/demo/localRegistryClient/LocalRegistryServerTest.java
index 71886be..c50508c 100644
--- a/demo/demo-local-registry/demo-local-registry-client/src/main/java/org/apache/servicecomb/demo/localRegistryClient/LocalRegistryServerTest.java
+++ b/demo/demo-local-registry/demo-local-registry-client/src/main/java/org/apache/servicecomb/demo/localRegistryClient/LocalRegistryServerTest.java
@@ -39,8 +39,6 @@
@RpcReference(microserviceName = "demo-local-registry-server-bean2", schemaId = "CodeFirstEndpoint2")
private CodeFirstService codeFirstServiceBean2;
- RestTemplate template = RestTemplateBuilder.create();
-
@Override
public void testRestTransport() throws Exception {
testServerGetName();
diff --git a/demo/demo-pojo/pojo-client/src/main/java/org/apache/servicecomb/demo/pojo/client/TestNotRecommendedService.java b/demo/demo-pojo/pojo-client/src/main/java/org/apache/servicecomb/demo/pojo/client/TestNotRecommendedService.java
index b1771fa..59d9a8f 100644
--- a/demo/demo-pojo/pojo-client/src/main/java/org/apache/servicecomb/demo/pojo/client/TestNotRecommendedService.java
+++ b/demo/demo-pojo/pojo-client/src/main/java/org/apache/servicecomb/demo/pojo/client/TestNotRecommendedService.java
@@ -53,9 +53,10 @@
data.put(100L, model);
List<AbstractModel> data2 = new ArrayList<>();
+
AbstractModel model2 = new DefaultAbstractModel();
model2.setName("hello");
- data2.add(model);
+ data2.add(model2);
WrappedAbstractModel input = new WrappedAbstractModel();
input.setMapModel(data);
diff --git a/demo/demo-pojo/pojo-server/src/main/java/org/apache/servicecomb/demo/pojo/server/CodeFirstPojo.java b/demo/demo-pojo/pojo-server/src/main/java/org/apache/servicecomb/demo/pojo/server/CodeFirstPojo.java
index 0beb9e6..df1111f 100644
--- a/demo/demo-pojo/pojo-server/src/main/java/org/apache/servicecomb/demo/pojo/server/CodeFirstPojo.java
+++ b/demo/demo-pojo/pojo-server/src/main/java/org/apache/servicecomb/demo/pojo/server/CodeFirstPojo.java
@@ -140,10 +140,10 @@
}
public String addString(List<String> s) {
- String result = "";
+ StringBuilder result = new StringBuilder();
for (String x : s) {
- result += x;
+ result.append(x);
}
- return result;
+ return result.toString();
}
}
diff --git a/demo/demo-springmvc/springmvc-client/src/main/java/org/apache/servicecomb/demo/springmvc/client/TestRetrySchema.java b/demo/demo-springmvc/springmvc-client/src/main/java/org/apache/servicecomb/demo/springmvc/client/TestRetrySchema.java
index e103d70..f6a597a 100644
--- a/demo/demo-springmvc/springmvc-client/src/main/java/org/apache/servicecomb/demo/springmvc/client/TestRetrySchema.java
+++ b/demo/demo-springmvc/springmvc-client/src/main/java/org/apache/servicecomb/demo/springmvc/client/TestRetrySchema.java
@@ -38,7 +38,7 @@
RestTemplate restTemplate = RestTemplateBuilder.create();
- final String server = "servicecomb://springmvc";
+ private static final String SERVER = "servicecomb://springmvc";
@Override
public void testAllTransport() throws Exception {
@@ -55,7 +55,7 @@
}
private void testRetryGovernanceRestTemplate() {
- TestMgr.check(restTemplate.getForObject(server + "/retry/governance/successWhenRetry", boolean.class), true);
- TestMgr.check(restTemplate.getForObject(server + "/retry/governance/successWhenRetry", boolean.class), true);
+ TestMgr.check(restTemplate.getForObject(SERVER + "/retry/governance/successWhenRetry", boolean.class), true);
+ TestMgr.check(restTemplate.getForObject(SERVER + "/retry/governance/successWhenRetry", boolean.class), true);
}
}
diff --git a/demo/demo-springmvc/springmvc-server/src/main/java/org/apache/servicecomb/demo/springmvc/server/CodeFirstSpringmvc.java b/demo/demo-springmvc/springmvc-server/src/main/java/org/apache/servicecomb/demo/springmvc/server/CodeFirstSpringmvc.java
index 072ff0d..27b8091 100644
--- a/demo/demo-springmvc/springmvc-server/src/main/java/org/apache/servicecomb/demo/springmvc/server/CodeFirstSpringmvc.java
+++ b/demo/demo-springmvc/springmvc-server/src/main/java/org/apache/servicecomb/demo/springmvc/server/CodeFirstSpringmvc.java
@@ -240,7 +240,7 @@
public String testRawJsonString(String jsonInput) {
Map<String, String> person;
try {
- person = RestObjectMapperFactory.getRestObjectMapper().readValue(jsonInput.getBytes(), Map.class);
+ person = RestObjectMapperFactory.getRestObjectMapper().readValue(jsonInput.getBytes(StandardCharsets.UTF_8), Map.class);
} catch (Exception e) {
e.printStackTrace();
return null;
@@ -283,11 +283,11 @@
@DeleteMapping(path = "/addstring", produces = MediaType.TEXT_PLAIN_VALUE)
public String addString(@RequestParam(name = "s") List<String> s) {
- String result = "";
+ StringBuilder result = new StringBuilder();
for (String x : s) {
- result += x;
+ result.append(x);
}
- return result;
+ return result.toString();
}
// Using 490, 590 error code, the response type should be CommonExceptionData. Or we need
@@ -360,7 +360,7 @@
public String testRawJsonAnnotation(@RawJsonRequestBody String jsonInput) {
Map<String, String> person;
try {
- person = RestObjectMapperFactory.getRestObjectMapper().readValue(jsonInput.getBytes(), Map.class);
+ person = RestObjectMapperFactory.getRestObjectMapper().readValue(jsonInput.getBytes(StandardCharsets.UTF_8), Map.class);
} catch (Exception e) {
e.printStackTrace();
return null;
diff --git a/integration-tests/it-common/src/main/java/org/apache/servicecomb/it/CommandReceiver.java b/integration-tests/it-common/src/main/java/org/apache/servicecomb/it/CommandReceiver.java
index b145ba6..ac6b984 100644
--- a/integration-tests/it-common/src/main/java/org/apache/servicecomb/it/CommandReceiver.java
+++ b/integration-tests/it-common/src/main/java/org/apache/servicecomb/it/CommandReceiver.java
@@ -19,6 +19,7 @@
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
+import java.nio.charset.StandardCharsets;
import java.util.concurrent.TimeUnit;
import org.apache.servicecomb.core.SCBEngine;
@@ -49,7 +50,7 @@
}
private void doRun() throws IOException {
- BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
+ BufferedReader reader = new BufferedReader(new InputStreamReader(System.in, StandardCharsets.UTF_8));
String line;
while ((line = reader.readLine()) != null) {
try {
diff --git a/integration-tests/it-consumer/src/main/java/org/apache/servicecomb/it/deploy/NormalDeploy.java b/integration-tests/it-consumer/src/main/java/org/apache/servicecomb/it/deploy/NormalDeploy.java
index ec2b467..9986a03 100644
--- a/integration-tests/it-consumer/src/main/java/org/apache/servicecomb/it/deploy/NormalDeploy.java
+++ b/integration-tests/it-consumer/src/main/java/org/apache/servicecomb/it/deploy/NormalDeploy.java
@@ -21,6 +21,7 @@
import java.io.File;
import java.io.IOException;
import java.io.OutputStreamWriter;
+import java.nio.charset.StandardCharsets;
import java.util.Collections;
import java.util.List;
@@ -55,7 +56,7 @@
this.prevFailCount = ITJUnitUtils.getFailures().size();
LOGGER.info("createProcessBuilder: " + StringUtils.join(cmds, " ") + "\nWorkDir: " + deployDefinition.getWorkDir());
subProcess = createProcessBuilder(cmds).start();
- subProcessCommandWriter = new BufferedWriter(new OutputStreamWriter(subProcess.getOutputStream()));
+ subProcessCommandWriter = new BufferedWriter(new OutputStreamWriter(subProcess.getOutputStream(), StandardCharsets.UTF_8));
subProcessLogger = new SubProcessLogger(deployDefinition.getDisplayName(), subProcess.getInputStream(),
deployDefinition.getStartCompleteLog());
}
diff --git a/integration-tests/it-consumer/src/main/java/org/apache/servicecomb/it/deploy/SubProcessLogger.java b/integration-tests/it-consumer/src/main/java/org/apache/servicecomb/it/deploy/SubProcessLogger.java
index 420a6ad..577fc3c 100644
--- a/integration-tests/it-consumer/src/main/java/org/apache/servicecomb/it/deploy/SubProcessLogger.java
+++ b/integration-tests/it-consumer/src/main/java/org/apache/servicecomb/it/deploy/SubProcessLogger.java
@@ -22,6 +22,7 @@
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
+import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.TimeUnit;
@@ -50,7 +51,7 @@
this.startCompleteLog = startCompleteLog;
BufferedInputStream bufferedInputStream = new BufferedInputStream(inputStream);
- this.reader = new BufferedReader(new InputStreamReader(bufferedInputStream));
+ this.reader = new BufferedReader(new InputStreamReader(bufferedInputStream, StandardCharsets.UTF_8));
thread = new Thread(this::run, "SubProcessLogger-" + displayName);
thread.start();
diff --git a/integration-tests/it-consumer/src/main/java/org/apache/servicecomb/it/testcase/TestDownload.java b/integration-tests/it-consumer/src/main/java/org/apache/servicecomb/it/testcase/TestDownload.java
index 3113607..1662149 100644
--- a/integration-tests/it-consumer/src/main/java/org/apache/servicecomb/it/testcase/TestDownload.java
+++ b/integration-tests/it-consumer/src/main/java/org/apache/servicecomb/it/testcase/TestDownload.java
@@ -42,12 +42,12 @@
import com.google.common.collect.Iterables;
public class TestDownload {
- private File dir = new File("target/download");
+ private final File dir = new File("target/download");
- private static Consumers<DownloadSchemaIntf> consumers = new Consumers<>("download",
+ private static final Consumers<DownloadSchemaIntf> CONSUMERS = new Consumers<>("download",
DownloadSchemaIntf.class);
- private List<CompletableFuture<?>> futures = new ArrayList<>();
+ private final List<CompletableFuture<?>> futures = new ArrayList<>();
private final String content = "file content";
@@ -86,7 +86,7 @@
value = readFileToString(file);
file.delete();
} else if (byte[].class.isInstance(value)) {
- value = new String((byte[]) value);
+ value = new String((byte[]) value, StandardCharsets.UTF_8);
}
Assertions.assertEquals(content, value, getStackTrace(error));
@@ -96,7 +96,7 @@
}
private ReadStreamPart templateGet(String methodPath) {
- return consumers.getSCBRestTemplate()
+ return CONSUMERS.getSCBRestTemplate()
.getForObject("/" + methodPath + "?content={content}",
ReadStreamPart.class,
content);
@@ -106,7 +106,7 @@
HttpHeaders headers = new HttpHeaders();
headers.add("accept", type);
HttpEntity<?> entity = new HttpEntity<>(headers);
- ResponseEntity<ReadStreamPart> response = consumers.getSCBRestTemplate()
+ ResponseEntity<ReadStreamPart> response = CONSUMERS.getSCBRestTemplate()
.exchange("/" + methodPath + "?content={content}",
HttpMethod.GET,
entity,
@@ -117,23 +117,23 @@
@Test
@SuppressWarnings("unchecked")
public void runRest() {
- futures.add(checkFile(consumers.getIntf().tempFileEntity(content)));
+ futures.add(checkFile(CONSUMERS.getIntf().tempFileEntity(content)));
futures.add(checkFuture(templateGet("tempFileEntity").saveAsBytes()));
futures.add(checkFuture(templateExchange("tempFileEntity", MediaType.TEXT_PLAIN_VALUE).saveAsBytes()));
futures.add(checkFuture(templateExchange("tempFileEntity", MediaType.APPLICATION_JSON_VALUE).saveAsBytes()));
- futures.add(checkFile(consumers.getIntf().tempFilePart(content)));
+ futures.add(checkFile(CONSUMERS.getIntf().tempFilePart(content)));
futures.add(checkFuture(templateGet("tempFilePart").saveAsString()));
futures.add(checkFuture(templateExchange("tempFilePart", MediaType.TEXT_PLAIN_VALUE).saveAsString()));
futures.add(checkFuture(templateExchange("tempFilePart", MediaType.APPLICATION_JSON_VALUE).saveAsString()));
- futures.add(checkFile(consumers.getIntf().file(content)));
+ futures.add(checkFile(CONSUMERS.getIntf().file(content)));
futures.add(checkFuture(templateGet("file").saveAsString()));
futures.add(checkFuture(templateExchange("file", MediaType.TEXT_PLAIN_VALUE).saveAsString()));
futures.add(checkFuture(templateExchange("file", MediaType.APPLICATION_JSON_VALUE).saveAsString()));
{
- ReadStreamPart part = consumers.getIntf().chineseAndSpaceFile(content);
+ ReadStreamPart part = CONSUMERS.getIntf().chineseAndSpaceFile(content);
Assertions.assertEquals("测 试.test.txt", part.getSubmittedFileName());
futures.add(checkFile(part));
@@ -150,27 +150,27 @@
futures.add(checkFuture(part3.saveAsString()));
}
- futures.add(checkFile(consumers.getIntf().resource(content)));
+ futures.add(checkFile(CONSUMERS.getIntf().resource(content)));
futures.add(checkFuture(templateGet("resource").saveAsString()));
futures.add(checkFuture(templateExchange("resource", MediaType.TEXT_PLAIN_VALUE).saveAsString()));
futures.add(checkFuture(templateExchange("resource", MediaType.APPLICATION_JSON_VALUE).saveAsString()));
- futures.add(checkFile(consumers.getIntf().entityResource(content)));
+ futures.add(checkFile(CONSUMERS.getIntf().entityResource(content)));
futures.add(checkFuture(templateGet("entityResource").saveAsString()));
futures.add(checkFuture(templateExchange("entityResource", MediaType.TEXT_PLAIN_VALUE).saveAsString()));
futures.add(checkFuture(templateExchange("entityResource", MediaType.APPLICATION_JSON_VALUE).saveAsString()));
- futures.add(checkFile(consumers.getIntf().entityInputStream(content)));
+ futures.add(checkFile(CONSUMERS.getIntf().entityInputStream(content)));
futures.add(checkFuture(templateGet("entityInputStream").saveAsString()));
futures.add(checkFuture(templateExchange("entityInputStream", MediaType.TEXT_PLAIN_VALUE).saveAsString()));
futures.add(checkFuture(templateExchange("entityInputStream", MediaType.APPLICATION_JSON_VALUE).saveAsString()));
- futures.add(checkFile(consumers.getIntf().bytes(content)));
+ futures.add(checkFile(CONSUMERS.getIntf().bytes(content)));
futures.add(checkFuture(templateGet("bytes").saveAsString()));
futures.add(checkFuture(templateExchange("bytes", MediaType.TEXT_PLAIN_VALUE).saveAsString()));
futures.add(checkFuture(templateExchange("bytes", MediaType.APPLICATION_JSON_VALUE).saveAsString()));
- futures.add(checkFile(consumers.getIntf().netInputStream(content)));
+ futures.add(checkFile(CONSUMERS.getIntf().netInputStream(content)));
futures.add(checkFuture(templateGet("netInputStream").saveAsString()));
futures.add(checkFuture(templateExchange("netInputStream", MediaType.TEXT_PLAIN_VALUE).saveAsString()));
futures.add(checkFuture(templateExchange("netInputStream", MediaType.APPLICATION_JSON_VALUE).saveAsString()));
diff --git a/integration-tests/it-producer/src/main/java/org/apache/servicecomb/it/schema/DownloadSchema.java b/integration-tests/it-producer/src/main/java/org/apache/servicecomb/it/schema/DownloadSchema.java
index ad274bb..dbbaa44 100644
--- a/integration-tests/it-producer/src/main/java/org/apache/servicecomb/it/schema/DownloadSchema.java
+++ b/integration-tests/it-producer/src/main/java/org/apache/servicecomb/it/schema/DownloadSchema.java
@@ -216,8 +216,8 @@
slowInputStreamThread = new Thread(() -> {
Thread.currentThread().setName("download thread");
- byte[] bytes = "1".getBytes();
- for (; ; ) {
+ byte[] bytes = "1".getBytes(StandardCharsets.UTF_8);
+ while (true) {
try {
out.write(bytes);
out.flush();