[rt-users] Possible bug in ExtractCustomFieldValues 2.99_01
Flynn, Timothy J
timothy-flynn at uiowa.edu
Wed May 27 16:47:58 EDT 2009
I have been using ExtractCustomFieldValues 2.99_01 for a few months now
with RT 3.8.2 and it seemed to work well. Recently I added some new
global custom fields and then applied them to a new queue and I've been
getting errors unless I remove the new custom fields from the template
when emails are parsed.
[Wed May 27 19:26:51 2009] [debug]: Looking for CF Job Name
(/usr/local/rt3/local/plugins/RT-Extension-ExtractCustomFieldValues/lib/
RT/Action/ExtractCustomFieldValues.pm:105)
[Wed May 27 19:26:51 2009] [error]: Scrip Commit 15 died. - Can't call
method "id" on an undefined value at
/usr/local/rt3/local/plugins/RT-Extension-ExtractCustomFieldValues/lib/R
T/Action/ExtractCustomFieldValues.pm line 119.
Stack:
[/usr/local/rt3/local/plugins/RT-Extension-ExtractCustomFieldValues/lib/
RT/Action/ExtractCustomFieldValues.pm:119]
[/usr/local/rt3/local/plugins/RT-Extension-ExtractCustomFieldValues/lib/
RT/Action/ExtractCustomFieldValues.pm:81]
[/usr/local/rt3/bin/../lib/RT/ScripAction_Overlay.pm:238]
[/usr/local/rt3/bin/../lib/RT/Scrip_Overlay.pm:464]
[/usr/local/rt3/bin/../lib/RT/Scrips_Overlay.pm:196]
[/usr/local/rt3/bin/../lib/RT/Transaction_Overlay.pm:188]
[/usr/local/rt3/bin/../lib/RT/Record.pm:1456]
[/usr/local/rt3/bin/../lib/RT/Ticket_Overlay.pm:648]
[/usr/local/rt3/bin/../lib/RT/Interface/Email.pm:1357]
[/usr/local/rt3/share/html/REST/1.0/NoAuth/mail-gateway:61]
(/usr/local/rt3/bin/../lib/RT/Scrip_Overlay.pm:472)
I believe it is because in this area of code it tries to see if a field
pertains to a queue or not and makes the assumtion that if it is global
it is in all queues or if it isn't global it is there. We have global
custom fields that don't apply to all queues.
101 sub LoadCF {
102 my $self = shift;
103 my %args = @_;
104 my $CustomFieldName = $args{Name};
105 $RT::Logger->debug( "Looking for CF $CustomFieldName");
106
107 # We do this by hand instead of using LoadByNameAndQueue because
108 # that can find disabled queues
109 my $cfs = RT::CustomFields->new($RT::SystemUser);
110 $cfs->LimitToGlobalOrQueue($self->Queue);
111 $cfs->Limit(
112 FIELD => 'Name',
113 VALUE => $CustomFieldName,
114 CASESENSITIVE => 0
115 );
116 $cfs->RowsPerPage(1);
117
118 my $cf = $cfs->First;
119 if ( $cf->id ) {
120 $RT::Logger->debug( "Found CF id " . $cf->id );
121 } elsif ( not $args{Quiet} ) {
122 $RT::Logger->error( "Couldn't load CF $CustomFieldName!");
123 }
124
125 return $cf;
It would seem to me that the limit method isn't limiting enough?
Meaning that it just checks if a custom field is global or not but
doesn't seem to check if it is applied or not?? This is my first guess.
Any ideas on a resolution?
Thanks,
-Tim
More information about the rt-users
mailing list