Signal.list leaking into Module, showing up on all modules and classes
----------------------------------------------------------------------
Key: JRUBY-3715
URL: http://jira.codehaus.org/browse/JRUBY-3715
Project: JRuby
Issue Type: Bug
Components: Core Classes/Modules
Affects Versions: JRuby 1.3
Reporter: Charles Oliver Nutter
Priority: Blocker
The "list" method from Signal is showing up on all classes in the system:
{noformat}
$ ~/projects/jruby/bin/jruby -e "require 'config/boot'; p Object.list"
{"EXIT"=>0, "HUP"=>1, "INT"=>2, "QUIT"=>3, "ILL"=>4, "TRAP"=>5, "ABRT"=>6,
"EMT"=>7, "FPE"=>8, "KILL"=>9, "BUS"=>10, "SEGV"=>11, "SYS"=>12, "PIPE"=>13,
"ALRM"=>14, "TERM"=>15, "URG"=>16, "STOP"=>17, "TSTP"=>18, "CONT"=>19,
"CHLD"=>20, "TTIN"=>21, "TTOU"=>22, "IO"=>23, "XCPU"=>24, "XFSZ"=>25,
"VTALRM"=>26, "PROF"=>27, "WINCH"=>28, "INFO"=>29, "USR1"=>30, "USR2"=>31,
"IOT"=>6, "CLD"=>20}
{noformat}
This is normally harmless, but caused a breakage in BrowserCMS when it checks
whether a class responds to the "list" method:
{noformat}
scope = model_class.respond_to?(:list) ? model_class.list : model_class
{noformat}
The result was that instead of *not* responding to "list", everything *did*
respond to "list" and so every model that passed through this code broke
because Hash does not support implement "searchable?".
The fix was to make those methods "module = true" instead of "meta = true",
similar to some Enumerable/Enumerator fixes we made many months ago.
I'm committing a fix for this plus a test that runs early in the test sequence
ensuring only expected methods appear on the Object class.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
---------------------------------------------------------------------
To unsubscribe from this list, please visit:
http://xircles.codehaus.org/manage_email