{ "id": "84149", "key": "TIMOB-6815", "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": "12093", "description": "", "name": "Sprint 2012-01", "archived": true, "released": true, "releaseDate": "2012-01-15" }, { "id": "12593", "name": "Release 2.0.0", "archived": false, "released": true, "releaseDate": "2012-03-30" }, { "id": "12677", "description": "Release 1.8 Service Pack 1", "name": "Release 1.8.1", "archived": true, "released": true, "releaseDate": "2012-01-31" } ], "resolution": { "id": "1", "description": "A fix for this issue is checked into the tree and tested.", "name": "Fixed" }, "resolutiondate": "2012-02-10T00:15:02.000+0000", "created": "2011-12-21T10:17:30.000+0000", "priority": { "name": "High", "id": "2" }, "labels": [ "module_module", "qe-testadded" ], "versions": [ { "id": "12580", "description": "Dual Runtime 1.8.0", "name": "Release 1.8.0.1", "archived": true, "released": true, "releaseDate": "2011-12-22" } ], "issuelinks": [], "assignee": { "name": "opiecyrus", "key": "opiecyrus", "displayName": "Opie Cyrus", "active": true, "timeZone": "America/Chicago" }, "updated": "2012-02-10T00:15: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": "If you have a proxy class in your module and then you subclass that proxy class with another and both are marked as 'creatableInModule', when you create an instance of the derived proxy class in your JavaScript it will actually create an instance of the base class instead of the derived class. This works correctly on V8 but fails on Rhino.\r\n\r\nBase Class:\r\n{code}\r\n@Kroll.proxy(creatableInModule = HarnessModule.class)\r\npublic class LifeCycleProxy extends KrollProxy\r\n{\r\n\tpublic LifeCycleProxy()\r\n\t{\r\n\t\tsuper();\r\n\t\tLog.e(\"BUGBUG\", \"LifeCycleProxy\");\r\n\t}\r\n}\r\n{code}\r\n\r\nDerived Class:\r\n{code}\r\n@Kroll.proxy(creatableInModule = HarnessModule.class)\r\npublic class KrollDemoProxy extends LifeCycleProxy\r\n{\r\n\tpublic KrollDemoProxy()\r\n\t{\r\n\t\tsuper();\r\n\t\tLog.e(\"BUGBUG\", \"KrollDemoProxy\");\r\n\t}\r\n}\r\n{code}\r\n\r\nJavaScript code:\r\n{code}\r\nTi.API.info(\"Creating Kroll Demo\");\r\nharness.createKrollDemo();\r\n\r\nTi.API.info(\"Creating LifeCycle\");\r\nharness.createLifeCycle();\r\n{code}\r\n\r\nThis will output the following sequence on Rhino:\r\n{code}\r\nCreating Kroll Demo\r\nLifeCycleProxy\r\nCreating LifeCycle\r\nLifeCycleProxy\r\n{code}\r\n\r\nBut the correct output on V8:\r\n{code}\r\nCreating Kroll Demo\r\nLifeCycleProxy\r\nKrollDemoProxy\r\nCreating LifeCycle\r\nLifeCycleProxy\r\n{code}", "attachment": [ { "id": "24805", "filename": "harness.zip", "author": { "name": "jenglish", "key": "jenglish", "displayName": "Jeff English", "active": true, "timeZone": "America/Chicago" }, "created": "2011-12-21T10:17:54.000+0000", "size": 23684, "mimeType": "application/zip" }, { "id": "24924", "filename": "ti.harness-android-0.1.zip", "author": { "name": "jenglish", "key": "jenglish", "displayName": "Jeff English", "active": true, "timeZone": "America/Chicago" }, "created": "2012-01-04T10:47:52.000+0000", "size": 34417, "mimeType": "application/zip" } ], "flagged": false, "summary": "Android: Modules: Rhino: Base proxy created instead of derived proxy", "creator": { "name": "jenglish", "key": "jenglish", "displayName": "Jeff English", "active": true, "timeZone": "America/Chicago" }, "subtasks": [], "reporter": { "name": "jenglish", "key": "jenglish", "displayName": "Jeff English", "active": true, "timeZone": "America/Chicago" }, "environment": "Titanium SDK 1.8.0.1 Rhino\r\n", "comment": { "comments": [ { "id": "176842", "author": { "name": "jenglish", "key": "jenglish", "displayName": "Jeff English", "active": true, "timeZone": "America/Chicago" }, "body": "Sample module that demonstrates the issue", "updateAuthor": { "name": "jenglish", "key": "jenglish", "displayName": "Jeff English", "active": true, "timeZone": "America/Chicago" }, "created": "2011-12-21T10:17:54.000+0000", "updated": "2011-12-21T10:17:54.000+0000" }, { "id": "177982", "author": { "name": "jenglish", "key": "jenglish", "displayName": "Jeff English", "active": true, "timeZone": "America/Chicago" }, "body": "Module built with TiSDK 1.8.0.1", "updateAuthor": { "name": "jenglish", "key": "jenglish", "displayName": "Jeff English", "active": true, "timeZone": "America/Chicago" }, "created": "2012-01-04T10:47:52.000+0000", "updated": "2012-01-04T10:47:52.000+0000" }, { "id": "179112", "author": { "name": "wluu", "key": "wluu", "displayName": "Wilson Luu", "active": false, "timeZone": "America/Los_Angeles" }, "body": "Closing bug. Verified fix on:\r\n\r\nSDK build: 1.9.0.v20120112104633\r\nRuntime: V8, Rhino\r\nTitanium Studio, build: 1.0.8.201201111843\r\nDevice: Droid 3 (2.3.4)\r\n\r\nNote to QE: When testing, attached module or module from scratch are valid tests for this bug.", "updateAuthor": { "name": "wluu", "key": "wluu", "displayName": "Wilson Luu", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2012-01-12T13:22:47.000+0000", "updated": "2012-01-12T13:22:47.000+0000" } ], "maxResults": 4, "total": 4, "startAt": 0 } } }