[
https://issues.apache.org/jira/browse/SCB-653?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16507624#comment-16507624
]
ASF GitHub Bot commented on SCB-653:
------------------------------------
liubao68 closed pull request #759: [SCB-653]Transfer-Encoding and
Content-Length can not be set to response
URL: https://github.com/apache/incubator-servicecomb-java-chassis/pull/759
This is a PR merged from a forked repository.
As GitHub hides the original diff on merge, it is displayed below for
the sake of provenance:
As this is a foreign pull request (from a fork), the diff is supplied
below (as it won't show otherwise due to GitHub magic):
diff --git
a/common/common-rest/src/main/java/org/apache/servicecomb/common/rest/AbstractRestInvocation.java
b/common/common-rest/src/main/java/org/apache/servicecomb/common/rest/AbstractRestInvocation.java
index 9a3769b88..81e6fc925 100644
---
a/common/common-rest/src/main/java/org/apache/servicecomb/common/rest/AbstractRestInvocation.java
+++
b/common/common-rest/src/main/java/org/apache/servicecomb/common/rest/AbstractRestInvocation.java
@@ -205,7 +205,8 @@ protected void sendResponse(Response response) {
if (response.getHeaders().getHeaderMap() != null) {
for (Entry<String, List<Object>> entry :
response.getHeaders().getHeaderMap().entrySet()) {
for (Object value : entry.getValue()) {
- if (!entry.getKey().equalsIgnoreCase(HttpHeaders.CONTENT_LENGTH)) {
+ if (!entry.getKey().equalsIgnoreCase(HttpHeaders.CONTENT_LENGTH)
+ && !entry.getKey().equalsIgnoreCase("Transfer-Encoding")) {
responseEx.addHeader(entry.getKey(), String.valueOf(value));
}
}
diff --git
a/demo/demo-jaxrs/jaxrs-client/src/main/java/org/apache/servicecomb/demo/jaxrs/client/JaxrsClient.java
b/demo/demo-jaxrs/jaxrs-client/src/main/java/org/apache/servicecomb/demo/jaxrs/client/JaxrsClient.java
index 57eda6831..1ecf7f554 100644
---
a/demo/demo-jaxrs/jaxrs-client/src/main/java/org/apache/servicecomb/demo/jaxrs/client/JaxrsClient.java
+++
b/demo/demo-jaxrs/jaxrs-client/src/main/java/org/apache/servicecomb/demo/jaxrs/client/JaxrsClient.java
@@ -183,9 +183,12 @@ private static void testValidatorAddFail(RestTemplate
template, String cseUrlPre
isExcep = true;
TestMgr.check(400, e.getStatus().getStatusCode());
TestMgr.check(Status.BAD_REQUEST, e.getReasonPhrase());
+ // Message dependends on locale, so just check the short part.
+ // 'must be greater than or equal to 20', propertyPath=add.arg1,
rootBeanClass=class org.apache.servicecomb.demo.jaxrs.server.Validator,
messageTemplate='{javax.validation.constraints.Min.message}'}]]
+ // ignored
TestMgr.check(
- "CommonExceptionData
[message=[ConstraintViolationImpl{interpolatedMessage='must be greater than or
equal to 20', propertyPath=add.arg1, rootBeanClass=class
org.apache.servicecomb.demo.jaxrs.server.Validator,
messageTemplate='{javax.validation.constraints.Min.message}'}]]",
- e.getErrorData());
+ "CommonExceptionData
[message=[ConstraintViolationImpl{interpolatedMessage=",
+ e.getErrorData().toString().substring(0, "CommonExceptionData
[message=[ConstraintViolationImpl{interpolatedMessage=".length()));
}
TestMgr.check(true, isExcep);
@@ -207,9 +210,10 @@ private static void testValidatorSayHiFail(RestTemplate
template, String cseUrlP
isExcep = true;
TestMgr.check(400, e.getStatus().getStatusCode());
TestMgr.check(Status.BAD_REQUEST, e.getReasonPhrase());
+ // Message dependends on locale, so just check the short part.
TestMgr.check(
- "CommonExceptionData
[message=[ConstraintViolationImpl{interpolatedMessage='length must be between 3
and 2147483647', propertyPath=sayHi.arg0, rootBeanClass=class
org.apache.servicecomb.demo.jaxrs.server.Validator,
messageTemplate='{org.hibernate.validator.constraints.Length.message}'}]]",
- e.getErrorData());
+ "CommonExceptionData
[message=[ConstraintViolationImpl{interpolatedMessage=",
+ e.getErrorData().toString().substring(0, "CommonExceptionData
[message=[ConstraintViolationImpl{interpolatedMessage=".length()));
}
TestMgr.check(true, isExcep);
}
@@ -238,9 +242,10 @@ private static void testValidatorExchangeFail(RestTemplate
template, String cseU
isExcep = true;
TestMgr.check(400, e.getStatus().getStatusCode());
TestMgr.check(Status.BAD_REQUEST, e.getReasonPhrase());
+ // Message dependends on locale, so just check the short part.
TestMgr.check(
- "CommonExceptionData
[message=[ConstraintViolationImpl{interpolatedMessage='must be less than or
equal to 20', propertyPath=sayHello.arg0.age, rootBeanClass=class
org.apache.servicecomb.demo.jaxrs.server.Validator,
messageTemplate='{javax.validation.constraints.Max.message}'}]]",
- e.getErrorData());
+ "CommonExceptionData
[message=[ConstraintViolationImpl{interpolatedMessage=",
+ e.getErrorData().toString().substring(0, "CommonExceptionData
[message=[ConstraintViolationImpl{interpolatedMessage=".length()));
}
TestMgr.check(true, isExcep);
}
diff --git a/demo/demo-jaxrs/jaxrs-client/src/main/resources/microservice.yaml
b/demo/demo-jaxrs/jaxrs-client/src/main/resources/microservice.yaml
index 35049a834..1559f5358 100644
--- a/demo/demo-jaxrs/jaxrs-client/src/main/resources/microservice.yaml
+++ b/demo/demo-jaxrs/jaxrs-client/src/main/resources/microservice.yaml
@@ -32,14 +32,14 @@ servicecomb:
name: mycustomrule
retryEnabled: true
retryHandler: mycustomhandler
-cse:
+
request:
- timeout: 5000
+ timeout: 30000
jaxrs:
- timeout: 1000
+ timeout: 30000
clientreqtimeout:
- timeout: 150
+ timeout: 30000
sayHello:
- timeout: 100
+ timeout: 30000
add:
- timeout: 100
+ timeout: 1000
\ No newline at end of file
diff --git
a/demo/demo-jaxrs/jaxrs-server/src/main/java/org/apache/servicecomb/demo/jaxrs/server/RequestClientTimeOut.java
b/demo/demo-jaxrs/jaxrs-server/src/main/java/org/apache/servicecomb/demo/jaxrs/server/RequestClientTimeOut.java
index 83ec4c421..387165123 100644
---
a/demo/demo-jaxrs/jaxrs-server/src/main/java/org/apache/servicecomb/demo/jaxrs/server/RequestClientTimeOut.java
+++
b/demo/demo-jaxrs/jaxrs-server/src/main/java/org/apache/servicecomb/demo/jaxrs/server/RequestClientTimeOut.java
@@ -35,7 +35,7 @@
@Path("/add")
@POST
public int add(@FormParam("a") int a, @FormParam("b") int b) throws
InterruptedException {
- Thread.sleep(1000);
+ Thread.sleep(2000);
return a + b;
}
diff --git
a/handlers/handler-loadbalance/src/test/java/org/apache/servicecomb/loadbalance/TestLoadbalanceHandler.java
b/handlers/handler-loadbalance/src/test/java/org/apache/servicecomb/loadbalance/TestLoadbalanceHandler.java
index 02061e8e3..9713069c3 100644
---
a/handlers/handler-loadbalance/src/test/java/org/apache/servicecomb/loadbalance/TestLoadbalanceHandler.java
+++
b/handlers/handler-loadbalance/src/test/java/org/apache/servicecomb/loadbalance/TestLoadbalanceHandler.java
@@ -48,10 +48,8 @@
import org.apache.servicecomb.swagger.invocation.Response;
import org.hamcrest.Matchers;
import org.junit.After;
-import org.junit.AfterClass;
import org.junit.Assert;
import org.junit.Before;
-import org.junit.BeforeClass;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.ExpectedException;
@@ -105,13 +103,8 @@
@Rule
public ExpectedException expectedException = ExpectedException.none();
- @AfterClass
- public static void classTeardown() {
- ArchaiusUtils.resetConfig();
- }
-
- @BeforeClass
- public static void beforeCls() {
+ @Before
+ public void setUp() {
ConfigUtil.installDynamicConfig();
AbstractConfiguration configuration =
(AbstractConfiguration)
DynamicPropertyFactory.getBackingConfigurationSource();
@@ -122,10 +115,7 @@ public static void beforeCls() {
configuration.addProperty("cse.loadbalance.serverListFilters", "a");
configuration.addProperty("cse.loadbalance.serverListFilter.a.className",
"org.apache.servicecomb.loadbalance.MyServerListFilterExt");
- }
- @Before
- public void setUp() {
new MockUp<Invocation>(invocation) {
@Mock
String getMicroserviceName() {
@@ -177,6 +167,7 @@ InstanceCacheManager getInstanceCacheManager() {
public void teardown() {
CseContext.getInstance().setTransportManager(null);
RegistryUtils.setServiceRegistry(null);
+ ArchaiusUtils.resetConfig();
}
@Test
@@ -287,12 +278,7 @@ String getFlowsplitFilterPolicy(String microservice) {
@Test
public void setTransactionControlFilter_InvalidPolicy() {
- new MockUp<Configuration>(Configuration.INSTANCE) {
- @Mock
- String getFlowsplitFilterPolicy(String microservice) {
- return "InvalidPolicy";
- }
- };
+ ArchaiusUtils.setProperty("cse.loadbalance.ms.transactionControl.policy",
"InvalidPolicy");
expectedException.expect(Error.class);
expectedException.expectMessage(Matchers.is("Fail to create instance of
class: InvalidPolicy"));
@@ -332,6 +318,8 @@ String getFlowsplitFilterPolicy(String microservice) {
@Test
public void getOrCreateLoadBalancer() throws Exception {
+ LoadbalanceHandler handler = new LoadbalanceHandler();
+
MicroserviceInstance instance = new MicroserviceInstance();
instance.setInstanceId("id");
instance.getEndpoints().add("rest://localhost:8080");
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]
> When provider returns Transfer-Encoding header and Edge will cause problem
> --------------------------------------------------------------------------
>
> Key: SCB-653
> URL: https://issues.apache.org/jira/browse/SCB-653
> Project: Apache ServiceComb
> Issue Type: Bug
> Reporter: liubao
> Assignee: liubao
> Priority: Major
>
> When provider return Transfer-Encoding, Edge will copy this header to it's
> response, and edge will add Content-Length based on it's on strategy.
> Content-Length & Transfer-Encoding: trunked is conflict features of HTTP.
>
> We need to ignore HTTP internal headers of client response when sending it.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)