{ "id": "63710", "key": "TIMOB-3078", "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": "11243", "name": "Release 1.6.0 M10", "archived": true, "released": true, "releaseDate": "2011-02-21" } ], "resolution": { "id": "1", "description": "A fix for this issue is checked into the tree and tested.", "name": "Fixed" }, "resolutiondate": "2011-04-17T02:00:51.000+0000", "created": "2011-04-15T03:36:13.000+0000", "priority": { "name": "Medium", "id": "3" }, "labels": [ "android", "defect", "lifecycle_refactor", "regression", "release-1.6.0", "reported-1.6.0" ], "versions": [], "issuelinks": [], "assignee": { "name": "billdawson", "key": "billdawson", "displayName": "Bill Dawson", "active": true, "timeZone": "Europe/Berlin" }, "updated": "2011-04-17T02:00:51.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": "{html}

Testing on 2.2 device with Titanium 1.6.0 49c5b13 (Mon Feb 7\n21:26:27 2011 -0600).

\n

Several symptoms:

\n\n
\nW/dalvikvm(10893): threadid=15: thread exiting with uncaught exception (group=0x400259f8)\nE/TiUncaughtHandler(10893): (Thread-18) [1469,48790] Sending event: exception on thread: Thread-18 msg:java.lang.NullPointerException; Titanium 1.6.0,2011/02/08 17:42,9c5b13\nE/TiUncaughtHandler(10893): java.lang.NullPointerException\nE/TiUncaughtHandler(10893):     at ti.modules.titanium.ui.widget.TiUIImageView$Loader.isNotFinalFrame(TiUIImageView.java:227)\nE/TiUncaughtHandler(10893):     at ti.modules.titanium.ui.widget.TiUIImageView$Loader.run(TiUIImageView.java:251)\nE/TiUncaughtHandler(10893):     at java.lang.Thread.run(Thread.java:1102)\nE/AndroidRuntime(10893): FATAL EXCEPTION: Thread-18\nE/AndroidRuntime(10893): java.lang.NullPointerException\nE/AndroidRuntime(10893):    at ti.modules.titanium.ui.widget.TiUIImageView$Loader.isNotFinalFrame(TiUIImageView.java:227)\nE/AndroidRuntime(10893):    at ti.modules.titanium.ui.widget.TiUIImageView$Loader.run(TiUIImageView.java:251)\nE/AndroidRuntime(10893):    at java.lang.Thread.run(Thread.java:1102)\nW/ActivityManager(   96):   Force finishing activity com.appcelerator.SmokeTest/org.appcelerator.titanium.TiActivity\n
{html}", "attachment": [ { "id": "18259", "filename": "no_images.png", "author": { "name": "billdawson", "key": "billdawson", "displayName": "Bill Dawson", "active": true, "timeZone": "Europe/Berlin" }, "created": "2011-04-15T03:36:14.000+0000", "size": 20767, "mimeType": "image/png" } ], "flagged": false, "summary": "Android: Bugs in KS Base UI - Views - Image View - Animated test", "creator": { "name": "billdawson", "key": "billdawson", "displayName": "Bill Dawson", "active": true, "timeZone": "Europe/Berlin" }, "subtasks": [], "reporter": { "name": "billdawson", "key": "billdawson", "displayName": "Bill Dawson", "active": true, "timeZone": "Europe/Berlin" }, "environment": null, "comment": { "comments": [ { "id": "130001", "author": { "name": "billdawson", "key": "billdawson", "displayName": "Bill Dawson", "active": true, "timeZone": "Europe/Berlin" }, "body": "{html}

Just so y'all don't think I'm crazy, here is the Titanium\nversion info output during build of KitchenSink. I rebuild the SDK\nand KitchenSink, just to be sure:

\n

Titanium SDK version: 1.6.0 (02/08/11 20:51\n49c5b13)

\n

That hash is precisely the HEAD of master at this moment. (The\ndate/time shows my time now, because I just re-built the SDK.)

\n

And the attached screen capture is of my device running the\nImage View - Animated test. In this case, there are no images\ndisplaying (the second condition noted above).

{html}", "updateAuthor": { "name": "billdawson", "key": "billdawson", "displayName": "Bill Dawson", "active": true, "timeZone": "Europe/Berlin" }, "created": "2011-04-15T03:36:14.000+0000", "updated": "2011-04-15T03:36:14.000+0000" }, { "id": "130002", "author": { "name": "billdawson", "key": "billdawson", "displayName": "Bill Dawson", "active": true, "timeZone": "Europe/Berlin" }, "body": "{html}

The first issue I list above has already been addressed by a\nchange in KS from Marshall at the time he committed many of the new\nmessage queue implementation changes. But the change isn't in\nSmoketest, so that's why I saw the behavior there. Marshall's\nrelevant commit:

\n

\nhttps://github.com/appcelerator/titanium_mobile/commit/76647275afd7...

{html}", "updateAuthor": { "name": "billdawson", "key": "billdawson", "displayName": "Bill Dawson", "active": true, "timeZone": "Europe/Berlin" }, "created": "2011-04-15T03:36:14.000+0000", "updated": "2011-04-15T03:36:14.000+0000" }, { "id": "130003", "author": { "name": "billdawson", "key": "billdawson", "displayName": "Bill Dawson", "active": true, "timeZone": "Europe/Berlin" }, "body": "{html}

