EPrints Technical Mailing List Archive

See the EPrints wiki for instructions on how to join this mailing list and related information.

Message: #07631


< Previous (by date) | Next (by date) > | < Previous (in thread) | Next (in thread) > | Messages - Most Recent First | Threads - Most Recent First

Re: [EP-tech] Error whilst depositing via SWORD


Hi Fran,

Taking a quick look at the code, I think the issue is that in the CRUD module, there are a couple of instances where the 'sword_error' is called as a raw function , rather than an object method e.g.:

Normal working:

https://github.com/eprints/eprints/blob/3.3/perl_lib/EPrints/Apache/CRUD.pm#L432-L436

 

Function call in servicedocument function:

https://github.com/eprints/eprints/blob/3.3/perl_lib/EPrints/Apache/CRUD.pm#L1742-L1745

and 'on_behalf_of' function:

https://github.com/eprints/eprints/blob/3.3/perl_lib/EPrints/Apache/CRUD.pm#L1838-L1862

 

This issue will only become apparent when you're doing a SWORD deposit using the 'on-behalf-of' header.

I think it may have been present for ~7 years, when the first line of the sword_error function was changed from

my( $repo, $r, %opts ) = @_;

to

my( $self, %opts ) = @_;

 

I think it's more than a 5-minute job to fix properly - I need to get into the code a bit more to understand what was changed - and how to resolve it.

 

I'll log it in GitHub and let you know try and come up with a solution - unless anyone else fancies having a  go..?

 

Cheers,

John

 

 

From: eprints-tech-bounces@ecs.soton.ac.uk [mailto:eprints-tech-bounces@ecs.soton.ac.uk] On Behalf Of Fran Callaghan via Eprints-tech
Sent: 07 January 2019 14:50
To: eprints-tech@ecs.soton.ac.uk
Subject: [EP-tech] Error whilst depositing via SWORD

 

Hi All,

 

We have a third party depositing via SWORD. They're getting a generic 500 message back but when I lookup the error_log corresponding to the time of the test I can see this message...

 

[Mon Jan 07 13:46:18.179171 2019] [perl:error] [pid 10713] [client X.X.X.X] Can't locate object method "repository" via package "EPrints::Repository" at /opt/eprints3/perl_lib/EPrints/Apache/CRUD.pm line 1977.\n

 

Any ideas what's wrong with CRUD.pm? Or is it a problem with the syntax of the deposit? I had expected SWORD to be pretty much plug and play (actually not even 'plug' since the documentation says it is configured by default).

 

**NOTE: I have X'd out the client IP address, it's a genuine IP in the original message

 

Thanks all,

Fran Callaghan

 

 

Séanadh Ríomhphoist/Email Disclaimer

Tá an ríomhphost seo agus aon chomhad a sheoltar leis faoi rún agus is lena úsáid ag an seolaí agus sin amháin é. Is féidir tuilleadh a léamh anseo. 

This e-mail and any files transmitted with it are confidential and are intended solely for use by the addressee. Read more here.

 
 


Image removed by sender.

Image removed by sender.Image removed by sender.Image removed by sender.Image removed by sender.Image removed by sender.