I think Spring changed getForObject to return a value regardless the error code(http status) is correct because RestTemplate do not have enough information to guess the provider which code is successful, e.g. 201, 400, 500 or other. And when developers want to express 400 for error, they should use getForEntity.
For ServiceComb customized RestTemplate implementation this problem not exists. Because we have API definition to explicitly show which error code is successful, either use swagger or @ApiResponse . This is a compatible issue of spring, I think we can upgrade this version following spring conventions. ------------------ ???????? ------------------ ??????: "??????"<yangyong.zh...@qq.com>; ????????: 2018??4??24??(??????) ????4:01 ??????: "dev"<dev@servicecomb.apache.org>; ????: [Discussion][Spring & Spring Boot version upgrade]Behavior of Consumer using RestTemplate had changed Hi everyone: The version of Spring & Spring Boot in ServiceComb java chassis are 4.3.5.RELEASE and 1.4.5.RELEASE, seems a little behind, we may upgrade them. Spring Boot and Spring Version correlation : Spring Boot Version Spring Version 1.5.8.RELEASE 4.3.12.RELEASE 1.5.9.RELEASE 4.3.13.RELEASE 1.5.10.RELEASE 4.3.14.RELEASE 1.5.11.RELEASE 4.3.15.RELEASE 1.5.12.RELEASE 4.3.16.RELEASE I found if consumer use the RestTemplate make a invocation to our producer and producer throw an unhande exception, http code with 590 [Cse Internal Server Error] will be return to consumer side, but the Behavior of RestTemplate getForObject or postForObject in different version of Spring is also not the same, for example: ```java String result = restTemplate.getForObject("http://127.0.0.1:8080/springmvc/controller/sayhi?name=throwexception",String.class); ``` * In 4.3.12.RELEASE still throw UnknownHttpStatusCodeException, same as current (4.3.5.RELEASE) ; * In 4.3.13.RELEASE and 4.3.14.RELEASE change to throw org.springframework.web.client.ResourceAccessException ; * In 4.3.15.RELEASE and 4.3.16.RELEASE won't throw any Exception and direct return {"message":"Cse Internal Server Error"} . So if we update the Spring version to 4.3.12.RELEASE above,user may get into trouble when upgrade 1.0.0-m2, but 4.3.16.RELEASE had fix some bugs and may better in security. Any other ideas or suggestions are welcome ! Yangyong Zheng Best Regards ! consumer code is here : https://github.com/apache/incubator-servicecomb-java-chassis/blob/master/integration-tests/springmvc-tests/src/test/java/org/apache/servicecomb/demo/springmvc/tests/SpringMvcIntegrationTestBase.java in ensureServerBlowsUp Funcation Example producer will throw RuntimeException,code is here : https://github.com/apache/incubator-servicecomb-java-chassis/blob/master/integration-tests/springmvc-tests/src/test/java/org/apache/servicecomb/demo/springmvc/tests/endpoints/ControllerBase.java