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]

Reply via email to