[
https://issues.jboss.org/browse/JASSIST-173?page=com.atlassian.jira.plugi...
]
Pawel Veselov commented on JASSIST-173:
---------------------------------------
javassist certainly throws exceptions due to syntax errors, and reference errors (i.e. a
method can not be found, etc). Producing invalid bytecode is quite a serious problem as
JVM doesn't even say which PC contains invalid instruction, debugging these things can
take a very long time and be quite a tedious process.
No Exception is thrown by CtNewMethod.make() when return type is
wrong
----------------------------------------------------------------------
Key: JASSIST-173
URL:
https://issues.jboss.org/browse/JASSIST-173
Project: Javassist
Issue Type: Bug
Affects Versions: 3.16.1-GA
Environment: Windows Vista, JDK 1.6
Reporter: Maxime Dubois
Assignee: Shigeru Chiba
When using the CtNewMethod.make() method to create a method that returns data with a
wrong type, no Exception is thrown.
Steps to reproduce:
-----------------
- use the method "public static CtMethod make(java.lang.String src, CtClass
declaring)" to create a method that looks like this:
public static boolean myMethod() { return ("toto"); }
- add it to a CtClass object using the addMethod() method
Result :
-----------------
No CannotCompileException is thrown, the method is created and added to the class without
any problem even though it is not correct.
When trying to use the resulting class, the following error is thrown:
"java.lang.VerifyError: Wrong return type in function"
Expected result :
------------------
The CtNewMethod.make() method should throw a CannotCompileException indicating that the
return type is wrong.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see:
http://www.atlassian.com/software/jira