I wanted to make use of the attachment feature in my app to take multiple pictures and attach them to a document. I used the same implementation as done in 333ae1d and for the first picture this works fine but taking a second picture will crash the app. To test if this issue was not on my end I tried doing the same with TodoLite and it showed the same behavior but with different exceptions.
I'd greatly appreciate a working example which can attach multiple files to one doc.
To reproduce this: take 2 pictures for the same task.
java.lang.NullPointerException
at com.couchbase.lite.Database.generateIDForRevision(Database.java:3179)
at com.couchbase.lite.Database.putRevision(Database.java:3587)
at com.couchbase.lite.Database.putRevision(Database.java:3421)
at com.couchbase.lite.Document.putProperties(Document.java:407)
at com.couchbase.lite.UnsavedRevision.save(UnsavedRevision.java:102)
at com.wgottschalg.wgcloud.fragments.StepFragment.attachImageToDoc(StepFragment.java:186)
at com.wgottschalg.wgcloud.fragments.StepFragment.onActivityResult(StepFragment.java:166)
at android.support.v4.app.FragmentActivity.onActivityResult(FragmentActivity.java:167)
at android.app.Activity.dispatchActivityResult(Activity.java:5423)
at android.app.ActivityThread.deliverResults(ActivityThread.java:3347)
at android.app.ActivityThread.handleSendResult(ActivityThread.java:3394)
at android.app.ActivityThread.access$1300(ActivityThread.java:135)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1244)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5001)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
at dalvik.system.NativeStart.main(Native Method)
com.couchbase.todolite I/dalvikvm﹕ java.lang.OutOfMemoryError:
at dalvik.system.VMRuntime.newNonMovableArray(Native Method)
at android.graphics.BitmapFactory.nativeDecodeStream(Native Method)
at android.graphics.BitmapFactory.decodeStreamInternal(BitmapFactory.java:620)
at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:596)
at android.graphics.BitmapFactory.decodeFile(BitmapFactory.java:376)
at android.graphics.BitmapFactory.decodeFile(BitmapFactory.java:402)
at com.couchbase.todolite.MainActivity$TasksFragment.onActivityResult(MainActivity.java:597)
at android.app.Activity.dispatchActivityResult(Activity.java:5427)
at android.app.ActivityThread.deliverResults(ActivityThread.java:3347)
at android.app.ActivityThread.handleSendResult(ActivityThread.java:3394)
at android.app.ActivityThread.access$1300(ActivityThread.java:135)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1244)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5001)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
at dalvik.system.NativeStart.main(Native Method)
"main" prio=5 tid=1 NATIVE
| group="main" sCount=0 dsCount=0 obj=0x418eaca8 self=0x41509480
| sysTid=1491 nice=0 sched=0/0 cgrp=apps handle=1074393428
| state=R schedstat=( 1862582770 1497209078 7331 ) utm=157 stm=29 core=0
#00 pc 0000132e /system/lib/libcorkscrew.so (unwind_backtrace_thread+29)
#01 pc 0006057a /system/lib/libdvm.so (dvmDumpNativeStack(DebugOutputTarget const*, int)+33)
#02 pc 00054570 /system/lib/libdvm.so (dvmDumpThreadEx(DebugOutputTarget const*, Thread*, bool)+395)
#03 pc 000545de /system/lib/libdvm.so (dvmDumpThread(Thread*, bool)+25)
#04 pc 00038728 /system/lib/libdvm.so
#05 pc 00040050 /system/lib/libdvm.so
#06 pc 00077788 /system/lib/libandroid_runtime.so
#07 pc 00078530 /system/lib/libandroid_runtime.so (GraphicsJNI::allocateJavaPixelRef(_JNIEnv*, SkBitmap*, SkColorTable*)+103)
#08 pc 000785ca /system/lib/libandroid_runtime.so (JavaPixelAllocator::allocPixelRef(SkBitmap*, SkColorTable*)+17)
#09 pc 0009bfd2 /system/lib/libskia.so (SkBitmap::allocPixels(SkBitmap::Allocator*, SkColorTable*)+25)
#10 pc 000ff0e8 /system/lib/libskia.so (SkJPEGImageDecoder::onDecode(SkStream*, SkBitmap*, SkImageDecoder::Mode)+327)
#11 pc 000fc5b2 /system/lib/libskia.so (SkImageDecoder::decode(SkStream*, SkBitmap*, SkBitmap::Config, SkImageDecoder::Mode)+33)
#12 pc 00075778 /system/lib/libandroid_runtime.so
#13 pc 00075924 /system/lib/libandroid_runtime.so
#14 pc 0001dbcc /system/lib/libdvm.so (dvmPlatformInvoke+112)
#15 pc 0004e042 /system/lib/libdvm.so (dvmCallJNIMethod(unsigned int const*, JValue*, Method const*, Thread*)+397)
#16 pc 00026fe0 /system/lib/libdvm.so
#17 pc 0002df9c /system/lib/libdvm.so (dvmMterpStd(Thread*)+76)
#18 pc 0002b640 /system/lib/libdvm.so (dvmInterpret(Thread*, Method const*, JValue*)+184)
#19 pc 0006078c /system/lib/libdvm.so (dvmInvokeMethod(Object*, Method const*, ArrayObject*, ArrayObject*, ClassObject*, bool)+391)
#20 pc 000686fa /system/lib/libdvm.so
#21 pc 00026fe0 /system/lib/libdvm.so
#22 pc 0002df9c /system/lib/libdvm.so (dvmMterpStd(Thread*)+76)
#23 pc 0002b640 /system/lib/libdvm.so (dvmInterpret(Thread*, Method const*, JValue*)+184)
#24 pc 000604aa /system/lib/libdvm.so (dvmCallMethodV(Thread*, Method const*, Object*, bool, JValue*, std::__va_list)+337)
#25 pc 00049c2a /system/lib/libdvm.so
#26 pc 0004d2e8 /system/lib/libandroid_runtime.so
#27 pc 0004e00e /system/lib/libandroid_runtime.so (android::AndroidRuntime::start(char const*, char const*)+353)
#28 pc 0000105a /system/bin/app_process
#29 pc 0000e410 /system/lib/libc.so (__libc_init+47)
at android.graphics.BitmapFactory.nativeDecodeStream(Native Method)
at android.graphics.BitmapFactory.decodeStreamInternal(BitmapFactory.java:620)
at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:596)
at android.graphics.BitmapFactory.decodeFile(BitmapFactory.java:376)
at android.graphics.BitmapFactory.decodeFile(BitmapFactory.java:402)
at com.couchbase.todolite.MainActivity$TasksFragment.onActivityResult(MainActivity.java:597)
at android.app.Activity.dispatchActivityResult(Activity.java:5427)
at android.app.ActivityThread.deliverResults(ActivityThread.java:3347)
at android.app.ActivityThread.handleSendResult(ActivityThread.java:3394)
at android.app.ActivityThread.access$1300(ActivityThread.java:135)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1244)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5001)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
at dalvik.system.NativeStart.main(Native Method)