@@ -230,7 +230,8 @@ public Dataset execute(CommandContext ctxt) throws CommandException {
230
230
if (!theDataset .getOrCreateEditVersion ().equals (fmd .getDatasetVersion ())) {
231
231
fmd = FileMetadataUtil .getFmdForFileInEditVersion (fmd , theDataset .getOrCreateEditVersion ());
232
232
}
233
- }
233
+ }
234
+ fmd .setDataFile (ctxt .em ().merge (fmd .getDataFile ()));
234
235
fmd = ctxt .em ().merge (fmd );
235
236
236
237
// There are two datafile cases as well - the file has been released, so we're
@@ -241,20 +242,23 @@ public Dataset execute(CommandContext ctxt) throws CommandException {
241
242
ctxt .engine ().submit (new DeleteDataFileCommand (fmd .getDataFile (), getRequest ()));
242
243
// and remove the file from the dataset's list
243
244
theDataset .getFiles ().remove (fmd .getDataFile ());
245
+ ctxt .em ().remove (fmd .getDataFile ());
246
+ ctxt .em ().remove (fmd );
244
247
} else {
245
- // if we aren't removing the file, we need to explicitly remove the fmd from the
246
- // context and then remove it from the datafile's list
247
248
ctxt .em ().remove (fmd );
249
+ // if we aren't removing the file, we need to remove it from the datafile's list
248
250
FileMetadataUtil .removeFileMetadataFromList (fmd .getDataFile ().getFileMetadatas (), fmd );
249
251
}
250
- // In either case, to fully remove the fmd, we have to remove any other possible
252
+ // In either case, we've removed from the context
253
+ // And, to fully remove the fmd, we have to remove any other possible
251
254
// references
252
255
// From the datasetversion
253
256
FileMetadataUtil .removeFileMetadataFromList (theDataset .getOrCreateEditVersion ().getFileMetadatas (), fmd );
254
257
// and from the list associated with each category
255
258
for (DataFileCategory cat : theDataset .getCategories ()) {
256
259
FileMetadataUtil .removeFileMetadataFromList (cat .getFileMetadatas (), fmd );
257
260
}
261
+
258
262
}
259
263
for (FileMetadata fmd : theDataset .getOrCreateEditVersion ().getFileMetadatas ()) {
260
264
logger .fine ("FMD: " + fmd .getId () + " for file: " + fmd .getDataFile ().getId () + "is in final draft version" );
0 commit comments