Browse Source

Merge pull request #11 from jkaving/JASSIST-220

Fix for JASSIST-220
tags/rel_3_19_0_ga
Shigeru Chiba 9 years ago
parent
commit
42238e4510
4 changed files with 46 additions and 17 deletions
  1. 3
    2
      pom.xml
  2. 10
    15
      src/main/javassist/bytecode/ConstPool.java
  3. 16
    0
      src/test/javassist/JvstTest4.java
  4. 17
    0
      src/test/test4/JIRA220.java

+ 3
- 2
pom.xml View File

@@ -140,8 +140,9 @@
<configuration>
<source>1.6</source>
<target>1.6</target>
<testSource>1.7</testSource>
<testTarget>1.7</testTarget>
<testSource>1.8</testSource>
<testTarget>1.8</testTarget>
<compilerArgument>-parameters</compilerArgument>
</configuration>
</plugin>
<plugin>

+ 10
- 15
src/main/javassist/bytecode/ConstPool.java View File

@@ -389,7 +389,7 @@ public final class ConstPool {
* at the given index.
*/
public int getMethodrefClass(int index) {
MethodrefInfo minfo = (MethodrefInfo)getItem(index);
MemberrefInfo minfo = (MemberrefInfo)getItem(index);
return minfo.classIndex;
}

@@ -401,7 +401,7 @@ public final class ConstPool {
* @return the name of the class at that <code>class_index</code>.
*/
public String getMethodrefClassName(int index) {
MethodrefInfo minfo = (MethodrefInfo)getItem(index);
MemberrefInfo minfo = (MemberrefInfo)getItem(index);
if (minfo == null)
return null;
else
@@ -414,7 +414,7 @@ public final class ConstPool {
* at the given index.
*/
public int getMethodrefNameAndType(int index) {
MethodrefInfo minfo = (MethodrefInfo)getItem(index);
MemberrefInfo minfo = (MemberrefInfo)getItem(index);
return minfo.nameAndTypeIndex;
}

@@ -427,7 +427,7 @@ public final class ConstPool {
* @return the name of the method.
*/
public String getMethodrefName(int index) {
MethodrefInfo minfo = (MethodrefInfo)getItem(index);
MemberrefInfo minfo = (MemberrefInfo)getItem(index);
if (minfo == null)
return null;
else {
@@ -449,7 +449,7 @@ public final class ConstPool {
* @return the descriptor of the method.
*/
public String getMethodrefType(int index) {
MethodrefInfo minfo = (MethodrefInfo)getItem(index);
MemberrefInfo minfo = (MemberrefInfo)getItem(index);
if (minfo == null)
return null;
else {
@@ -468,8 +468,7 @@ public final class ConstPool {
* at the given index.
*/
public int getInterfaceMethodrefClass(int index) {
InterfaceMethodrefInfo minfo
= (InterfaceMethodrefInfo)getItem(index);
MemberrefInfo minfo = (MemberrefInfo)getItem(index);
return minfo.classIndex;
}

@@ -481,8 +480,7 @@ public final class ConstPool {
* @return the name of the class at that <code>class_index</code>.
*/
public String getInterfaceMethodrefClassName(int index) {
InterfaceMethodrefInfo minfo
= (InterfaceMethodrefInfo)getItem(index);
MemberrefInfo minfo = (MemberrefInfo)getItem(index);
return getClassInfo(minfo.classIndex);
}

@@ -492,8 +490,7 @@ public final class ConstPool {
* at the given index.
*/
public int getInterfaceMethodrefNameAndType(int index) {
InterfaceMethodrefInfo minfo
= (InterfaceMethodrefInfo)getItem(index);
MemberrefInfo minfo = (MemberrefInfo)getItem(index);
return minfo.nameAndTypeIndex;
}

@@ -507,8 +504,7 @@ public final class ConstPool {
* @return the name of the method.
*/
public String getInterfaceMethodrefName(int index) {
InterfaceMethodrefInfo minfo
= (InterfaceMethodrefInfo)getItem(index);
MemberrefInfo minfo = (MemberrefInfo)getItem(index);
if (minfo == null)
return null;
else {
@@ -531,8 +527,7 @@ public final class ConstPool {
* @return the descriptor of the method.
*/
public String getInterfaceMethodrefType(int index) {
InterfaceMethodrefInfo minfo
= (InterfaceMethodrefInfo)getItem(index);
MemberrefInfo minfo = (MemberrefInfo)getItem(index);
if (minfo == null)
return null;
else {

+ 16
- 0
src/test/javassist/JvstTest4.java View File

@@ -980,4 +980,20 @@ public class JvstTest4 extends JvstTestRoot {
assertEquals("i", cp.getUtf8Info(attr.name(0)));
assertEquals("s", cp.getUtf8Info(attr.name(1)));
}

// JIRA JASSIST-220
public void testStaticInterfaceMethods() throws Exception {
CtClass cc = sloader.get("test4.JIRA220");

cc.getMethod("foo", "()V").instrument(new ExprEditor() {
@Override
public void edit(MethodCall m) throws CannotCompileException {
try {
m.getClassName();
} catch (Exception e) {
fail(e.getMessage());
}
}
});
}
}

+ 17
- 0
src/test/test4/JIRA220.java View File

@@ -0,0 +1,17 @@
package test4;


import java.util.function.IntConsumer;
import java.util.stream.IntStream;

interface JIRA220intf {
static void bar() {
// Do something
}
}

public class JIRA220 implements JIRA220intf {
public static void foo() {
JIRA220intf.bar();
}
}

Loading…
Cancel
Save