{ "id": "162464", "key": "TIMOB-23744", "fields": { "issuetype": { "id": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "subtask": false }, "project": { "id": "10153", "key": "TIMOB", "name": "Titanium SDK/CLI", "projectCategory": { "id": "10100", "description": "Titanium and related SDKs used in application development", "name": "Client" } }, "fixVersions": [ { "id": "16980", "description": "New V8", "name": "Release 6.0.0", "archived": false, "released": true, "releaseDate": "2016-11-15" } ], "resolution": { "id": "1", "description": "A fix for this issue is checked into the tree and tested.", "name": "Fixed" }, "resolutiondate": "2016-08-10T13:09:14.000+0000", "created": "2016-08-08T18:14:28.000+0000", "priority": { "name": "Critical", "id": "1" }, "labels": [], "versions": [ { "id": "16980", "description": "New V8", "name": "Release 6.0.0", "archived": false, "released": true, "releaseDate": "2016-11-15" } ], "issuelinks": [ { "id": "52336", "type": { "id": "10001", "name": "Cloners", "inward": "is cloned into", "outward": "is cloned from" }, "inwardIssue": { "id": "162465", "key": "TIMOB-23745", "fields": { "summary": "Android: Crash using Math.random", "status": { "description": "The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.", "name": "Closed", "id": "6", "statusCategory": { "id": 3, "key": "done", "colorName": "green", "name": "Done" } }, "priority": { "name": "Critical", "id": "1" }, "issuetype": { "id": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "subtask": false } } } }, { "id": "52366", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "outwardIssue": { "id": "162509", "key": "TIMOB-23753", "fields": { "summary": "Android: Crash when adding Ti.Network event listener", "status": { "description": "The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.", "name": "Closed", "id": "6", "statusCategory": { "id": 3, "key": "done", "colorName": "green", "name": "Done" } }, "priority": { "name": "Critical", "id": "1" }, "issuetype": { "id": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "subtask": false } } } }, { "id": "52368", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "outwardIssue": { "id": "159984", "key": "TIMOB-23310", "fields": { "summary": "Android: Upgrade v8 and rebuild it with NDK 11", "status": { "description": "The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.", "name": "Closed", "id": "6", "statusCategory": { "id": 3, "key": "done", "colorName": "green", "name": "Done" } }, "priority": { "name": "High", "id": "2" }, "issuetype": { "id": "7", "description": "gh.issue.story.desc", "name": "Story", "subtask": false } } } } ], "assignee": { "name": "cwilliams", "key": "cwilliams", "displayName": "Christopher Williams", "active": true, "timeZone": "America/New_York" }, "updated": "2016-09-15T23:59:53.000+0000", "status": { "description": "The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.", "name": "Closed", "id": "6", "statusCategory": { "id": 3, "key": "done", "colorName": "green", "name": "Done" } }, "components": [ { "id": "10202", "name": "Android", "description": "Android Platform" } ], "description": "When accessing Ti.Android.R values in your app, it causes a crash. Something as simple as:\r\n{code:javascript}\r\nconsole.log(Ti.Android.R.anim);\r\n{code}\r\n\r\n{code}\r\n[INFO] : art: art/runtime/runtime.cc:289] native: #11 pc 002b913a /data/app/com.appcelerator.sample.ti520-1/lib/x86/libkroll-v8.so (_JNIEnv::CallObjectMethod(_jobject*, _jmethodID*, ...)+42)\r\n[INFO] : art: art/runtime/runtime.cc:289] native: #12 pc 0030c0a7 /data/app/com.appcelerator.sample.ti520-1/lib/x86/libkroll-v8.so (titanium::RProxy::interceptor(v8::Local, v8::PropertyCallbackInfo const&)+215)\r\n[INFO] : art: art/runtime/runtime.cc:289] native: #13 pc 00853563 /data/app/com.appcelerator.sample.ti520-1/lib/x86/libkroll-v8.so (v8::internal::PropertyCallbackArguments::Call(void (*)(v8::Local, v8::PropertyCallbackInfo const&), v8::internal::Handle)+179)\r\n[INFO] : art: art/runtime/runtime.cc:289] native: #14 pc 008d3669 /data/app/com.appcelerator.sample.ti520-1/lib/x86/libkroll-v8.so (v8::internal::JSObject::GetPropertyAttributesWithInterceptor(v8::internal::LookupIterator*)+1353)\r\n[INFO] : art: art/runtime/runtime.cc:289] native: #15 pc 008f3cf3 /data/app/com.appcelerator.sample.ti520-1/lib/x86/libkroll-v8.so (v8::internal::JSReceiver::GetPropertyAttributes(v8::internal::LookupIterator*)+67)\r\n[INFO] : art: art/runtime/runtime.cc:289] native: #16 pc 008f4cef /data/app/com.appcelerator.sample.ti520-1/lib/x86/libkroll-v8.so (v8::internal::JSReceiver::GetOwnPropertyDescriptor(v8::internal::LookupIterator*, v8::internal::PropertyDescriptor*)+127)\r\n[INFO] : art: art/runtime/runtime.cc:289] native: #17 pc 008fdbf6 /data/app/com.appcelerator.sample.ti520-1/lib/x86/libkroll-v8.so (v8::internal::JSReceiver::OrdinaryDefineOwnProperty(v8::internal::LookupIterator*, v8::internal::PropertyDescriptor*, v8::internal::Object::ShouldThrow)+86)\r\n[INFO] : art: art/runtime/runtime.cc:289] native: #18 pc 008fdd61 /data/app/com.appcelerator.sample.ti520-1/lib/x86/libkroll-v8.so (v8::internal::JSReceiver::OrdinaryDefineOwnProperty(v8::internal::Isolate*, v8::internal::Handle, v8::internal::Handle, v8::internal::PropertyDescriptor*, v8::internal::Object::ShouldThrow)+209)\r\n[INFO] : art: art/runtime/runtime.cc:289] native: #19 pc 008feab0 /data/app/com.appcelerator.sample.ti520-1/lib/x86/libkroll-v8.so (v8::internal::JSReceiver::DefineOwnProperty(v8::internal::Isolate*, v8::internal::Handle, v8::internal::Handle, v8::internal::PropertyDescriptor*, v8::internal::Object::ShouldThrow)+80)\r\n[INFO] : art: art/runtime/runtime.cc:289] native: #20 pc 004d0c12 /data/app/com.appcelerator.sample.ti520-1/lib/x86/libkroll-v8.so (v8::Object::DefineOwnProperty(v8::Local, v8::Local, v8::Local, v8::PropertyAttribute)+402)\r\n[INFO] : art: art/runtime/runtime.cc:289] native: #21 pc 002c05d1 /data/app/com.appcelerator.sample.ti520-1/lib/x86/libkroll-v8.so (titanium::Proxy::proxyConstructor(v8::FunctionCallbackInfo const&)+289)\r\n[INFO] : art: art/runtime/runtime.cc:289] native: #22 pc 004e1034 /data/app/com.appcelerator.sample.ti520-1/lib/x86/libkroll-v8.so (v8::internal::FunctionCallbackArguments::Call(void (*)(v8::FunctionCallbackInfo const&))+148)\r\n[INFO] : art: art/runtime/runtime.cc:289] native: #23 pc 00540994 /data/app/com.appcelerator.sample.ti520-1/lib/x86/libkroll-v8.so (???)\r\n[INFO] : art: art/runtime/runtime.cc:289] native: #24 pc 00540eac /data/app/com.appcelerator.sample.ti520-1/lib/x86/libkroll-v8.so (???)\r\n{code}", "attachment": [], "flagged": false, "summary": "Android: Crash using Ti.Android.R values", "creator": { "name": "cwilliams", "key": "cwilliams", "displayName": "Christopher Williams", "active": true, "timeZone": "America/New_York" }, "subtasks": [], "reporter": { "name": "farfromrefuge", "key": "farfromrefuge", "displayName": "Martin Guillon", "active": false, "timeZone": "Europe/Berlin" }, "environment": null, "closedSprints": [ { "id": 685, "state": "closed", "name": "2016 Sprint 16 SDK", "startDate": "2016-07-30T00:40:02.939Z", "endDate": "2016-08-13T00:40:00.000Z", "completeDate": "2016-08-15T08:00:33.056Z", "originBoardId": 114 } ], "comment": { "comments": [ { "id": "392647", "author": { "name": "cwilliams", "key": "cwilliams", "displayName": "Christopher Williams", "active": true, "timeZone": "America/New_York" }, "body": "From comments on the Github PR: https://github.com/appcelerator/titanium_mobile/pull/8041#issuecomment-238030109\r\n\r\nLooks like this is a generic problem with \"interceptors\" with the latest V8. From that stack trace it appears that during the proxy constructor we're defining properties, and that somehow triggers the interceptor in the middle of it. The interceptor callback method tries to unwrap the proxy from he JS object and crashes doing so?\r\n\r\nI see this locally:\r\n{code}\r\n08-08 14:10:14.178 1201-1201/? A/DEBUG: *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***\r\n08-08 14:10:14.178 1201-1201/? A/DEBUG: Build fingerprint: 'Android/sdk_google_phone_x86_64/generic_x86_64:6.0/MASTER/2872745:userdebug/test-keys'\r\n08-08 14:10:14.178 1201-1201/? A/DEBUG: Revision: '0'\r\n08-08 14:10:14.178 1201-1201/? A/DEBUG: ABI: 'x86'\r\n08-08 14:10:14.178 1201-1201/? A/DEBUG: pid: 2852, tid: 2852, name: dsg.sdfg >>> dsg.sdfg <<<\r\n08-08 14:10:14.185 1201-1201/? A/DEBUG: signal 4 (SIGILL), code 2 (ILL_ILLOPN), fault addr 0xe36920e9\r\n08-08 14:10:14.193 1201-1201/? A/DEBUG: eax 00000054 ebx e397ad60 ecx 00000b24 edx 00000000\r\n08-08 14:10:14.193 1201-1201/? A/DEBUG: esi eb9e8000 edi 00000003\r\n08-08 14:10:14.193 1201-1201/? A/DEBUG: xcs 00000023 xds 0000002b xes 0000002b xfs 00000007 xss 0000002b\r\n08-08 14:10:14.194 1201-1201/? A/DEBUG: eip e36920e9 ebp 2e730c3d esp fff5b8f0 flags 00210202\r\n08-08 14:10:14.255 1201-1201/? A/DEBUG: backtrace:\r\n08-08 14:10:14.255 1201-1201/? A/DEBUG: #00 pc 00bc80e9 /data/app/dsg.sdfg-1/lib/x86/libkroll-v8.so (v8::base::OS::Abort()+25)\r\n08-08 14:10:14.261 1201-1201/? A/DEBUG: #01 pc 002b62a2 /data/app/dsg.sdfg-1/lib/x86/libkroll-v8.so\r\n08-08 14:10:14.261 1201-1201/? A/DEBUG: #02 pc 004b7af8 /data/app/dsg.sdfg-1/lib/x86/libkroll-v8.so (v8::Utils::ReportApiFailure(char const*, char const*)+88)\r\n08-08 14:10:14.261 1201-1201/? A/DEBUG: #03 pc 004c69ad /data/app/dsg.sdfg-1/lib/x86/libkroll-v8.so (v8::Object::SlowGetAlignedPointerFromInternalField(int)+205)\r\n08-08 14:10:14.261 1201-1201/? A/DEBUG: #04 pc 0030d387 /data/app/dsg.sdfg-1/lib/x86/libkroll-v8.so (titanium::RProxy::interceptor(v8::Local, v8::PropertyCallbackInfo const&)+727)\r\n08-08 14:10:14.261 1201-1201/? A/DEBUG: #05 pc 0085c4c3 /data/app/dsg.sdfg-1/lib/x86/libkroll-v8.so (v8::internal::PropertyCallbackArguments::Call(void (*)(v8::Local, v8::PropertyCallbackInfo const&), v8::internal::Handle)+179)\r\n08-08 14:10:14.262 1201-1201/? A/DEBUG: #06 pc 008dc5c9 /data/app/dsg.sdfg-1/lib/x86/libkroll-v8.so (v8::internal::JSObject::GetPropertyAttributesWithInterceptor(v8::internal::LookupIterator*)+1353)\r\n08-08 14:10:14.262 1201-1201/? A/DEBUG: #07 pc 008fcc53 /data/app/dsg.sdfg-1/lib/x86/libkroll-v8.so (v8::internal::JSReceiver::GetPropertyAttributes(v8::internal::LookupIterator*)+67)\r\n08-08 14:10:14.262 1201-1201/? A/DEBUG: #08 pc 008fdc4f /data/app/dsg.sdfg-1/lib/x86/libkroll-v8.so (v8::internal::JSReceiver::GetOwnPropertyDescriptor(v8::internal::LookupIterator*, v8::internal::PropertyDescriptor*)+127)\r\n08-08 14:10:14.262 1201-1201/? A/DEBUG: #09 pc 00906b56 /data/app/dsg.sdfg-1/lib/x86/libkroll-v8.so (v8::internal::JSReceiver::OrdinaryDefineOwnProperty(v8::internal::LookupIterator*, v8::internal::PropertyDescriptor*, v8::internal::Object::ShouldThrow)+86)\r\n08-08 14:10:14.262 1201-1201/? A/DEBUG: #10 pc 00906cc1 /data/app/dsg.sdfg-1/lib/x86/libkroll-v8.so (v8::internal::JSReceiver::OrdinaryDefineOwnProperty(v8::internal::Isolate*, v8::internal::Handle, v8::internal::Handle, v8::internal::PropertyDescriptor*, v8::internal::Object::ShouldThrow)+209)\r\n08-08 14:10:14.262 1201-1201/? A/DEBUG: #11 pc 00907a10 /data/app/dsg.sdfg-1/lib/x86/libkroll-v8.so (v8::internal::JSReceiver::DefineOwnProperty(v8::internal::Isolate*, v8::internal::Handle, v8::internal::Handle, v8::internal::PropertyDescriptor*, v8::internal::Object::ShouldThrow)+80)\r\n08-08 14:10:14.262 1201-1201/? A/DEBUG: #12 pc 004d9b72 /data/app/dsg.sdfg-1/lib/x86/libkroll-v8.so (v8::Object::DefineOwnProperty(v8::Local, v8::Local, v8::Local, v8::PropertyAttribute)+402)\r\n08-08 14:10:14.262 1201-1201/? A/DEBUG: #13 pc 002c1675 /data/app/dsg.sdfg-1/lib/x86/libkroll-v8.so (titanium::Proxy::proxyConstructor(v8::FunctionCallbackInfo const&)+229)\r\n08-08 14:10:14.262 1201-1201/? A/DEBUG: #14 pc 004e9f94 /data/app/dsg.sdfg-1/lib/x86/libkroll-v8.so (v8::internal::FunctionCallbackArguments::Call(void (*)(v8::FunctionCallbackInfo const&))+148)\r\n08-08 14:10:14.262 1201-1201/? A/DEBUG: #15 pc 005498f4 /data/app/dsg.sdfg-1/lib/x86/libkroll-v8.so\r\n08-08 14:10:14.262 1201-1201/? A/DEBUG: #16 pc 00549e0c /data/app/dsg.sdfg-1/lib/x86/libkroll-v8.so\r\n08-08 14:10:14.263 1201-1201/? A/DEBUG: #17 pc 0000007d \r\n08-08 14:10:14.263 1201-1201/? A/DEBUG: #18 pc 00015288 \r\n08-08 14:10:14.263 1201-1201/? A/DEBUG: #19 pc 000153fd \r\n08-08 14:10:14.263 1201-1201/? A/DEBUG: #20 pc 00011382 \r\n08-08 14:10:14.263 1201-1201/? A/DEBUG: #21 pc 007ab4dc /data/app/dsg.sdfg-1/lib/x86/libkroll-v8.so\r\n08-08 14:10:14.264 1201-1201/? A/DEBUG: #22 pc 007ab9e7 /data/app/dsg.sdfg-1/lib/x86/libkroll-v8.so (v8::internal::Execution::New(v8::internal::Isolate*, v8::internal::Handle, v8::internal::Handle, int, v8::internal::Handle*)+71)\r\n08-08 14:10:14.264 1201-1201/? A/DEBUG: #23 pc 004deefc /data/app/dsg.sdfg-1/lib/x86/libkroll-v8.so (v8::Function::NewInstance(v8::Local, int, v8::Local*) const+316)\r\n08-08 14:10:14.264 1201-1201/? A/DEBUG: #24 pc 004df265 /data/app/dsg.sdfg-1/lib/x86/libkroll-v8.so (v8::Function::NewInstance(int, v8::Local*) const+85)\r\n08-08 14:10:14.264 1201-1201/? A/DEBUG: #25 pc 002c2d85 /data/app/dsg.sdfg-1/lib/x86/libkroll-v8.so (titanium::ProxyFactory::createV8Proxy(v8::Isolate*, _jclass*, _jobject*)+325)\r\n08-08 14:10:14.264 1201-1201/? A/DEBUG: #26 pc 002c672b /data/app/dsg.sdfg-1/lib/x86/libkroll-v8.so (titanium::TypeConverter::javaObjectToJsValue(v8::Isolate*, _JNIEnv*, _jobject*)+1115)\r\n08-08 14:10:14.267 1201-1201/? A/DEBUG: #27 pc 00335f80 /data/app/dsg.sdfg-1/lib/x86/libkroll-v8.so (titanium::AndroidModule::getter_R(v8::Local, v8::PropertyCallbackInfo const&)+272)\r\n08-08 14:10:14.267 1201-1201/? A/DEBUG: #28 pc 0085c4c3 /data/app/dsg.sdfg-1/lib/x86/libkroll-v8.so (v8::internal::PropertyCallbackArguments::Call(void (*)(v8::Local, v8::PropertyCallbackInfo const&), v8::internal::Handle)+179)\r\n08-08 14:10:14.267 1201-1201/? A/DEBUG: #29 pc 008bc5aa /data/app/dsg.sdfg-1/lib/x86/libkroll-v8.so (v8::internal::Object::GetPropertyWithAccessor(v8::internal::LookupIterator*)+458)\r\n08-08 14:10:14.267 1201-1201/? A/DEBUG: #30 pc 008fe4f3 /data/app/dsg.sdfg-1/lib/x86/libkroll-v8.so (v8::internal::Object::GetProperty(v8::internal::LookupIterator*)+371)\r\n08-08 14:10:14.267 1201-1201/? A/DEBUG: #31 pc 0085f931 /data/app/dsg.sdfg-1/lib/x86/libkroll-v8.so (v8::internal::LoadIC::Load(v8::internal::Handle, v8::internal::Handle)+177)\r\n08-08 14:10:14.267 1201-1201/? A/DEBUG: #32 pc 0086b125 /data/app/dsg.sdfg-1/lib/x86/libkroll-v8.so (v8::internal::Runtime_LoadIC_Miss(int, v8::internal::Object**, v8::internal::Isolate*)+1893)\r\n08-08 14:10:14.268 1201-1201/? A/DEBUG: #33 pc 0000007d \r\n08-08 14:10:14.268 1201-1201/? A/DEBUG: #34 pc 0006ad09 \r\n08-08 14:10:14.268 1201-1201/? A/DEBUG: #35 pc 0001533d \r\n08-08 14:10:14.268 1201-1201/? A/DEBUG: #36 pc 000112a2 \r\n08-08 14:10:14.268 1201-1201/? A/DEBUG: #37 pc 007ab4dc /data/app/dsg.sdfg-1/lib/x86/libkroll-v8.so\r\n08-08 14:10:14.268 1201-1201/? A/DEBUG: #38 pc 007ab7e8 /data/app/dsg.sdfg-1/lib/x86/libkroll-v8.so (v8::internal::Execution::Call(v8::internal::Isolate*, v8::internal::Handle, v8::internal::Handle, int, v8::internal::Handle*)+120)\r\n08-08 14:10:14.268 1201-1201/? A/DEBUG: #39 pc 004e19ae /data/app/dsg.sdfg-1/lib/x86/libkroll-v8.so (v8::Script::Run(v8::Local)+382)\r\n08-08 14:10:14.269 1201-1201/? A/DEBUG: #40 pc 004e1cb9 /data/app/dsg.sdfg-1/lib/x86/libkroll-v8.so (v8::Script::Run()+73)\r\n08-08 14:10:14.269 1201-1201/? A/DEBUG: #41 pc 002d0af6 /data/app/dsg.sdfg-1/lib/x86/libkroll-v8.so (void titanium::WrappedScript::EvalMachine<(titanium::WrappedScript::EvalInputFlags)0, (titanium::WrappedScript::EvalContextFlags)0, (titanium::WrappedScript::EvalOutputFlags)0>(v8::FunctionCallbackInfo const&)+262)\r\n08-08 14:10:14.269 1201-1201/? A/DEBUG: #42 pc 002d0c6b /data/app/dsg.sdfg-1/lib/x86/libkroll-v8.so (titanium::WrappedScript::CompileRunInThisContext(v8::FunctionCallbackInfo const&)+27)\r\n08-08 14:10:14.269 1201-1201/? A/DEBUG: #43 pc 004e9f94 /data/app/dsg.sdfg-1/lib/x86/libkroll-v8.so (v8::internal::FunctionCallbackArguments::Call(void (*)(v8::FunctionCallbackInfo const&))+148)\r\n08-08 14:10:14.270 1201-1201/? A/DEBUG: #44 pc 00548dbb /data/app/dsg.sdfg-1/lib/x86/libkroll-v8.so\r\n08-08 14:10:14.270 1201-1201/? A/DEBUG: #45 pc 005495cc /data/app/dsg.sdfg-1/lib/x86/libkroll-v8.so\r\n08-08 14:10:14.270 1201-1201/? A/DEBUG: #46 pc 0000007d \r\n08-08 14:10:14.270 1201-1201/? A/DEBUG: #47 pc 0006a51e \r\n08-08 14:10:14.270 1201-1201/? A/DEBUG: #48 pc 000681d2 \r\n08-08 14:10:14.270 1201-1201/? A/DEBUG: #49 pc 000666d6 \r\n08-08 14:10:14.270 1201-1201/? A/DEBUG: #50 pc 0001533d \r\n08-08 14:10:14.270 1201-1201/? A/DEBUG: #51 pc 000112a2 \r\n08-08 14:10:14.270 1201-1201/? A/DEBUG: #52 pc 007ab4dc /data/app/dsg.sdfg-1/lib/x86/libkroll-v8.so\r\n08-08 14:10:14.270 1201-1201/? A/DEBUG: #53 pc 007ab7e8 /data/app/dsg.sdfg-1/lib/x86/libkroll-v8.so (v8::internal::Execution::Call(v8::internal::Isolate*, v8::internal::Handle, v8::internal::Handle, int, v8::internal::Handle*)+120)\r\n08-08 14:10:14.271 1201-1201/? A/DEBUG: #54 pc 004dfd43 /data/app/dsg.sdfg-1/lib/x86/libkroll-v8.so (v8::Function::Call(v8::Local, v8::Local, int, v8::Local*)+323)\r\n08-08 14:10:14.271 1201-1201/? A/DEBUG: #55 pc 002cab95 /data/app/dsg.sdfg-1/lib/x86/libkroll-v8.so (Java_org_appcelerator_kroll_runtime_v8_V8Runtime_nativeRunModule+389)\r\n08-08 14:10:14.271 1201-1201/? A/DEBUG: #56 pc 007e5ca0 /data/app/dsg.sdfg-1/oat/x86/base.odex (offset 0x4f6000)\r\n{code}", "updateAuthor": { "name": "cwilliams", "key": "cwilliams", "displayName": "Christopher Williams", "active": true, "timeZone": "America/New_York" }, "created": "2016-08-08T18:16:49.000+0000", "updated": "2016-08-08T18:16:49.000+0000" }, { "id": "392649", "author": { "name": "cwilliams", "key": "cwilliams", "displayName": "Christopher Williams", "active": true, "timeZone": "America/New_York" }, "body": "Looks to be an issue when we're constructing objects with order of when things happen. Basically we need to ensure we've wrapped the JS object in a C++ Proxy object and then that we create a Java object to pair with the JS object - before we ever try to call any methods on this proxy. I can move the Proxy wrapping up over the DefineOwnProperty call, to fix the Proxy::unwrap() call failing, but then the JNI invocation on the interceptor fails because the Java object is null. \r\n\r\nSo I can: eliminate the call to DefineOwnPrperty to define the internal _properties object in every proxy instance. Then I guess I'd have to modify any code that used that to assume it may not exist and to initialize it first. Or I can make the interceptor code know to check for a null Java object and return early.", "updateAuthor": { "name": "cwilliams", "key": "cwilliams", "displayName": "Christopher Williams", "active": true, "timeZone": "America/New_York" }, "created": "2016-08-08T18:39:23.000+0000", "updated": "2016-08-08T18:39:23.000+0000" }, { "id": "392653", "author": { "name": "cwilliams", "key": "cwilliams", "displayName": "Christopher Williams", "active": true, "timeZone": "America/New_York" }, "body": "https://github.com/appcelerator/titanium_mobile/pull/8195", "updateAuthor": { "name": "cwilliams", "key": "cwilliams", "displayName": "Christopher Williams", "active": true, "timeZone": "America/New_York" }, "created": "2016-08-08T18:59:05.000+0000", "updated": "2016-08-08T18:59:05.000+0000" }, { "id": "392664", "author": { "name": "cwilliams", "key": "cwilliams", "displayName": "Christopher Williams", "active": true, "timeZone": "America/New_York" }, "body": "Once the PR is confirmed/merged, it needs to be cherry-picked to master branch.", "updateAuthor": { "name": "cwilliams", "key": "cwilliams", "displayName": "Christopher Williams", "active": true, "timeZone": "America/New_York" }, "created": "2016-08-08T20:47:45.000+0000", "updated": "2016-08-08T20:47:45.000+0000" }, { "id": "396308", "author": { "name": "lchoudhary", "key": "lchoudhary", "displayName": "Lokesh Choudhary", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Verified the fix.\r\n\r\n{{Ti.Android.R}} values do not cause crash.\r\nClosing.\r\n\r\nEnvironment:\r\nAppc Studio : 4.8.0.201609061702\r\nTi SDK : 6.0.0.v20160915125929\r\nTi CLI : 5.0.9\r\nAlloy : 1.9.1\r\nMAC El Capitan : 10.11.6\r\nAppc NPM : 4.2.8-6\r\nAppc CLI : 6.0.0-44\r\nNode: 4.4.4\r\nNexus 6 - Android 6.0.1", "updateAuthor": { "name": "lchoudhary", "key": "lchoudhary", "displayName": "Lokesh Choudhary", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2016-09-15T23:59:37.000+0000", "updated": "2016-09-15T23:59:37.000+0000" } ], "maxResults": 5, "total": 5, "startAt": 0 } } }