[Rt-devel] obscure stricture explosion

Nicholas Clark nick at ccl4.org
Thu Jun 14 13:01:02 EDT 2007


If I'm getting this error message:

Can't locate object method "EmailAddress" via package "No object mapping for field" (perhaps you forgot to load "No object mapping for field"?) at lib/RT/Ticket_Overlay.pm line 1351.

where the offending lines in 3.6.3's RT/Ticket_Overlay.pm are:

    if ( $self->CurrentUser->PrincipalId == ($args{'PrincipalId'} || 0)
       or    lc( $self->CurrentUser->UserObj->EmailAddress )
          eq lc( RT::User::CanonicalizeEmailAddress(undef, $args{'Email'}) || '' ) )
    {

and my calling code is

$t->AddWatcher(Type => 'Cc', PrincipalId => $g->Id);

where $g->Id is 55, and $t is a valid RT::Ticket object


then, where do I start looking to work out what my bug is?


My script (it's trying to be a regression test) started with:

use_ok('RT');
use_ok('RT::Ticket');
use_ok('RT::Queue');
RT::LoadConfig();
RT::Init();


And I'd not set CurrentUser. Is that my problem?

Nicholas Clark


More information about the Rt-devel mailing list