mirror of
https://github.com/DSpace/DSpace.git
synced 2025-10-07 01:54:22 +00:00
Added code to handle edge case
If one of the 'collections' files contains a handle or an id that cannot be resolved to a collection, the specific item is skipped but the procedure continues with subsequent items.
This commit is contained in:

committed by
Kostas Stamatis

parent
5c8cbf2c05
commit
4b92fdd91b
@@ -780,13 +780,19 @@ public class ItemImport
|
|||||||
{
|
{
|
||||||
if (mycollections == null) {
|
if (mycollections == null) {
|
||||||
String path = sourceDir + File.separatorChar + dircontents[i];
|
String path = sourceDir + File.separatorChar + dircontents[i];
|
||||||
Collection [] cols = processCollectionFile(c, path, "collections");
|
try {
|
||||||
if (cols == null) {
|
Collection[] cols = processCollectionFile(c, path, "collections");
|
||||||
System.out.println("No collections specified for item " + dircontents[i] + ". Skipping.");
|
if (cols == null) {
|
||||||
|
System.out.println("No collections specified for item " + dircontents[i] + ". Skipping.");
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
mycollections = cols;
|
||||||
|
}
|
||||||
|
catch (IllegalArgumentException e)
|
||||||
|
{
|
||||||
|
System.out.println(e.getMessage() + " Skipping." );
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
mycollections = cols;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
addItem(c, mycollections, sourceDir, dircontents[i], mapOut, template);
|
addItem(c, mycollections, sourceDir, dircontents[i], mapOut, template);
|
||||||
@@ -1221,7 +1227,8 @@ public class ItemImport
|
|||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
|
|
||||||
private Collection[] processCollectionFile(Context c, String path, String filename) throws IOException, SQLException {
|
private Collection[] processCollectionFile(Context c, String path, String filename) throws IOException, SQLException
|
||||||
|
{
|
||||||
File file = new File(path + File.separatorChar + filename);
|
File file = new File(path + File.separatorChar + filename);
|
||||||
ArrayList<Collection> collections = new ArrayList<Collection>();
|
ArrayList<Collection> collections = new ArrayList<Collection>();
|
||||||
Collection[] result = null;
|
Collection[] result = null;
|
||||||
@@ -1251,7 +1258,7 @@ public class ItemImport
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (obj == null) {
|
if (obj == null) {
|
||||||
throw new IllegalArgumentException("Cannot resolve " + line + " to a collection");
|
throw new IllegalArgumentException("Cannot resolve " + line + " to a collection.");
|
||||||
}
|
}
|
||||||
collections.add((Collection)obj);
|
collections.add((Collection)obj);
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user