2012-04-05 71 views
0

奇怪的事情發生在這裏。當運行任何單元測試調用:單元測試非法blobKey錯誤谷歌應用程序引擎1.6.4

FileService fileService = FileServiceFactory.getFileService(); 
writeChannel = fileService.openWriteChannel(file, lock); 
writeChannel.closeFinally(); 

我得到以下例外 - 該代碼運行正常單元測試之外,在其他工作站 - 所以這是在Windows XP的筆記本電腦的環境問題,我被迫使用。測試運行在我的其他電腦和筆記本電腦精(運行Ubuntu)

java.lang.RuntimeException: illegal blobKey: pIONuF92LGIK8TV41YSSdQ 
    at com.google.appengine.api.blobstore.dev.FileBlobStorage.getFileForBlob(FileBlobStorage.java:95) 
    at com.google.appengine.api.blobstore.dev.FileBlobStorage.storeBlob(FileBlobStorage.java:45) 
    at com.google.appengine.api.files.dev.BlobstoreFile.getOutputStream(BlobstoreFile.java:225) 
    at com.google.appengine.api.files.dev.FileMetadata.setFinalized(FileMetadata.java:97) 
    at com.google.appengine.api.files.dev.BlobstoreFile.setFinalized(BlobstoreFile.java:212) 
    at com.google.appengine.api.files.dev.LocalFileService.close(LocalFileService.java:334) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
    at com.google.appengine.tools.development.ApiProxyLocalImpl$AsyncApiCall.callInternal(ApiProxyLocalImpl.java:498) 
    at com.google.appengine.tools.development.ApiProxyLocalImpl$AsyncApiCall.call(ApiProxyLocalImpl.java:452) 
    at com.google.appengine.tools.development.ApiProxyLocalImpl$AsyncApiCall.call(ApiProxyLocalImpl.java:430) 
    at java.util.concurrent.Executors$PrivilegedCallable$1.run(Unknown Source) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.util.concurrent.Executors$PrivilegedCallable.call(Unknown Source) 
    at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source) 
    at java.util.concurrent.FutureTask.run(Unknown Source) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) 
    at java.lang.Thread.run(Unknown Source) 
+0

我剛剛確認工作站與錯誤的區別。我正在使用谷歌應用程序引擎1.6.4的SDK - 其他的基石1.6.3.1。這是1.6.4我會報告的錯誤。 – bsautner 2012-04-05 14:45:11

+0

報告的錯誤:http://code.google.com/p/googleappengine/issues/detail?id = 7291 – bsautner 2012-04-05 14:50:50

回答

3

您可以通過添加一個LocalBlobstoreServiceTestConfig()到您的LocalServiceTestHelper設置避免這種情況。我將它添加到失敗的測試類後纔開始工作。

我不確定這是否確實是一個錯誤。我認爲這個bug是在SDK未提供適當的測試設置配置的情況下提供本地blobstore仿真時發生的。

+0

同意:http://code.google.com/p/googleappengine/issues/detail?id=7291 – bsautner 2012-04-23 12:32:55