Details
-
Type:
Bug
-
Status: Reopened
-
Priority:
Major
-
Resolution: Unresolved
-
Affects Version/s: 1.0 Final
-
Fix Version/s: 1.4 Beta
-
Component/s: None
-
Labels:None
-
Environment:Android/ICEmobile
Description
When you chase a video/audio play link in Android, Ajax push stops functioning. This can be reproduced easily with mediacast by uploading an audio or camcorder file, playing it using the 'play' link, returning to the main page and then pushing to client from another device. The push does not show up. This problem exists for the stock browser and the container.
Activity
- All
- Comments
- History
- Activity
- Remote Attachments
- Subversion
I have captured http traffic to the Android device with wireshark. Here is the exact scenario, using mediacast
- Applications restarted, 2 clients connect - Android and desktop chrome
- Audio captured and uploaded on Android
- Push a photo from chrome - push is good
- Select audio clip from carousel (NOTE: There is another problem here as this does not take to the audio page)
- Select audio clip again - works this time
- Play it using the play link
- Hit back button when audio completes - Returns you to the audio page, but looks like there is network traffic at this point
- Hit home button to go back to main page
- Push another image from chrome - push does not work.
The traffic captured shows:
- Heartbeat: ice.pushid=1gzlpyc4s%3Ab4k&ice.pushid=1gzlpyc4s%3Ab4m&ice.pushid=1gzlpyc4s%3Afen&ice.pushid=viprlr92 <noop/>
- Heartbeat: <notified-pushids>viprlr92</notified-pushids>
- Faces-request: <partial-response><changes><update id="j_idt17:_t18_carousel">... <-- The carousel update (good push)
- Hearbeat: <-- does not contain <noop/>
- GET image for carousel
- Faces-request: 2000<?xml version='1.0' encoding='UTF-8'?><partial-response><changes><update id="javax.faces.ViewRoot">... <-- this is the bad button press. it seems to return the existing page.
- GET /mediacast/javax.faces.resource/jsf.js.jsf?ln=javax.faces&v=1131669477 HTTP/1.1 <-- fetching JS
- Hearbeat: <-- does not contain <noop/>
- Faces-request <partial-response><changes><update id="toolbar"> <-- Second button press. This one works and returns the Viewer page
- GET /mediacast/javax.faces.resource/aef90e68-e074-4d41-a4d1-c862518c6f13.jsf; <-- the audio file
- GET /mediacast/javax.faces.resource/aef90e68-e074-4d41-a4d1-c862518c6f13.jsf;
- GET /mediacast/javax.faces.resource/aef90e68-e074-4d41-a4d1-c862518c6f13.jsf;
- GET /mediacast/javax.faces.resource/aef90e68-e074-4d41-a4d1-c862518c6f13.jsf;
- GET /mediacast/javax.faces.resource/aef90e68-e074-4d41-a4d1-c862518c6f13.jsf;
- Heartbeat <noop/>
- Faces-request: <partial-response><changes><update id="toolbar"> <-- Home button pressed. Response includes home page.
- Heartbeat <noop/> <-- should contain a notification
- Heartbeat <noop/>
So the heartbeat continues but the notification never comes.
Show
Steve Maryka
added a comment - I have captured http traffic to the Android device with wireshark. Here is the exact scenario, using mediacast
Applications restarted, 2 clients connect - Android and desktop chrome
Audio captured and uploaded on Android
Push a photo from chrome - push is good
Select audio clip from carousel (NOTE: There is another problem here as this does not take to the audio page)
Select audio clip again - works this time
Play it using the play link
Hit back button when audio completes - Returns you to the audio page, but looks like there is network traffic at this point
Hit home button to go back to main page
Push another image from chrome - push does not work.
The traffic captured shows:
Heartbeat: ice.pushid=1gzlpyc4s%3Ab4k&ice.pushid=1gzlpyc4s%3Ab4m&ice.pushid=1gzlpyc4s%3Afen&ice.pushid=viprlr92 <noop/>
Heartbeat: <notified-pushids>viprlr92</notified-pushids>
Faces-request: <partial-response><changes><update id="j_idt17:_t18_carousel">... <-- The carousel update (good push)
Hearbeat: <-- does not contain <noop/>
GET image for carousel
Faces-request: 2000<?xml version='1.0' encoding='UTF-8'?><partial-response><changes><update id="javax.faces.ViewRoot">... <-- this is the bad button press. it seems to return the existing page.
GET /mediacast/javax.faces.resource/jsf.js.jsf?ln=javax.faces&v=1131669477 HTTP/1.1 <-- fetching JS
Hearbeat: <-- does not contain <noop/>
Faces-request <partial-response><changes><update id="toolbar"> <-- Second button press. This one works and returns the Viewer page
GET /mediacast/javax.faces.resource/aef90e68-e074-4d41-a4d1-c862518c6f13.jsf; <-- the audio file
GET /mediacast/javax.faces.resource/aef90e68-e074-4d41-a4d1-c862518c6f13.jsf;
GET /mediacast/javax.faces.resource/aef90e68-e074-4d41-a4d1-c862518c6f13.jsf;
GET /mediacast/javax.faces.resource/aef90e68-e074-4d41-a4d1-c862518c6f13.jsf;
GET /mediacast/javax.faces.resource/aef90e68-e074-4d41-a4d1-c862518c6f13.jsf;
Heartbeat <noop/>
Faces-request: <partial-response><changes><update id="toolbar"> <-- Home button pressed. Response includes home page.
Heartbeat <noop/> <-- should contain a notification
Heartbeat <noop/>
So the heartbeat continues but the notification never comes.
This is an important fix so should be considered for 1.3EE.