algomaster99 opened a new issue, #1999: URL: https://github.com/apache/shiro/issues/1999
Hi, I was trying to reproduce `1.13.0` of `shiro` and I observed that there is bytecode difference in the reference version and the version I build using [this buildspec on Reproducible Central](https://github.com/jvm-repo-rebuild/reproducible-central/blob/master/content/org/apache/shiro/shiro-1.13.0.buildspec). Apart from changes in other PRs by Hervé, I am more interested in understanding changes in JVM bytecode. I observed the following difference in `shiro-aspectj` module. ```diff public org.apache.shiro.aspectj.BeforeAdviceMethodInvocationAdapter(java.lang.Object, java.lang.reflect.Method, java.lang.Object[]); descriptor: (Ljava/lang/Object;Ljava/lang/reflect/Method;[Ljava/lang/Object;)V flags: (0x0001) ACC_PUBLIC + org.aspectj.weaver.MethodDeclarationLineNumber: length = 0x8 (unknown attribute) + 00 00 00 46 00 00 0B 5D Code: stack=2, locals=4, args_size=4 0: aload_0 - 1: invokespecial #18 // Method java/lang/Object.\"<init>\":()V + 1: invokespecial #69 // Method java/lang/Object.\"<init>\":()V 4: aload_0 5: aload_1 - 6: putfield #19 // Field _object:Ljava/lang/Object; + 6: putfield #72 // Field _object:Ljava/lang/Object; 9: aload_0 10: aload_2 - 11: putfield #20 // Field _method:Ljava/lang/reflect/Method; + 11: putfield #74 // Field _method:Ljava/lang/reflect/Method; 14: aload_0 15: aload_3 - 16: putfield #21 // Field _arguments:[Ljava/lang/Object; + 16: putfield #76 // Field _arguments:[Ljava/lang/Object; 19: return LineNumberTable: line 70: 0 line 71: 4 line 72: 9 line 73: 14 line 74: 19 @@ -210,61 +211,69 @@ 0 20 1 anObject Ljava/lang/Object; 0 20 2 aMethod Ljava/lang/reflect/Method; 0 20 3 someArguments [Ljava/lang/Object; public java.lang.Object[] getArguments(); descriptor: ()[Ljava/lang/Object; flags: (0x0001) ACC_PUBLIC + org.aspectj.weaver.MethodDeclarationLineNumber: length = 0x8 (unknown attribute) + 00 00 00 50 00 00 0C 8F ``` The major difference is ```diff + org.aspectj.weaver.MethodDeclarationLineNumber: length = 0x8 (unknown attribute) + 00 00 00 50 00 00 0C 8F ``` I am not sure why this is added in my rebuild. Intuitively, I feel [this plugin](https://github.com/apache/shiro/blob/86819589b3fe4442f4ec1b1cf34e6113afbba73b/support/aspectj/pom.xml#L65-L84) is responsible for this change, but then is this plugin skipped while publishing the version? It may solve the issue in `v1.13.0` as well [if we switch to JDK 22](https://github.com/jvm-repo-rebuild/reproducible-central/issues/185#issuecomment-2254168228), but I am trying to understand how is AspectJ influenced. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
