Помогите решить проблему. Возможно кто то знаком с системой Eprints3, для создания депозитариев. Система бесплатна, ее можно скачать по указанной ссылке. С недавних пор при регистрации новых пользователей начала вылетать страница 500 internal server error, в логах пишет can't call method "update_triggers" on an undefined value at .../eprints3/perl_lib/Eprints/DataObj/User.pm line 303.\n
Все что можно проверял, уже не знаю что может провоцировать эту ошибку, подскажите куда копать. Спасибо!
Код: Выделить всё
sub create_from_data
{
my( $class, $session, $data, $dataset ) = @_;
my $new_user = $class->SUPER::create_from_data( $session, $data, $dataset );
$new_user->update_triggers(); #строка 303
if( scalar( keys %{$new_user->{changed}} ) > 0 )
{
# Remove empty slots in multiple fields
$new_user->tidy;
# Write the data to the database
$session->get_database->update(
$new_user->{dataset},
$new_user->{data},
$new_user->{changed} );
}
$session->get_database->counter_minimum( "userid", $new_user->get_id );
return $new_user;
}
Код: Выделить всё
sub update_triggers
{
my( $self ) = @_;
$self->SUPER::update_triggers();
if( $self->{non_volatile_change} )
{
$self->set_value( "lastmod", EPrints::Time::get_iso_timestamp() );
my $action = "clear_triples";
if( $self->value( "eprint_status" ) eq "archive" )
{
$action = "update_triples";
}
my $user = $self->{session}->current_user;
my $userid;
$userid = $user->id if defined $user;
EPrints::DataObj::EventQueue->create_unique( $self->{session}, {
pluginid => "Event::RDF",
action => $action,
params => [$self->internal_uri],
userid => $userid,
});
}
}