Replying to myself in case anyone else should find this helpful:

I traced the problem to a section in 

        org/dspace/submit/step/UploadStep.java

that has to do with the file description string. 

As far as I could tell, the program was trying to add a file description string 
to a null bitstream. Not sure why, since the file was uploading perfectly and I 
was just using the default “traditional” form upload. But I suppose I must have 
done something to cause this to happen only to my install… Perhaps it was set 
up for multi-file upload (not deliberately) but I was using it for single 
uploads? Maybe someone on here can shed some light on that aspect.

But anyway the system was uploading the file in one step, then doing a separate 
step to assign the file description — but second time round the bitstream was 
null. Hence the error.

I’m not recommending my fix as the solution for this. In fact, I’m sure there 
must be something a lot simpler you can tweak. But just in case anyone else is 
interested I changed the UploadStep.java file from

262         // -------------------------------------------------
263         // Step #3: Check for a change in file description
264         // -------------------------------------------------
265         String fileDescription = request.getParameter("description");
266         if (fileDescription != null && fileDescription.length() > 0)
267         {
268             // save this file description
269             int status = processSaveFileDescription(context, request, 
response,
270                     subInfo);
271 
272 
273             // if error occurred, return immediately
274             if (status != STATUS_COMPLETE)
375             {
376                 return status;
377             }
378         }
379 

to

262         // -------------------------------------------------
263         // Step #3: Check for a change in file description
264         // -------------------------------------------------
265         String fileDescription = request.getParameter("description");
266         if (fileDescription != null && fileDescription.length() > 0)
267         {
268 
269             // ---------------------------------------------
270             // Every time I tried adding an item to a collection
271             // I would get an error message about Malformed item
272             // Traced this to this method - file upload happens
273             // but then this method gets called to set the description 
274             // and the bitstream the /second/ time round is null.
275             // So we get the  bitstream from the Item object and
276             // set the description string on that. Not sure if that
277             // is the right thing to do but it seems to work...
278             //  D I Macdonald 2015-02-06
279             // ----------------------------------------------
280             if (subInfo.getBitstream() == null)
281             {
282                 if (item != null)
283                 {
284                     Bundle[] bundle = item.getBundles("ORIGINAL");
285                     if (bundle.length!=0)
286                     {
287                         Bitstream[] bitstreams = bundle[0].getBitstreams();
288                         if (bitstreams[0] !=null) 
subInfo.setBitstream(bitstreams[0]);
289                     }
290                 }
291             } // - - end of DI insert
292 
293             // save this file description
294             int status = processSaveFileDescription(context, request, 
response,
295                     subInfo);
296 
297 
298             // if error occurred, return immediately
299             if (status != STATUS_COMPLETE)
300             {
301                 return status;
302             }
303         }
304 



------------------------------------------------------------------------------
Dive into the World of Parallel Programming. The Go Parallel Website,
sponsored by Intel and developed in partnership with Slashdot Media, is your
hub for all things parallel software development, from weekly thought
leadership blogs to news, videos, case studies, tutorials and more. Take a
look and join the conversation now. http://goparallel.sourceforge.net/
_______________________________________________
DSpace-tech mailing list
DSpace-tech@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dspace-tech
List Etiquette: https://wiki.duraspace.org/display/DSPACE/Mailing+List+Etiquette

Reply via email to