{ "id": "106859", "key": "TIMOB-12401", "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": "14162", "description": "Release 3.1.0", "name": "Release 3.1.0", "archived": true, "released": true, "releaseDate": "2013-04-16" }, { "id": "15273", "description": "2013 Sprint 05 API", "name": "2013 Sprint 05 API", "archived": true, "released": true, "releaseDate": "2013-03-11" }, { "id": "14815", "description": "2013 Sprint 05", "name": "2013 Sprint 05", "archived": true, "released": true, "releaseDate": "2013-03-11" } ], "resolution": { "id": "1", "description": "A fix for this issue is checked into the tree and tested.", "name": "Fixed" }, "resolutiondate": "2013-02-27T19:02:59.000+0000", "created": "2012-12-20T16:21:32.000+0000", "priority": { "name": "High", "id": "2" }, "labels": [ "api", "module_imageview", "qe-port", "regression", "triage" ], "versions": [ { "id": "13505", "description": "Release 3.0.0", "name": "Release 3.0.0", "archived": true, "released": true, "releaseDate": "2012-12-14" } ], "issuelinks": [], "assignee": { "name": "vduggal", "key": "vduggal", "displayName": "Vishal Duggal", "active": false, "timeZone": "America/Los_Angeles" }, "updated": "2013-10-17T09:38:34.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": "10206", "name": "iOS", "description": "iOS Platform" } ], "description": "*Problem description*\r\nAs I stated above, ImageView on SDK 3.0 is not showing images from a specific server, although the same images on the same mobile's web browser are shown fine.\r\n\r\nMe and some other people from the community tried everything, changing the photo, changing the server, putting another photo in this server etc. and we came to a conclusion that it happens only when SDK 3.0 \"meets\" this server. (SDK 2.1.4 works fine with this server)\r\n\r\nAn image example is this: http://www.lillikas.com/images/barosso2.jpg\r\n\r\nFor example, if you download this image and upload it to another server it works fine.\r\n\r\n*Workaround*\r\nThe following value within the cache header causes the issue:\r\n{code}Cache-Control: no-cache{code}\r\n\r\nI am not sure what's wrong with the 'no-cache' (perhaps the dash?!) but that's it. To get rid of it you need to configure your IIS not to send this value.\r\n\r\n*Sample code*\r\n{code}\r\nvar win = Ti.UI.createWindow({\r\n\tbackgroundColor : \"#FFF\"\r\n});\r\n\r\nvar icon = Titanium.UI.createImageView({\r\n\timage : \"http://www.lillikas.com/images/barosso2.jpg\",\r\n\tleft : 11,\r\n\ttop : 12,\r\n\theight : 60,\r\n\twidth : 111\r\n});\r\n\r\nwin.add(icon);\r\nwin.open();\r\n{code}", "attachment": [], "flagged": false, "summary": "iOS: ImageView on SDK 3.0 not showing images from a specific server, while images on mobile's web browser are shown fine.", "creator": { "name": "michaelmassalas", "key": "michaelmassalas", "displayName": "Michael Massalas", "active": true, "timeZone": "America/Los_Angeles" }, "subtasks": [], "reporter": { "name": "michaelmassalas", "key": "michaelmassalas", "displayName": "Michael Massalas", "active": true, "timeZone": "America/Los_Angeles" }, "environment": "Tried on a number of Macs and MacBooks and it does not work.", "comment": { "comments": [ { "id": "232313", "author": { "name": "michaelmassalas", "key": "michaelmassalas", "displayName": "Michael Massalas", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Someone else had this problem also on another server, quoting from appcelerator Q&A:\n\n\"I have the same problem Michael ! My remote images works fine in 2.1.4 but not since 3.0. It's very strange and iOS only, works on Android...\n— commented Yesterday by Girod Frédéric\"", "updateAuthor": { "name": "michaelmassalas", "key": "michaelmassalas", "displayName": "Michael Massalas", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2012-12-21T06:56:07.000+0000", "updated": "2012-12-21T06:56:07.000+0000" }, { "id": "232503", "author": { "name": "michaelmassalas", "key": "michaelmassalas", "displayName": "Michael Massalas", "active": true, "timeZone": "America/Los_Angeles" }, "body": "I know where the problem is but I can only tell you what causes it so you can fix it in your next SDK update. Here is the issue cause (quoting another person with the same issue):\n\n\"After excessive testing, debugging but also sniffing the traffic, I have ended up that the problem is the specific caching value of the cache-control header. To be more precise the following header is causing the issue.\nCache-Control: no-cache\nCaching is not an issue, but the value 'no-cache' is causing the problem. (perhaps it's the dash?!) It's a bug that needs to be resolved.\nGeorge\"", "updateAuthor": { "name": "michaelmassalas", "key": "michaelmassalas", "displayName": "Michael Massalas", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2012-12-24T11:01:13.000+0000", "updated": "2012-12-24T11:01:13.000+0000" }, { "id": "237965", "author": { "name": "tamas.bencsik", "key": "tamas.bencsik", "displayName": "Thomas Bencsik", "active": true, "timeZone": "Europe/Berlin" }, "body": "Maybe it will help. \r\nOur app show the images from a php link. (in 2.1.4 it works all the time)\r\n\r\nNow it only works when we got this header with the file:\r\n\r\nConnection:\tKeep-Alive\r\nContent-Length:\t1655\r\nDate:\tMon, 11 Feb 2013 14:32:33 GMT\r\nKeep-Alive:\ttimeout=15, max=97\r\nServer:\tApache/2.2.22 (Debian)\r\nX-Powered-By:\tPHP/5.4.4-10\r\n\r\nIf we get this header, it isn't work:\r\n\r\nCache-Control:\tno-store, no-cache, must-revalidate, post-check=0, pre-check=0\r\nConnection:\tKeep-Alive\r\nContent-Length:\t1539\r\nDate:\tMon, 11 Feb 2013 14:32:28 GMT\r\nExpires:\tThu, 19 Nov 1981 08:52:00 GMT\r\nKeep-Alive:\ttimeout=15, max=99\r\nPragma:\tno-cache\r\nServer:\tApache/2.2.22 (Debian)\r\nX-Powered-By:\tPHP/5.4.4-10\r\n\r\nThe difference is: 'Cache-Control', 'Expires', 'Pragma'", "updateAuthor": { "name": "tamas.bencsik", "key": "tamas.bencsik", "displayName": "Thomas Bencsik", "active": true, "timeZone": "Europe/Berlin" }, "created": "2013-02-11T15:07:45.000+0000", "updated": "2013-02-11T15:07:45.000+0000" }, { "id": "238947", "author": { "name": "vduggal", "key": "vduggal", "displayName": "Vishal Duggal", "active": false, "timeZone": "America/Los_Angeles" }, "body": "Regression caused due to fix for TIMOB-3749", "updateAuthor": { "name": "vduggal", "key": "vduggal", "displayName": "Vishal Duggal", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2013-02-19T22:06:46.000+0000", "updated": "2013-02-19T22:06:46.000+0000" }, { "id": "238948", "author": { "name": "vduggal", "key": "vduggal", "displayName": "Vishal Duggal", "active": false, "timeZone": "America/Los_Angeles" }, "body": "Pull pending\r\nhttps://github.com/appcelerator/titanium_mobile/pull/3888", "updateAuthor": { "name": "vduggal", "key": "vduggal", "displayName": "Vishal Duggal", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2013-02-19T22:11:55.000+0000", "updated": "2013-02-19T22:11:55.000+0000" }, { "id": "241003", "author": { "name": "oromero", "key": "oromero", "displayName": "Olga Romero", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Verified fix with:\nTitanium Studio, build: 3.0.2.201302191606\nTitanium SDK, build: 3.1.0.v20130306004750 \nDevice:\niPhone5 iOS 6.1.2\niPad mini iOS 6.0", "updateAuthor": { "name": "oromero", "key": "oromero", "displayName": "Olga Romero", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2013-03-06T20:10:48.000+0000", "updated": "2013-03-06T20:10:48.000+0000" }, { "id": "242507", "author": { "name": "kosso", "key": "kosso", "displayName": "kosso", "active": true, "timeZone": "Europe/London" }, "body": "I have an issue related to this where Android images views cannot display SECURE remote images. \r\n\r\nThis is urgent.\r\n\r\nTrying an imageView with image:'http://www.google.co.uk/images/srpr/logo4w.png' works fine\r\n\r\n.. but (note https) image:'https://www.google.co.uk/images/srpr/logo4w.png' throws : \r\n\r\n{{E/TiDownloadManager( 783): (pool-3-thread-1) [166,166] Exception downloading https://www.google.co.uk/images/srpr/logo4w.png\r\nE/TiDownloadManager( 783): javax.net.ssl.SSLHandshakeException: org.bouncycastle.jce.exception.ExtCertPathValidatorException: Could not validate certificate: current time: Wed Apr 09 02:50:03 GMT 1980, validation time: Mon Jun 08 21:43:27 GMT 2009\r\nE/TiDownloadManager( 783): \tat org.apache.harmony.xnet.provider.jsse.OpenSSLSocketImpl.startHandshake(OpenSSLSocketImpl.java:477)\r\nE/TiDownloadManager( 783): \tat org.apache.harmony.xnet.provider.jsse.OpenSSLSocketImpl.startHandshake(OpenSSLSocketImpl.java:328)\r\nE/TiDownloadManager( 783): \tat org.apache.harmony.luni.internal.net.www.protocol.http.HttpConnection.setupSecureSocket(HttpConnection.java:185)\r\nE/TiDownloadManager( 783): \tat org.apache.harmony.luni.internal.net.www.protocol.https.HttpsURLConnectionImpl$HttpsEngine.makeSslConnection(HttpsURLConnectionImpl.java:433)\r\nE/TiDownloadManager( 783): \tat org.apache.harmony.luni.internal.net.www.protocol.https.HttpsURLConnectionImpl$HttpsEngine.makeConnection(HttpsURLConnectionImpl.java:378)\r\nE/TiDownloadManager( 783): \tat org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnectionImpl.retrieveResponse(HttpURLConnectionImpl.java:1018)\r\nE/TiDownloadManager( 783): \tat org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnectionImpl.getInputStream(HttpURLConnectionImpl.java:512)\r\nE/TiDownloadManager( 783): \tat org.apache.harmony.luni.internal.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:258)\r\nE/TiDownloadManager( 783): \tat java.net.URL.openStream(URL.java:645)\r\nE/TiDownloadManager( 783): \tat org.appcelerator.titanium.util.TiDownloadManager$DownloadJob.run(TiDownloadManager.java:135)\r\nE/TiDownloadManager( 783): \tat java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1088)\r\nE/TiDownloadManager( 783): \tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:581)\r\nE/TiDownloadManager( 783): \tat java.lang.Thread.run(Thread.java:1019)\r\nE/TiDownloadManager( 783): Caused by: java.security.cert.CertificateException: org.bouncycastle.jce.exception.ExtCertPathValidatorException: Could not validate certificate: current time: Wed Apr 09 02:50:03 GMT 1980, validation time: Mon Jun 08 21:43:27 GMT 2009\r\nE/TiDownloadManager( 783): \tat org.apache.harmony.xnet.provider.jsse.TrustManagerImpl.checkServerTrusted(TrustManagerImpl.java:161)\r\nE/TiDownloadManager( 783): \tat org.apache.harmony.xnet.provider.jsse.OpenSSLSocketImpl.verifyCertificateChain(OpenSSLSocketImpl.java:664)\r\nE/TiDownloadManager( 783): \tat org.apache.harmony.xnet.provider.jsse.NativeCrypto.SSL_do_handshake(Native Method)\r\nE/TiDownloadManager( 783): \tat org.apache.harmony.xnet.provider.jsse.OpenSSLSocketImpl.startHandshake(OpenSSLSocketImpl.java:474)\r\nE/TiDownloadManager( 783): \t... 12 more\r\nE/TiDownloadManager( 783): Caused by: org.bouncycastle.jce.exception.ExtCertPathValidatorException: Could not validate certificate: current time: Wed Apr 09 02:50:03 GMT 1980, validation time: Mon Jun 08 21:43:27 GMT 2009\r\nE/TiDownloadManager( 783): \tat org.bouncycastle.jce.provider.RFC3280CertPathUtilities.processCertA(RFC3280CertPathUtilities.java:1521)\r\nE/TiDownloadManager( 783): \tat org.bouncycastle.jce.provider.PKIXCertPathValidatorSpi.engineValidate(PKIXCertPathValidatorSpi.java:329)\r\nE/TiDownloadManager( 783): \tat java.security.cert.CertPathValidator.validate(CertPathValidator.java:197)\r\nE/TiDownloadManager( 783): \tat org.apache.harmony.xnet.provider.jsse.TrustManagerImpl.checkServerTrusted(TrustManagerImpl.java:156)\r\nE/TiDownloadManager( 783): \t... 15 more\r\nE/TiDownloadManager( 783): Caused by: java.security.cert.CertificateNotYetValidException: current time: Wed Apr 09 02:50:03 GMT 1980, validation time: Mon Jun 08 21:43:27 GMT 2009\r\nE/TiDownloadManager( 783): \tat org.apache.harmony.security.provider.cert.X509CertImpl.checkValidity(X509CertImpl.java:178)\r\nE/TiDownloadManager( 783): \tat org.bouncycastle.jce.provider.RFC3280CertPathUtilities.processCertA(RFC3280CertPathUtilities.java:1512)\r\nE/TiDownloadManager( 783): \t... 18 more}}", "updateAuthor": { "name": "kosso", "key": "kosso", "displayName": "kosso", "active": true, "timeZone": "Europe/London" }, "created": "2013-03-15T20:07:42.000+0000", "updated": "2013-03-15T20:07:42.000+0000" }, { "id": "242508", "author": { "name": "kosso", "key": "kosso", "displayName": "kosso", "active": true, "timeZone": "Europe/London" }, "body": ".. sorry: I should add, I'm using : Titanium SDK version 3.1.0.v20130314163255\r\n\r\n", "updateAuthor": { "name": "kosso", "key": "kosso", "displayName": "kosso", "active": true, "timeZone": "Europe/London" }, "created": "2013-03-15T20:08:54.000+0000", "updated": "2013-03-15T20:08:54.000+0000" }, { "id": "242513", "author": { "name": "kosso", "key": "kosso", "displayName": "kosso", "active": true, "timeZone": "Europe/London" }, "body": "sorry again... \r\n\r\nThis appears to be fine on Android 4.0.4 (SII), but not on Android 2.2.3 (Nexus One) \r\n\r\n(those are the only version I can currently test on).\r\n\r\n", "updateAuthor": { "name": "kosso", "key": "kosso", "displayName": "kosso", "active": true, "timeZone": "Europe/London" }, "created": "2013-03-15T20:23:39.000+0000", "updated": "2013-03-15T20:23:39.000+0000" }, { "id": "275397", "author": { "name": "karl.n", "key": "karl.n", "displayName": "Karl Nilsson", "active": true, "timeZone": "Europe/Berlin" }, "body": "I can confirm the problem Kosso reports. On a Samsung S4 Mini (Android 4.2.2) it is not possible to show images with ImageView when the image is located on a https URL.\r\n\r\nFor us, this is pretty urgent.", "updateAuthor": { "name": "karl.n", "key": "karl.n", "displayName": "Karl Nilsson", "active": true, "timeZone": "Europe/Berlin" }, "created": "2013-10-17T09:38:34.000+0000", "updated": "2013-10-17T09:38:34.000+0000" } ], "maxResults": 10, "total": 10, "startAt": 0 } } }