2017-03-23 3 views
1

je suis en train de restaurer une communauté avec dspace emballeur -r -s -k -a -t AIPje suis en train de restaurer une communauté avec dspace emballeur

retourner cette erreur:

This may take a while, please check your logs for ongoing status while we process each package. org.dspace.content.crosswalk.MetadataValidationException: Bad number value in PREMIS object/objectCharacteristics/size: 2237780334 at org.dspace.content.crosswalk.PREMISCrosswalk.ingest(PREMISCrosswalk.java:122) at org.dspace.content.crosswalk.PREMISCrosswalk.ingest(PREMISCrosswalk.java:88) at org.dspace.content.packager.METSManifest.crosswalkXmd(METSManifest.java:1193) at org.dspace.content.packager.METSManifest.crosswalkBitstream(METSManifest.java:1310) at org.dspace.content.packager.AbstractMETSIngester.addBitstreams(AbstractMETSIngester.java:814) at org.dspace.content.packager.AbstractMETSIngester.ingestObject(AbstractMETSIngester.java:494) at org.dspace.content.packager.AbstractMETSIngester.ingest(AbstractMETSIngester.java:228) at org.dspace.content.packager.AbstractPackageIngester.ingestAll(AbstractPackageIngester.java:145) at org.dspace.content.packager.AbstractPackageIngester.ingestAll(AbstractPackageIngester.java:195) at org.dspace.content.packager.AbstractPackageIngester.ingestAll(AbstractPackageIngester.java:195) at org.dspace.app.packager.Packager.ingest(Packager.java:515) at org.dspace.app.packager.Packager.main(Packager.java:427) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.dspace.app.launcher.ScriptLauncher.runOneCommand(ScriptLauncher.java:226) at org.dspace.app.launcher.ScriptLauncher.main(ScriptLauncher.java:78) Caused by: java.lang.NumberFormatException: For input string: "2237780334" at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65) at java.lang.Integer.parseInt(Integer.java:583) at java.lang.Integer.parseInt(Integer.java:615) at org.dspace.content.crosswalk.PREMISCrosswalk.ingest(PREMISCrosswalk.java:112) ... 17 more org.dspace.content.crosswalk.MetadataValidationException: Bad number value in PREMIS object/objectCharacteristics/size: 2237780334

Comment résoudre cela?

https://github.com/DSpace/DSpace/blob/master/dspace-api/src/main/java/org/dspace/content/crosswalk/PREMISCrosswalk.java

Répondre

2

Ce nombre cadrerait un long mais pas un nombre entier, donc Integer.parseInt jette NumberFormatException. Fondamentalement, l'objet est trop grand pour que sa taille déclarée soit vérifiée par rapport au Bitstream actuel. Le code est bogué: Bitstream.getSize renvoie un long, qui est assez grand pour un couple de milliards, et devrait être comparé à un long. PREMISCrosswalk devrait utiliser Long.parseLong. S'il vous plaît déposer un problème au https://jira.duraspace.org/, y compris la trace de la pile que vous montrez ci-dessus, et/ou un lien vers cette question. Merci d'avoir porté ce problème à notre attention.

Si vous le souhaitez, vous devriez être en mesure de dépasser ce problème en corrigeant cette ligne unique (PREMISCrosswalk.java:112) changer de

int size = Integer.parseInt(ssize); 

à

long ssize = Long.parseLong(ssize); 
+1

Comme il critiquait situation dans le système, et il était nécessaire de restaurer la communauté à temps en raison de l'indisponibilité du système. J'ai fini par faire une sauvegarde du fichier et je l'ai retiré dans la restauration a fonctionné normalement. Je vais faire une nouvelle simulation de sauvegarde et je vais essayer de le restaurer dans la communauté et de signaler le problème. –