{ "id": "84998", "key": "TIMOB-7252", "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": "12095", "description": "", "name": "Sprint 2012-03", "archived": true, "released": true, "releaseDate": "2012-02-12" }, { "id": "13070", "description": "Release 1.8 Service Pack 2", "name": "Release 1.8.2", "archived": true, "released": true, "releaseDate": "2012-02-29" } ], "resolution": { "id": "2", "description": "The problem described is an issue which will never be fixed.", "name": "Won't Fix" }, "resolutiondate": "2013-08-01T21:00:15.000+0000", "created": "2012-01-16T15:25:27.000+0000", "priority": { "name": "High", "id": "2" }, "labels": [ "module_build", "qe-ios11612", "qe-nfc", "qe-testadded" ], "versions": [], "issuelinks": [], "assignee": { "name": "billdawson", "key": "billdawson", "displayName": "Bill Dawson", "active": true, "timeZone": "Europe/Berlin" }, "updated": "2017-03-20T20:32:02.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": "h3. Fail Case / Test Case\r\n\r\n* Create any Titanium app (does not need to be based on a template).\r\n* Select Rhino as the runtime.\r\n* Enable debug logcat messages by adding {{true}} to tiapp.xml.\r\n* Launch the app to emulator or device, it does not matter.\r\n* Back out of the app.\r\n* Check the logcat. In the fail case, you'll see a ton (literally thousands?) of \"VFY\" related messages have scrolled by. When testing the fix, you should not see these, but you should see some \"dispose()\" messages (those messages only appear if ti.android.debug is set to true).\r\n\r\n\r\n--- ORIG DETAILS FOLLOW ---\r\n\r\nDetails: After creating a tabbed template and installing to an Android device, unexpected messages appear in the logcat after exiting the app.\r\n\r\nSteps to reproduce:\r\n1. Create a Tabbed Application using the project template wizard\r\n2. Make sure runtime is set to Rhino\r\n3. Install to an Android device\r\n4. After app is launched, press the back button\r\n\r\nActual: Unexpected Warning, Debug, and Error messages appear in the logcat. See attachment.\r\nExpected: Unexpected messages should not appear.\r\n\r\nNote: To repeatedly reproduce bug on the same device, Force Stop the app and relaunch.", "attachment": [ { "id": "25081", "filename": "log.txt", "author": { "name": "wluu", "key": "wluu", "displayName": "Wilson Luu", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2012-01-16T15:25:27.000+0000", "size": 68886, "mimeType": "text/plain" } ], "flagged": false, "summary": "Android: Rhino apps print thousands of VFY logcat messages when backed-out of", "creator": { "name": "wluu", "key": "wluu", "displayName": "Wilson Luu", "active": false, "timeZone": "America/Los_Angeles" }, "subtasks": [], "reporter": { "name": "wluu", "key": "wluu", "displayName": "Wilson Luu", "active": false, "timeZone": "America/Los_Angeles" }, "environment": "Titanium Studio, build: 1.0.8.201201131907\r\nSDK build: 1.8.0.1\r\nRuntime: Rhino\r\nOS: Windows XP, Ubuntu 10.04\r\n\r\n--- Updated by bill 1/31/2012 ---\r\nAlso OS X. Happens with production Titanium 1.8.1 and master branch 1.9.0 as well.", "comment": { "comments": [ { "id": "179505", "author": { "name": "wluu", "key": "wluu", "displayName": "Wilson Luu", "active": false, "timeZone": "America/Los_Angeles" }, "body": "This bug seems to occur for Single Window Template and Master/Detail Template as well.", "updateAuthor": { "name": "wluu", "key": "wluu", "displayName": "Wilson Luu", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2012-01-16T17:04:49.000+0000", "updated": "2012-01-16T17:04:49.000+0000" }, { "id": "179557", "author": { "name": "kwhinnery", "key": "kwhinnery", "displayName": "Kevin Whinnery", "active": true, "timeZone": "America/Chicago" }, "body": "This will be a platform issue - the mobile SDK is looking for modules that should not be included in the build. All the usual suspects for \"unneeded\" modules are there - Contacts, Facebook, etc. - none of them are used in the templates.\r\n\r\nThe fix for this will likely be in the logic which deals with these \"optional\" modules.", "updateAuthor": { "name": "kwhinnery", "key": "kwhinnery", "displayName": "Kevin Whinnery", "active": true, "timeZone": "America/Chicago" }, "created": "2012-01-17T09:10:37.000+0000", "updated": "2012-01-17T09:10:37.000+0000" }, { "id": "179559", "author": { "name": "ingo", "key": "ingo", "displayName": "Ingo Muschenetz", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Neeraj...appears to be a Mobile platform issue. Assigning to you so you so you can decide how you'd like to proceed.", "updateAuthor": { "name": "ingo", "key": "ingo", "displayName": "Ingo Muschenetz", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2012-01-17T09:14:43.000+0000", "updated": "2012-01-17T09:14:43.000+0000" }, { "id": "181267", "author": { "name": "billdawson", "key": "billdawson", "displayName": "Bill Dawson", "active": true, "timeZone": "Europe/Berlin" }, "body": "Doesn't happen on OSX with Studio 1.0.8.201201262211 and production 1.8.1 mobile sdk. Trying Ubuntu ...", "updateAuthor": { "name": "billdawson", "key": "billdawson", "displayName": "Bill Dawson", "active": true, "timeZone": "Europe/Berlin" }, "created": "2012-01-31T14:54:54.000+0000", "updated": "2012-01-31T14:54:54.000+0000" }, { "id": "181268", "author": { "name": "billdawson", "key": "billdawson", "displayName": "Bill Dawson", "active": true, "timeZone": "Europe/Berlin" }, "body": "Sorry, misspoke: I had forgotten to switch to Rhino. It *does* happen with production 1.8.1. Still investigating.", "updateAuthor": { "name": "billdawson", "key": "billdawson", "displayName": "Bill Dawson", "active": true, "timeZone": "Europe/Berlin" }, "created": "2012-01-31T14:57:25.000+0000", "updated": "2012-01-31T14:57:25.000+0000" }, { "id": "181396", "author": { "name": "billdawson", "key": "billdawson", "displayName": "Bill Dawson", "active": true, "timeZone": "Europe/Berlin" }, "body": "h4. Problem Description\r\n\r\nOur generated KrollGeneratedBindings.java keeps a hash of all proxy prototype classes in the Android Titanium Mobile SDK. When the runtime shuts down (i.e., backing out of the app), we run through all those prototype classes and call their static {{dispose}} methods. For many of those prototypes, the calling of the static {{dispose}} will be the first time the prototype class is used.\r\n\r\nFor example, if you're _not_ using the Facebook module in your app, then when we call {{ti.modules.titanium.facebook.FacebookModulePrototype.dispose()}}, the FacebookModulePrototype will be loaded by the class loader for the very first time. And since you're not using Facebook in your app, the Facebook module itself is not even packaged in the application. Therefore once dispose() is called the class loader will show all these VFY errors because the FacebookModulePrototype class refers to the FacebookModule class, which doesn't exist.\r\n\r\nh4. Solution Description\r\n\r\nThe solution I came up with is to keep a {{Set}} of prototypes that are actually used (instantiated) during the lifetime of the application, then when it's time to dispose (when the runtime shuts down), just call {{dispose}} on those prototype classes.", "updateAuthor": { "name": "billdawson", "key": "billdawson", "displayName": "Bill Dawson", "active": true, "timeZone": "Europe/Berlin" }, "created": "2012-02-01T14:39:05.000+0000", "updated": "2012-02-01T14:39:05.000+0000" }, { "id": "181408", "author": { "name": "billdawson", "key": "billdawson", "displayName": "Bill Dawson", "active": true, "timeZone": "Europe/Berlin" }, "body": "Pull request ready\r\n\r\nhttps://github.com/appcelerator/titanium_mobile/pull/1324", "updateAuthor": { "name": "billdawson", "key": "billdawson", "displayName": "Bill Dawson", "active": true, "timeZone": "Europe/Berlin" }, "created": "2012-02-01T15:31:29.000+0000", "updated": "2012-02-01T15:31:29.000+0000" }, { "id": "182077", "author": { "name": "mpettiford", "key": "mpettiford", "displayName": "Michael Pettiford", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Closing issue:\r\nTested with Ti Studio Build 1.0.8.201201262211\r\nTi Mobile SDK 1.9.0.v20120206101634\r\nOSX Lion\r\nAndroid emulator 2.2, Droid 3\r\n\r\nExpected behavior is shown ", "updateAuthor": { "name": "mpettiford", "key": "mpettiford", "displayName": "Michael Pettiford", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2012-02-06T12:49:30.000+0000", "updated": "2012-02-06T12:49:30.000+0000" }, { "id": "224160", "author": { "name": "prastogi", "key": "prastogi", "displayName": "Pragya Rastogi", "active": true, "timeZone": "Asia/Kolkata" }, "body": "VFY logcat messages appears for V8 and Rhino.\r\n\r\nOS: Mountain Lion OSX 10.8.2\r\nTitanium Studio, build: 3.0.0.201210172118\r\nTitanium SDK: 3.0.0.v20121017192538\r\n\r\n\r\n\r\n10-18 16:32:16.316: W/dalvikvm(1032): VFY: unable to resolve new-instance 169 (Landroid/os/StrictMode$ThreadPolicy$Builder;) in Lorg/appcelerator/kroll/common/TiFastDev;\r\n10-18 16:32:16.326: D/dalvikvm(1032): VFY: replacing opcode 0x22 at 0x0016\r\n10-18 16:32:16.326: D/dalvikvm(1032): VFY: dead code 0x0018-0025 in Lorg/appcelerator/kroll/common/TiFastDev;. (Lorg/appcelerator/kroll/KrollApplication;)V\r\n10-18 16:32:19.117: W/dalvikvm(1032): VFY: unable to resolve virtual method 5666: Lorg/appcelerator/titanium/TiBaseActivity;.getActionBar ()Landroid/app/ActionBar;\r\n10-18 16:32:19.127: D/dalvikvm(1032): VFY: replacing opcode 0x6e at 0x0013\r\n10-18 16:32:19.127: D/dalvikvm(1032): VFY: dead code 0x0016-001f in Lti/modules/titanium/ui/TabGroupProxy;.windowCreated (Lorg/appcelerator/titanium/TiBaseActivity;)V\r\n", "updateAuthor": { "name": "prastogi", "key": "prastogi", "displayName": "Pragya Rastogi", "active": true, "timeZone": "Asia/Kolkata" }, "created": "2012-10-18T11:13:37.000+0000", "updated": "2012-10-18T11:13:37.000+0000" } ], "maxResults": 11, "total": 11, "startAt": 0 } } }