Hello Le Saturday 9 June 2012 18:16:53, intrigeri a écrit : > Anyone want to try to fix the code or the unit test? Providing the missing method is quite easy: diff --git a/lib/POEx/Role/SessionInstantiation/Meta/Session/Implementation.pm b/lib/POEx/Role/SessionInstantiation/Meta/Session/Implementation.pm index 2ab316c..346a0e8 100644 --- a/lib/POEx/Role/SessionInstantiation/Meta/Session/Implementation.pm +++ b/lib/POEx/Role/SessionInstantiation/Meta/Session/Implementation.pm @@ -85,6 +85,7 @@ role POEx::Role::SessionInstantiation::Meta::Session::Implementation { is => 'ro', isa => Int, default => sub { $POE::Kernel::poe_kernel->ID_session_to_id($_[0]) }, + writer => '_set_id' , lazy => 1, ); But, the tests still fail with this sad ending: ok 14 - Stop called please report this stacktrace to bug-poe@rt.cpan.org at /usr/share/perl5/POE/Kernel.pm line 1013 POE::Kernel::_dispatch_event('POE::Kernel=ARRAY(0x1be9ee0)', undef, 'POE::Kernel=ARRAY(0x1be9ee0)', '_stop', 8, 'ARRAY(0x1c03418)', '/usr/share/perl5/POE/Resource/Sessions.pm', 571, undef, ...) called at /usr/share/perl5/POE/Resource/Sessions.pm line 568 POE::Kernel::_data_ses_stop('POE::Kernel=ARRAY(0x1be9ee0)', 'gandalf-4fd45c1f-000027a0-00000001') called at /usr/share/perl5/POE/Resource/Signals.pm line 533 POE::Kernel::_data_sig_free_terminated_sessions('POE::Kernel=ARRAY(0x1be9ee0)') called at /usr/share/perl5/POE/Kernel.pm line 974 POE::Kernel::_dispatch_event('POE::Kernel=ARRAY(0x1be9ee0)', 'POE::Kernel=ARRAY(0x1be9ee0)', 'POE::Kernel=ARRAY(0x1be9ee0)', '_signal', 16, 'ARRAY(0x3b3ad28)', '/usr/share/perl5/POE/Kernel.pm', 635, undef, ...) called at /usr/share/perl5/POE/Resource/Events.pm line 315 POE::Kernel::_data_ev_dispatch_due('POE::Kernel=ARRAY(0x1be9ee0)') called at /usr/share/perl5/POE/Loop/Select.pm line 309 POE::Kernel::loop_do_timeslice('POE::Kernel=ARRAY(0x1be9ee0)') called at /usr/share/perl5/POE/Loop/Select.pm line 317 POE::Kernel::loop_run('POE::Kernel=ARRAY(0x1be9ee0)') called at /usr/share/perl5/POE/Kernel.pm line 1235 POE::Kernel::run('POE::Kernel') called at t/01-basic.t line 95 # Tests were run but no plan was declared and done_testing() was not seen. POE bails out at the end of the test while mopping up sessions. Unfortunately, I do not know how to fix this: POEx::Role::SessionInstantiation re-implements (i.e. overrides) a lot of POE internals and uses waaaay beyong POE's documented API. I can only guess that POE internals have changed (e,g, the introduction of a new internal method: _set_id), and POEx::Role::SessionInstantiation did not follow the change. To fix this module one has to know POE internal, Moose, MooseX::Declare, overloading and whatnot. Unless upstream author steps up, (hello Nicholas), I doubt that this module will be fixed in time for Debian 7.0 All the best Dominique
Attachment:
signature.asc
Description: This is a digitally signed message part.