diff --git a/src/core/lombok/javac/handlers/HandleLockedUtil.java b/src/core/lombok/javac/handlers/HandleLockedUtil.java index a001e984..f5e60eba 100644 --- a/src/core/lombok/javac/handlers/HandleLockedUtil.java +++ b/src/core/lombok/javac/handlers/HandleLockedUtil.java @@ -160,7 +160,6 @@ public final class HandleLockedUtil { } else { lockNode = maker.Select(maker.Ident(methodNode.toName("this")), methodNode.toName(lockName)); } - recursiveSetGeneratedBy(lockNode, annotationNode); final JCExpression lockable; @@ -168,15 +167,17 @@ public final class HandleLockedUtil { lockable = lockNode; } else { lockable = maker.Apply(NIL_EXPRESSION, maker.Select(lockNode, methodNode.toName(lockableMethodName)), NIL_EXPRESSION); + recursiveSetGeneratedBy(lockable, annotationNode); } JCExpressionStatement acquireLock = maker.Exec(maker.Apply(NIL_EXPRESSION, maker.Select(lockable, typeNode.toName("lock")), NIL_EXPRESSION)); JCExpressionStatement releaseLock = maker.Exec(maker.Apply(NIL_EXPRESSION, maker.Select(lockable, typeNode.toName("unlock")), NIL_EXPRESSION)); - JCTry tryBlock = recursiveSetGeneratedBy(maker.Try(maker.Block(0L, method.body.stats), List.nil(), - maker.Block(0L, List.of(releaseLock))), annotationNode); + JCBlock finallyBlock = setGeneratedBy(maker.Block(0, List.of(recursiveSetGeneratedBy(releaseLock, annotationNode))), annotationNode); + JCTry tryBlock = setGeneratedBy(maker.Try(method.body, List.nil(), finallyBlock), annotationNode); + + method.body = setGeneratedBy(maker.Block(0, List.of(recursiveSetGeneratedBy(acquireLock, annotationNode), tryBlock)), annotationNode); - method.body.stats = List.of(tryBlock).prepend(recursiveSetGeneratedBy(acquireLock, annotationNode)); methodNode.rebuild(); } }