On Apr 26, 7:42 am, branflake2267 <branflake2...@gmail.com> wrote: > My code snippet that procured the above trace: > > public long uploadBlob_ByFile(long fileThingId, String fileName, String > contentType, byte[] filebytes) { > if (filebytes == null || filebytes.length == 0) { > log.warning("uploadBlob_ByFile(): Warn: filebytes is null or length=0"); > return -1; > } > > log.info("uploadBlob_ByFile(): filebytes.length=" + filebytes.length); > > // Get a file service > FileService fileService = FileServiceFactory.getFileService(); > > // Create a new Blob file with mime-type > AppEngineFile file = null; > try { > file = fileService.createNewBlobFile(contentType, fileName); > } catch (IOException e) { > log.severe("uploadBlob_ByFile(): Error 1: could not > fileService.createNewBlobFile: " + e.toString()); > e.printStackTrace(); > return 0; > } > > if (file == null) { > log.severe("uploadBlob_ByFile(): Error: file is null. exiting file > upload."); > return 0; > } > > // Open a channel to write to it > boolean lock = true; > FileWriteChannel writeChannel = null; > try { > writeChannel = fileService.openWriteChannel(file, lock); > } catch (FileNotFoundException e) { > e.printStackTrace(); > log.severe("uploadBlob_ByFile(): Error 2:" + e.toString()); > return 0; > } catch (FinalizationException e) { > e.printStackTrace(); > } catch (LockException e) { > log.severe("uploadBlob_ByFile(): Error 3:" + e.toString()); > e.printStackTrace(); > return 0; > } catch (IOException e) { > log.severe("uploadBlob_ByFile(): Error 4:" + e.toString()); > e.printStackTrace(); > return 0; > } > > ByteBuffer bb = ByteBuffer.wrap(filebytes); > > // This time we write to the channel using standard Java > try { > writeChannel.write(bb); > } catch (IOException e) { > log.severe("uploadBlob_ByFile(): Error 5:" + e.toString()); > e.printStackTrace(); > return 0; > } > > BlobKey blobKey = FileServiceFactory.getFileService().getBlobKey(file);
At this point the file has not been finalized so null will be returned. See http://code.google.com/appengine/docs/java/javadoc/com/google/appengine/api/files/FileService.html#getBlobKey(com.google.appengine.api.files.AppEngineFile) > if (blobKey == null) { > log.severe("uploadBlob_ByFile(): Error 5.1, Testing if blobKey is null > before closing channel: "); > } else { > log.info("uploadBlob_ByFile(): INFO 5.1, blobkey WORKED > !!!!!!!!!!!!!!!!! "); > } > > try { > writeChannel.close(); > } catch (IOException e) { > log.severe("uploadBlob_ByFile(): Error 5.5:" + e.toString()); > e.printStackTrace(); > } > > // Now finalize > try { > writeChannel.closeFinally(); > } catch (IllegalStateException e) { > log.severe("uploadBlob_ByFile(): Error 6:" + e.toString()); > e.printStackTrace(); > return 0; > } catch (IOException e) { > log.severe("uploadBlob_ByFile(): Error 7:" + e.toString()); > e.printStackTrace(); > return 0; > } > > blobKey = FileServiceFactory.getFileService().getBlobKey(file); > > FileSystem fileSytem = file.getFileSystem(); > String path = file.getFullPath(); > String namePart = file.getNamePart(); > > String fs = "null"; > if (fileSytem != null) { > fs = fileSytem.toString(); > } > > log.info("uploadBlob_ByFile(): Info: fileSystem: " + fs + " path=" + path > + " namePart=" + namePart + " file.toString()=" + file.toString()); > > if (blobKey == null) { > log.severe("uploadBlob_ByFile(): Error 8: blobkey is null"); > return 0; > } > //... > > } > > Brandon Donnelsonhttp://gwt-examples.googlecode.com -- You received this message because you are subscribed to the Google Groups "Google App Engine for Java" group. To post to this group, send email to google-appengine-java@googlegroups.com. To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en.