I can't reliably reproduce the second issue (no images appear).\nIt's happened twice -- one time I caught the screen capture for\nposterity, but neither time did I get a logcat. Bad boy. So we'll\nhave to accept that one.

{html}", "updateAuthor": { "name": "billdawson", "key": "billdawson", "displayName": "Bill Dawson", "active": true, "timeZone": "Europe/Berlin" }, "created": "2011-04-15T03:36:14.000+0000", "updated": "2011-04-15T03:36:14.000+0000" }, { "id": "130004", "author": { "name": "billdawson", "key": "billdawson", "displayName": "Bill Dawson", "active": true, "timeZone": "Europe/Berlin" }, "body": "{html}

(from [b27d06ff4e2818e3daf755c0a2c6eff84c1eac57])\n[#3078 state:fixed-in-qa] check for imageSources\nbeing null before accessing \nhttps://github.com/appcelerator/titanium_mobile/commit/b27d06ff4e28...

{html}", "updateAuthor": { "name": "billdawson", "key": "billdawson", "displayName": "Bill Dawson", "active": true, "timeZone": "Europe/Berlin" }, "created": "2011-04-15T03:36:15.000+0000", "updated": "2011-04-15T03:36:15.000+0000" }, { "id": "130005", "author": { "name": "billdawson", "key": "billdawson", "displayName": "Bill Dawson", "active": true, "timeZone": "Europe/Berlin" }, "body": "{html}

Adding to this ticket, because there is another place where\n\"backing out\" can cause an NPE:

\n
\nE/TiUncaughtHandler( 8676): (Thread-24) [398,283170] Sending event: exception on thread: Thread-24 msg:java.lang.NullPointerException; Titanium 1.6.0,2011/02/08 16:18,17c1ea\nE/TiUncaughtHandler( 8676): java.lang.NullPointerException\nE/TiUncaughtHandler( 8676):     at ti.modules.titanium.ui.widget.TiUIImageView$Loader.getStart(TiUIImageView.java:220)\nE/TiUncaughtHandler( 8676):     at ti.modules.titanium.ui.widget.TiUIImageView$Loader.run(TiUIImageView.java:251)\nE/TiUncaughtHandler( 8676):     at java.lang.Thread.run(Thread.java:1096)\n
{html}", "updateAuthor": { "name": "billdawson", "key": "billdawson", "displayName": "Bill Dawson", "active": true, "timeZone": "Europe/Berlin" }, "created": "2011-04-15T03:36:15.000+0000", "updated": "2011-04-15T03:36:15.000+0000" }, { "id": "130006", "author": { "name": "billdawson", "key": "billdawson", "displayName": "Bill Dawson", "active": true, "timeZone": "Europe/Berlin" }, "body": "{html}

One additional way to test this and try to break it is to go in\nand out of the test quickly. Or go into it, click \"Stop\", click\n\"Start\" but then back out quickly before it really has a chance to\nstart. Also go in, click \"Stop\", click \"Reverse\", click \"Start\",\nthen go back fast before it can start.

\n

Try to make it break, in other words.

{html}", "updateAuthor": { "name": "billdawson", "key": "billdawson", "displayName": "Bill Dawson", "active": true, "timeZone": "Europe/Berlin" }, "created": "2011-04-15T03:36:15.000+0000", "updated": "2011-04-15T03:36:15.000+0000" }, { "id": "130007", "author": { "name": "billdawson", "key": "billdawson", "displayName": "Bill Dawson", "active": true, "timeZone": "Europe/Berlin" }, "body": "{html}

(from [67b6bde7b0c14e4b916180abd228a242432f8ff9])\nPut more null checks in image view animator to avoid NPEs when user\nbacks out of an animation. [#3078 state:fixed-in-qa] \nhttps://github.com/appcelerator/titanium_mobile/commit/67b6bde7b0c1...

{html}", "updateAuthor": { "name": "billdawson", "key": "billdawson", "displayName": "Bill Dawson", "active": true, "timeZone": "Europe/Berlin" }, "created": "2011-04-15T03:36:16.000+0000", "updated": "2011-04-15T03:36:16.000+0000" }, { "id": "130008", "author": { "name": "billdawson", "key": "billdawson", "displayName": "Bill Dawson", "active": true, "timeZone": "Europe/Berlin" }, "body": "{html}

(from [f666f8d2c6ccb03e523ad2216b66808ea054573e])\nPut more null checks in image view animator to avoid NPEs when user\nbacks out of an animation. [#3078 state:fixed-in-qa] \nhttps://github.com/appcelerator/titanium_mobile/commit/f666f8d2c6cc...

{html}", "updateAuthor": { "name": "billdawson", "key": "billdawson", "displayName": "Bill Dawson", "active": true, "timeZone": "Europe/Berlin" }, "created": "2011-04-15T03:36:16.000+0000", "updated": "2011-04-15T03:36:16.000+0000" }, { "id": "130009", "author": { "name": "opiecyrus", "key": "opiecyrus", "displayName": "Opie Cyrus", "active": true, "timeZone": "America/Chicago" }, "body": "{html}

Verified on Droid 2 (2.2) against KS built with 1_6_X

{html}", "updateAuthor": { "name": "opiecyrus", "key": "opiecyrus", "displayName": "Opie Cyrus", "active": true, "timeZone": "America/Chicago" }, "created": "2011-04-15T03:36:16.000+0000", "updated": "2011-04-15T03:36:16.000+0000" } ], "maxResults": 9, "total": 9, "startAt": 0 } } }