Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

transform 类的时候, 个别方法 , 没有ReturnEvent #441

Open
tangtangsara opened this issue Sep 16, 2023 · 2 comments
Open

transform 类的时候, 个别方法 , 没有ReturnEvent #441

tangtangsara opened this issue Sep 16, 2023 · 2 comments
Assignees
Labels

Comments

@tangtangsara
Copy link

Event Listner 定义
String classAnno = "org.springframework.web.bind.annotation.RestController";
String behaviorAnno = "org.springframework.web.bind.annotation.RequestMapping";
EventWatcher eventWatcher = new EventWatchBuilder(moduleEventWatcher)
.onAnyClass()
.hasAnnotationTypes(classAnno)
.onAnyBehavior()
.hasAnnotationTypes(behaviorAnno)

            .onAnyClass()
            .hasAnnotationTypes("org.springframework.stereotype.Service")
            .hasAnnotationTypes("org.springframework.stereotype.Component")
            .hasAnnotationTypes("org.springframework.stereotype.Repository")
            .hasAnnotationTypes("org.springframework.stereotype.Controller")
            .onAnyBehavior()
            .withAccess(AccessFlags.ACF_PUBLIC)
            .onWatch(eventListener, BEFORE, RETURN, THROWS);

其中一个方法 getMasterNewsInfo , 只有before 和 throw, 没有 return .
只有这一个方法有问题, 其余方法加强都正常

加强后的class 信息, 见附件
c.txt

@tangtangsara
Copy link
Author

tangtangsara commented Sep 16, 2023

        @Override
        protected void onMethodExit(final int opcode) {

            if (!isThrow(opcode) && !getCodeLock().isLock()) {

这里 getCodeLock().isLock() 是true, 所以没有进行加强, 原因不明, 请问 @oldmanpushcart 这是正常的吗?

@oldmanpushcart
Copy link
Collaborator

@tangtangsara 很厉害,看那么深。这里getCodeLock().isLock()并不正常,理论上不可能存在。但因为这个类和你们的业务绑定很深,所以我一时间无法重现这个问题。

我自己也尝试过一些特殊的方法编写组合,但都无法复现你所看到的情况。所以你能否能提供一个最小可重试问题的类,我也好排查。

@oldmanpushcart oldmanpushcart self-assigned this May 8, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants