[JBoss JIRA] (JASSIST-149) ClassFormatError when using an ExprEditor, replacing a MethodCall after replacing a FieldAccess with a throw-Statement
by Ben Romberg (JIRA)
Ben Romberg created JASSIST-149:
-----------------------------------
Summary: ClassFormatError when using an ExprEditor, replacing a MethodCall after replacing a FieldAccess with a throw-Statement
Key: JASSIST-149
URL: https://issues.jboss.org/browse/JASSIST-149
Project: Javassist
Issue Type: Bug
Affects Versions: 3.15.0-GA
Environment: JRE 1.6
Reporter: Ben Romberg
Assignee: Shigeru Chiba
To reproduce, use the following ExprEditor:
new ExprEditor() {
edit(FieldAccess fieldAccess) {
fieldAccess.replace("throw new ...");
}
edit(MethodCall methodCall) {
methodCall.replace(...);
}
}
Now, use the ExprEditor on a method assigning a field first and then calling a method. When loading the modified class, the following exception should occur:
java.lang.ClassFormatError: Invalid pc in LineNumberTable in class file de/andrena/next/systemtest/pure/PureOnlyForOwnMethodsFieldsAndParametersSystemTest$TargetClass
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:632)
at java.lang.ClassLoader.defineClass(ClassLoader.java:616)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
at java.lang.Class.getDeclaredFields0(Native Method)
at java.lang.Class.privateGetDeclaredFields(Class.java:2291)
at java.lang.Class.getDeclaredFields(Class.java:1743)
...
Expected behavior:
* Either correctly replacing the methodCall without corrupting the line-number-table, or
* throwing a CannotCompileException when trying to modify/insert code after a throw-Expression.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.jboss.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
12 years, 11 months
[JBoss JIRA] (JGRP-1419) UNICAST / UNICAST2: combine retransmission for all members
by Bela Ban (JIRA)
Bela Ban created JGRP-1419:
------------------------------
Summary: UNICAST / UNICAST2: combine retransmission for all members
Key: JGRP-1419
URL: https://issues.jboss.org/browse/JGRP-1419
Project: JGroups
Issue Type: Enhancement
Reporter: Bela Ban
Assignee: Bela Ban
Fix For: 3.1
UNICAST:
- The sender has an AckSenderWindow, the receiver an AckReceiverWindow
- The sender keeps retransmitting until the receiver delivers the message and acks it
UNICAST2:
- The sender has an AckSenderWindow (without retransmission) and the receiver a NakReceiverWindow
- The receiver asks the sender for retransmission only if there's a gap
- Stability ensures that the sender doesn't keep messages around forever
Suggestions:
- Similar to NAKACK, don't use a separate retransmitter for every member (window), but have just 1 retransmitter task scan the message tables and do retransmission
- In UNICAST2, Table<Message> can replace the NakReceiverWindow on the receiver side
- In UNICAST2, we can probably also replace the sender's window with a Table<Message>
- in UNICAST, the sender's AckSenderWindow can also be replaced with a Table<Message>
- In UNICAST, investigate whether the receiver window can be replaced with a Table<Message> as well !
If we can do this, then we have
- only 1 proven data structure (Table<Message>)
- not 1 retransmitter per window, but 1 for all the windows (saving space) !
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.jboss.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
12 years, 11 months