Skip to content

Error in request Dataverse API to report successful upload #38

@scruz002

Description

@scruz002

Hi,

I think we're almost making DCM work. The steps to follow
are being performed correctly:

  • Obtaining the upload script through the Dataverse API
  • Upload data set files to /deposit
  • Move files to /hold

But we are having a problem. After moving files to /hold.
the post_upload.bash script makes a request to the Dataverse API to inform
successful in receiving the files. However, the Dataverse is returning an error.

# source /opt/dcm/scn/post_upload.bash
post_upload starting at  Thu Sep 10 19:33:23 -03 2020
/deposit/WZGANH/WZGANH/files.sha  :  /deposit/WZGANH/WZGANH  :  WZGANH  :  WZGANH
checksums verified
data moved
ERROR: dataverse at https://xxxxxxxxxxx had a problem handling the DCM success API call
{"status":"ERROR","code":500,"message":"Internal server error. More details available at the server logs.","incidentId":"284d10d6-1101-47da-be9e-9bde74cf3828"}
will retry in 60 seconds
ERROR: retry failed, will need to handle manually
post_upload completed at  Thu Sep 10 19:34:59 -03 2020

In the Dataverse log

[2020-09-10T19:33:59.309-0300] [glassfish 4.1] [SEVERE] [] [edu.harvard.iq.dataverse.api.errorhandlers.ServeletExceptionHandler] [tid: _ThreadID=52 _ThreadName=jk-connector(3)] [timeMillis: 1599777239309] [levelValue: 1000] [[
  API internal error 284d10d6-1101-47da-be9e-9bde74cf3828: Null Pointer
java.lang.NullPointerException
        at edu.harvard.iq.dataverse.api.Datasets.receiveChecksumValidationResults(Datasets.java:1351)

In the source code of Dataverse version 4.20 (edu.harvard.iq.dataverse.api.Datasets)


1346                 String storageDriver = dataset.getDataverseContext().getEffectiveStorageDriverId();
1347                 String uploadFolder = jsonFromDcm.getString("uploadFolder");
1348                 int totalSize = jsonFromDcm.getInt("totalSize");
1349                 String storageDriverType = System.getProperty("dataverse.file." + storageDriver + ".type");
1350 
1351                 if (storageDriverType.equals("file")) {
1352                     logger.log(Level.INFO, "File storage driver used for (dataset id={0})", dataset.getId());

Apparently the property "dataverse.file." + storageDriver + ".type" is not defined.

We would like to know how in configuration we can define the appropriate values for
this property so that the request to Dataverse API can be handled correctly.

We noticed that the properties related to the upload folder start with "dataverse.files" and not "dataverse.file".

Thanks for any help.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions