Issue 1:
I have searched the issues of this repository and believe that this is not a duplicate.

I have checked the FAQ of this repository and believe that this is not a duplicate.

Environment

Dubbo version: 2.7.3-SNAPSHOT

Operating System version: macOs

Java version: JDK 1.8

Steps to reproduce this issue

Assume Demo interface have sayHello and sayHi method.

<dubbo:reference id="demoService" interface="com.ctrip.Demo" timeout="1000">
<dubbo:method name="sayHello">
<dubbo:parameter key="timeout" value="800"/>
</dubbo:method>
</dubbo:reference>

Make a sync call to sayHello, the timeout is 800 but not 1000. We have not get method timeout from the url.

asyncResult.get(getUrl().getParameter(TIMEOUT_KEY, DEFAULT_TIMEOUT), TimeUnit.MILLISECONDS);

Pls. provide [GitHub address] to reproduce this issue.

Expected Result

The timeout should be 1000 for sayHello.

Actual Result

The timeout is 800 for sayHello.

If there is an exception, please attach the exception trace:

Just put your stack trace here!

Issue 2:
[√] I have searched the issues of this repository and believe that this is not a duplicate.

[√] I have checked the FAQ of this repository and believe that this is not a duplicate.

Environment

Dubbo version: 2.5.7

Operating System version: win10

Java version: 1.8

Step to reproduce this issue

有A、B两个服务，相互依赖时会造成事务失效，简要代码如下：

AServiceImpl

@Service(interfaceClass=IAService.class,group="test",version="1.0.0")
@Transactional
public class AServiceImpl implements IAService {
@Autowired
private ITestService testService;

@Autowired
private IBService bService;
@Override
public void test(String string) {
TestEntity testEntity = new TestEntity();
testEntity.setTest("A-"+string);
testEntity = testService.save(testEntity);
if(!Objects.isNull(testEntity.getId())){
throw new RuntimeException("AService test....a...");
}
}
}

BServiceImpl

@Service(interfaceClass=IBService.class,group="test",version="1.0.0")
@Transactional
public class BServiceImpl implements IBService {
@Autowired
private ITestService testService;

@Autowired
private IAService aService;//相互引用，但实际并未使用
@Override
public void test(String string) {
TestEntity testEntity = new TestEntity();
testEntity.setTest("B-"+string);
testEntity = testService.save(testEntity);
if(!Objects.isNull(testEntity.getId())){
throw new RuntimeException("BService test...b....");
}
}
}

test

@RunWith(SpringRunner.class)
@SpringBootTest
public class SpringbootDubboDemoApplicationTests {

@Autowired
private ITestService testService;

@Reference(group = "test", version = "1.0.0")
private IAService iaService;
@Reference(group = "test", version = "1.0.0")
private IBService ibService;

@Test
public void testDubbo(){
System.out.println("start......");
try {
iaService.test("aaaa");
}catch (Exception e){
e.printStackTrace();
}
try {
ibService.test("bbbbb");
}catch (Exception e){
e.printStackTrace();
}
}
}

Expected Result

正常执行过后，事务应该回滚，数据库中没有保存数据

Actual Result

实际结果，a服务执行，数据库中存在记录

A-aaaa 被插入数据库

当注释掉A/B的循环依赖时，结果正常，数据库中没有数据

详细代码见：https://github.com/softxiang/springboot-dubbo-demo

另有一个问题如下：

@service(interfaceClass=IAService.class,group="test",version="1.0.0")

@transactional

public class AServiceImpl implements IAService

此种情况定义了一个dubbo service，是否还需要spring扫描这个service 看代码情况是不需要spring再做相应操作，但看网上很多文章包括issues中依然有人提类似问题 #2093

一个服务既是dubbo服务又是本地服务时，是否只需要注册为dubbo的service即可？

@Autowired

private IBService bService;

是否会自动区分本地service调用 还是dubbo service?