Details
-
Type:
Bug
-
Status:
Closed
-
Priority:
Blocker
-
Resolution: Fixed
-
Affects Version/s: JRuby 1.6RC3
-
Fix Version/s: JRuby 1.6.4
-
Component/s: None
-
Labels:None
-
Number of attachments :
Description
Invokers (our handles to Java methods bound to Ruby names) can be generated ahead of time or just-in-time when a class is bound. Normally they are bytecode-based, in which case it's more efficient to generate them ahead of time. If they are not generated ahead of time, and the class is being bound on a system that does not support loading bytecode, the binding process will terminate prematurely, often terminating the program as well.
This is the cause of JRUBY-5565.
I'm going to make a short-term fix to fall back on reflected invokers when bytecoded invokers cannot be loaded.
Activity
Charles Oliver Nutter
made changes -
| Field | Original Value | New Value |
|---|---|---|
| Fix Version/s | JRuby 1.6.1 [ 17085 ] | |
| Fix Version/s | JRuby 1.6 [ 17062 ] |
Charles Oliver Nutter
made changes -
| Fix Version/s | JRuby 1.6.2 [ 17306 ] | |
| Fix Version/s | JRuby 1.6.1 [ 17085 ] |
Charles Oliver Nutter
made changes -
| Fix Version/s | JRuby 1.6.3 [ 17374 ] | |
| Fix Version/s | JRuby 1.6.2 [ 17306 ] |
Thomas E Enebo
made changes -
| Fix Version/s | JRuby 1.6.4 [ 17472 ] | |
| Fix Version/s | JRuby 1.6.3 [ 17374 ] |
Charles Oliver Nutter
made changes -
| Status | Open [ 1 ] | Resolved [ 5 ] |
| Resolution | Fixed [ 1 ] |
Charles Oliver Nutter
made changes -
| Status | Resolved [ 5 ] | Closed [ 6 ] |
commit 07c811b5f6318dbcecf7dfdbf06448d20de7980c
Author: Charles Oliver Nutter <headius@headius.com>
Date: Wed Mar 9 01:14:21 2011 -0600
Preliminary fix for
JRUBY-5567: Invokers will fail to generate and kill method binding on systems that do not support bytecode loadingI added logic into MethodFactory to attempt to load a class, forcing reflected invokers forever if this fails in any way. I have confirmed manually that this does not interfere with normal execution, and have left logging in place that indicates when it has fallen back. See
JRUBY-5568for a task to remove this logging before JRuby 1.6 final.JRUBY-5567will remain open until a more robust solution can be found (JRuby 1.6.1).See also
JRUBY-5566, which this issue caused.