You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@felix.apache.org by "Daniel Felsing (JIRA)" <ji...@apache.org> on 2008/07/24 17:53:31 UTC

[jira] Created: (FELIX-642) initial event delivery for new event listeners fails random devices

initial event delivery for new event listeners fails random devices
-------------------------------------------------------------------

                 Key: FELIX-642
                 URL: https://issues.apache.org/jira/browse/FELIX-642
             Project: Felix
          Issue Type: Bug
          Components: UPnP Subproject
    Affects Versions: upnp-basedriver-0.8.0
            Reporter: Daniel Felsing
            Priority: Blocker
             Fix For: upnp-basedriver-0.8.0


Hi Daniel,

let's try to summarize this long thread, so that we can get a clear vision on what is going on, and you can correct my wrong understanding

Overall Environment Setup
-------------------------
 - You have two computer connected togheter by means of a switch. And they are the only two computer on the network
 - The first computer runs Felix + UPnP Base Driver
 - The second computer runs Equinox + UPnP Base Driver + *your* Sensor Base Driver + Sensor2UPnP Bridge


Issues
------
 - If you subscribe from the PC running Felix to all the UPnP Device exported by the UPnP Base Driver running on Equinox and created by your Sensor2UPnP bridge you miss some of the notification.


Questions & Tests
-----------------
 - Can you create a JIRA issue for your issue, so that it will easy to track and you will be able to post your code as zip file, instead of copy & paste
 - During your testing have you always discovered all the device exported by the Equinox computer in the Felix computer?
 - Do you miss notification even on the Equinox computer?

Ciao,
Stefano "Kismet" Lenzi



Overall Environment Setup:
--------------------------
- yes, connected by a switch
- the first computer is a UPnP Bridge for a X10 "like" system..i wrote a basedriver and upnpbridgedriver (bridgedriver is creating upnp devices for every x10 base device). It is using felix + upnpbasedriver
- the second computer acts as a server (central control point for a smart home system implementation) it's using felix also (but for developing eclipse equinox since it's more comfortable to develop) This second computer uses basedriver to import the devices xposed by the first computer...and a refinement driver is creating new objects for every upnp device found (e.g. a light device and so on)


Issues:
------
- all the devices on the server (so the central smart home controller) that get imported get refined. They subscribe to the upnp device it refines to get notified on event change.
Problem is: not all devices refined devices which act as listeners on the SERVER get notified on INITIAL subscription (when i subscribe the device with felix tester also no notification is delivered....)...when this happens and i actually change the state of a sensor a notification is sent (to the device and upnp felix tester) and everything begins to work properly.

Question & Tests:
-----------------
- yes i can :)
- yes - every device exported by the upnpsensorbridge (=Felix Computer) gets found by the central server (=equinox computer) It is really just an issue with single "upnpservices". Here i saw something strange. When i restart the bridgeDriver on Felix computer (exporting my upnp devices) The "getCurrentValue()" methods get called more and more often the more often i restart the "bridgeDriver". Is this a normal behavior? It seems to me as state variables Of the services get mixed up or not cancelled when unregistering or something.
- i have only one computer where i test the notification -> on the central equinox server computer.
On the felix computer exporting my upnp devices i am justwondering about the strange calls to "getCurrentValue" i described you 





some code parts that may be for particular interest:
---------------------------------------------------------------------
UPnP Event Tester code on the SERVER side (central server importing the upnp devices from the second one)

public class Activator implements BundleActivator {

	private ServiceRegistration servReg;
	
	/*
	 * (non-Javadoc)
	 * @see org.osgi.framework.BundleActivator#start(org.osgi.framework.BundleContext)
	 */
	public void start(BundleContext context) throws Exception {
		EventListener test = new EventListener();
		servReg = context.registerService(UPnPEventListener.class.getName(), test, null);
	}

	/*
	 * (non-Javadoc)
	 * @see org.osgi.framework.BundleActivator#stop(org.osgi.framework.BundleContext)
	 */
	public void stop(BundleContext context) throws Exception {
		servReg.unregister();
	}

}


public class EventListener implements UPnPEventListener {

	private ArrayList<String> knownDevs = new ArrayList<String>();
	
	@Override
	public synchronized void notifyUPnPEvent(String deviceId, String serviceId, Dictionary events) {
		String output = "";
		output += deviceId + " " + serviceId;
		
		Enumeration eventit = events.keys();
		
		while (eventit.hasMoreElements()) {
			String key = (String) eventit.nextElement();
			output += key + " " + events.get(key) + "\n";
		}
				
		if (!knownDevs.contains(deviceId)) {
			knownDevs.add(deviceId);
		}
		System.err.println(output + "#diff Devices:" + knownDevs.size());
		System.err.flush();
		
	}

}

the REFINED devices on the SERVER themselves are using the felix helper class to subscribe to the events:
		// create upnp listener - if evented is true
		subscriber = new UPnPSubscriber(bundleContext, this);
		subscriber.subscribeAllServicesOf(super.getUPnPDeviceUDN());


the upnp device implementation on the host exporting the upnp devices are using the following line to expose event notifier

		// setup event notifier
		notify_switch = new UPnPEventNotifier(context, this, switchdevswitchservice, switchDev);



if you need something else please contact me! :)



-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (FELIX-642) upnp event delivery to OSGi event listeners fails on random devices after a certain period of time

Posted by "Daniel Felsing (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/FELIX-642?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Daniel Felsing updated FELIX-642:
---------------------------------

    Description: 
Ok...overall problem is as follows:

upnp event delivery to OSGi event listeners fails on random devices after a certain period of time


Overall Environment Setup
-------------------------
- i have two hosts A and B => A is a Bridge exporting about 20 devices at the moment (will get more - it's a X10 like system), B acts as a central server for the devices (Smart Home implementation)
- A is a SensorBridge...and B a central controlpoint importing all those devices
- both ends use upnpbasedriver 0.8 and extra bundle from felix project
- the two hosts are connected through a Gigabit Switch (NO WIRELESS USED!)
- all the devices on the server (so the central smart home controller) that get imported get refined. They subscribe to the upnp device it refines to get notified on event change.
- on the central server (Host B) i subscribe to UPnP Devices exported by Host A using UPnPSubscriber Helper class of the extra bundle


Issues
------
- "SOMETIMES" on initial subscription not all devices get notified about the initial status (devices get found properly though)
- after some time of operation random devices begin to fail - that means..they do not get notified about event changes anymore, but devices are still present (so they are still there as UPnPDevice instances in the central server)....

=> i had debug enabled....and as i see i still receive the event-change notifies on my Host B (=central server)....if i "resubscribe" to the event listener of the failed device everything works again (i dont need to restart the whole basedriver or osgi framework to let it work again - just my refining driver must be restarted which does the subscription to the devices using UPnPSubscriber class) ...

SO this STILL GETS DELIVERED, but listeners do not get notified about the change:
================REQUEST=====================
NOTIFY /evetSub HTTP/1.0
Content-Type: text/xml; charset="utf-8"
HOST: 192.168.0.5
NT: upnp:event
NTS: upnp:propchange
SID: uuid:956d-a11b-fe88-e08e
SEQ: 0
Content-Length: 165
Connection: close

<?xml version="1.0" encoding="utf-8"?>
<propertyset xmlns:e="urn:schemas-upnp-org:event-1-0">
   <property>
      <Status>off</Status>
   </property>
</propertyset>
-------------------------------------------- 


Tests:
-----------------
- yes - every device exported by the upnpsensorbridge (=Host A) gets found by the central server (=Host B) 

- upnp tester of felix project experiences same issues

- the REFINED devices on the SERVER themselves are using the felix helper class to subscribe to the events:
		// create upnp listener - if evented is true
		subscriber = new UPnPSubscriber(bundleContext, this);
		subscriber.subscribeAllServicesOf(super.getUPnPDeviceUDN());

- i also tried: 		EventListener test = new EventListener();
		                servReg = context.registerService(UPnPEventListener.class.getName(), test, null);
(so not using UPnPSubscriber) => same problem...so UPnPSubscriber may not be the root of the problem

- the upnp device implementation on the host exporting the upnp devices ( =Host A, sensorbridge) are using the following line to expose event notifier
		// setup event notifier
		notify_switch = new UPnPEventNotifier(context, this, switchdevswitchservice, switchDev);




================================================================================
Is it possible that my issue is connected to this one mentioned in the cyberlink forum?

Stefano answered to it in the cyberlink forum!!
http://sourceforge.net/forum/forum.php?thread_id=1952657&forum_id=258158
----------------------------------------------------------------------------------------------------------------------------

if you need something else please contact me! :)



  was:
Ok...overall problem is as follows:

upnp event delivery to OSGi event listeners fails on random devices after a certain period of time


Overall Environment Setup
-------------------------
- i have two hosts A and B => A is a Bridge exporting about 20 devices at the moment (will get more - it's a X10 like system), B acts as a central server for the devices (Smart Home implementation)
- A is a SensorBridge...and B a central controlpoint importing all those devices
- both ends use upnpbasedriver 0.8 and extra bundle from felix project
- the two hosts are connected through a Gigabit Switch (NO WIRELESS USED!)
- all the devices on the server (so the central smart home controller) that get imported get refined. They subscribe to the upnp device it refines to get notified on event change.
- on the central server (Host B) i subscribe to UPnP Devices exported by Host A using UPnPSubscriber Helper class of the extra bundle


Issues
------
- "SOMETIMES" on initial subscription not all devices get notified about the initial status (devices get found properly though)
- after some time of operation random devices begin to fail - that means..they do not get notified about event changes anymore, but devices are still present (so they are still there as UPnPDevice instances in the central server)....

=> i had debug enabled....and as i see i still receive the event-change notifies on my Host B (=central server)....if i "resubscribe" to the event listener of the failed device everything works again (i dont need to restart the whole basedriver or osgi framework to let it work again - just my refining driver must be restarted which does the subscription to the devices using UPnPSubscriber class) ...

SO this STILL GETS DELIVERED, but listeners do not get notified about the change:
================REQUEST=====================
NOTIFY /evetSub HTTP/1.0
Content-Type: text/xml; charset="utf-8"
HOST: 192.168.0.5
NT: upnp:event
NTS: upnp:propchange
SID: uuid:956d-a11b-fe88-e08e
SEQ: 0
Content-Length: 165
Connection: close

<?xml version="1.0" encoding="utf-8"?>
<propertyset xmlns:e="urn:schemas-upnp-org:event-1-0">
   <property>
      <Status>off</Status>
   </property>
</propertyset>
-------------------------------------------- 


Tests:
-----------------
- yes - every device exported by the upnpsensorbridge (=Host A) gets found by the central server (=Host B) 

- upnp tester of felix project experiences same issues

- the REFINED devices on the SERVER themselves are using the felix helper class to subscribe to the events:
		// create upnp listener - if evented is true
		subscriber = new UPnPSubscriber(bundleContext, this);
		subscriber.subscribeAllServicesOf(super.getUPnPDeviceUDN());

- i also tried: 		EventListener test = new EventListener();
		                servReg = context.registerService(UPnPEventListener.class.getName(), test, null);
(so not using UPnPSubscriber) => same problem...so UPnPSubscriber may not be the root of the problem

- the upnp device implementation on the host exporting the upnp devices ( =Host A, sensorbridge) are using the following line to expose event notifier
		// setup event notifier
		notify_switch = new UPnPEventNotifier(context, this, switchdevswitchservice, switchDev);



if you need something else please contact me! :)




> upnp event delivery to OSGi event listeners fails on random devices after a certain period of time
> --------------------------------------------------------------------------------------------------
>
>                 Key: FELIX-642
>                 URL: https://issues.apache.org/jira/browse/FELIX-642
>             Project: Felix
>          Issue Type: Bug
>          Components: UPnP Subproject
>    Affects Versions: upnp-basedriver-0.8.0
>            Reporter: Daniel Felsing
>            Priority: Blocker
>             Fix For: upnp-basedriver-0.8.0
>
>
> Ok...overall problem is as follows:
> upnp event delivery to OSGi event listeners fails on random devices after a certain period of time
> Overall Environment Setup
> -------------------------
> - i have two hosts A and B => A is a Bridge exporting about 20 devices at the moment (will get more - it's a X10 like system), B acts as a central server for the devices (Smart Home implementation)
> - A is a SensorBridge...and B a central controlpoint importing all those devices
> - both ends use upnpbasedriver 0.8 and extra bundle from felix project
> - the two hosts are connected through a Gigabit Switch (NO WIRELESS USED!)
> - all the devices on the server (so the central smart home controller) that get imported get refined. They subscribe to the upnp device it refines to get notified on event change.
> - on the central server (Host B) i subscribe to UPnP Devices exported by Host A using UPnPSubscriber Helper class of the extra bundle
> Issues
> ------
> - "SOMETIMES" on initial subscription not all devices get notified about the initial status (devices get found properly though)
> - after some time of operation random devices begin to fail - that means..they do not get notified about event changes anymore, but devices are still present (so they are still there as UPnPDevice instances in the central server)....
> => i had debug enabled....and as i see i still receive the event-change notifies on my Host B (=central server)....if i "resubscribe" to the event listener of the failed device everything works again (i dont need to restart the whole basedriver or osgi framework to let it work again - just my refining driver must be restarted which does the subscription to the devices using UPnPSubscriber class) ...
> SO this STILL GETS DELIVERED, but listeners do not get notified about the change:
> ================REQUEST=====================
> NOTIFY /evetSub HTTP/1.0
> Content-Type: text/xml; charset="utf-8"
> HOST: 192.168.0.5
> NT: upnp:event
> NTS: upnp:propchange
> SID: uuid:956d-a11b-fe88-e08e
> SEQ: 0
> Content-Length: 165
> Connection: close
> <?xml version="1.0" encoding="utf-8"?>
> <propertyset xmlns:e="urn:schemas-upnp-org:event-1-0">
>    <property>
>       <Status>off</Status>
>    </property>
> </propertyset>
> -------------------------------------------- 
> Tests:
> -----------------
> - yes - every device exported by the upnpsensorbridge (=Host A) gets found by the central server (=Host B) 
> - upnp tester of felix project experiences same issues
> - the REFINED devices on the SERVER themselves are using the felix helper class to subscribe to the events:
> 		// create upnp listener - if evented is true
> 		subscriber = new UPnPSubscriber(bundleContext, this);
> 		subscriber.subscribeAllServicesOf(super.getUPnPDeviceUDN());
> - i also tried: 		EventListener test = new EventListener();
> 		                servReg = context.registerService(UPnPEventListener.class.getName(), test, null);
> (so not using UPnPSubscriber) => same problem...so UPnPSubscriber may not be the root of the problem
> - the upnp device implementation on the host exporting the upnp devices ( =Host A, sensorbridge) are using the following line to expose event notifier
> 		// setup event notifier
> 		notify_switch = new UPnPEventNotifier(context, this, switchdevswitchservice, switchDev);
> ================================================================================
> Is it possible that my issue is connected to this one mentioned in the cyberlink forum?
> Stefano answered to it in the cyberlink forum!!
> http://sourceforge.net/forum/forum.php?thread_id=1952657&forum_id=258158
> ----------------------------------------------------------------------------------------------------------------------------
> if you need something else please contact me! :)

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (FELIX-642) upnp event delivery to OSGi event listeners fails on random devices after a certain period of time

Posted by "Francesco Furfari (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/FELIX-642?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12620254#action_12620254 ] 

Francesco Furfari commented on FELIX-642:
-----------------------------------------

I forgot to say that you can change the MX paramenter of the M-Search in order to overcome the inconvenient of receiving only 50/60 announcements.
For example by launching the Tester bundle with the system property -Dcyberdomo.ssdp.mx=10 , that's 10 seconds to receive MSearch responses (default is 5), will give time to the Tester to receive 100 replies from the different BinaryLight devices.




> upnp event delivery to OSGi event listeners fails on random devices after a certain period of time
> --------------------------------------------------------------------------------------------------
>
>                 Key: FELIX-642
>                 URL: https://issues.apache.org/jira/browse/FELIX-642
>             Project: Felix
>          Issue Type: Bug
>          Components: UPnP Subproject
>    Affects Versions: upnp-basedriver-0.8.0
>            Reporter: Daniel Felsing
>            Priority: Blocker
>             Fix For: upnp-basedriver-0.8.0
>
>
> Ok...overall problem is as follows:
> upnp event delivery to OSGi event listeners fails on random devices after a certain period of time
> Overall Environment Setup
> -------------------------
> - i have two hosts A and B => A is a Bridge exporting about 20 devices at the moment (will get more - it's a X10 like system), B acts as a central server for the devices (Smart Home implementation)
> - A is a SensorBridge...and B a central controlpoint importing all those devices
> - both ends use upnpbasedriver 0.8 and extra bundle from felix project
> - the two hosts are connected through a Gigabit Switch (NO WIRELESS USED!)
> - all the devices on the server (so the central smart home controller) that get imported get refined. They subscribe to the upnp device it refines to get notified on event change.
> - on the central server (Host B) i subscribe to UPnP Devices exported by Host A using UPnPSubscriber Helper class of the extra bundle
> Issues
> ------
> - "SOMETIMES" on INITIAL subscription not all devices get notified about the initial status (devices get found properly though)
>   ( see also http://www.mail-archive.com/users@felix.apache.org/msg01781.html for that)
> - after some time of operation random devices begin to fail - that means..they do not get notified about event changes anymore, but devices are still present (so they are still there as UPnPDevice instances in the central server)... 
> => i had debug enabled....and as i see i still receive the event-change notifies on my Host B (=central server)....if i "resubscribe" to the event listener of the failed device everything works again (i dont need to restart the whole basedriver or osgi framework to let it work again - just my refining driver must be restarted which does the subscription to the devices using UPnPSubscriber class) ...
> SO this STILL GETS DELIVERED, but listeners do not get notified about the change:
> ================REQUEST=====================
> NOTIFY /evetSub HTTP/1.0
> Content-Type: text/xml; charset="utf-8"
> HOST: 192.168.0.5
> NT: upnp:event
> NTS: upnp:propchange
> SID: uuid:956d-a11b-fe88-e08e
> SEQ: 0
> Content-Length: 165
> Connection: close
> <?xml version="1.0" encoding="utf-8"?>
> <propertyset xmlns:e="urn:schemas-upnp-org:event-1-0">
>    <property>
>       <Status>off</Status>
>    </property>
> </propertyset>
> -------------------------------------------- 
> Tests:
> -----------------
> - yes - every device exported by the upnpsensorbridge (=Host A) gets found by the central server (=Host B) 
> - upnp tester of felix project experiences same issues
> - the REFINED devices on the SERVER themselves are using the felix helper class to subscribe to the events:
> 		// create upnp listener - if evented is true
> 		subscriber = new UPnPSubscriber(bundleContext, this);
> 		subscriber.subscribeAllServicesOf(super.getUPnPDeviceUDN());
> - i also tried: 		EventListener test = new EventListener();
> 		                servReg = context.registerService(UPnPEventListener.class.getName(), test, null);
> (so not using UPnPSubscriber) => same problem...so UPnPSubscriber may not be the root of the problem
> - the upnp device implementation on the host exporting the upnp devices ( =Host A, sensorbridge) are using the following line to expose event notifier
> 		// setup event notifier
> 		notify_switch = new UPnPEventNotifier(context, this, switchdevswitchservice, switchDev);
> ================================================================================
> Is it possible that my issue is connected to this one mentioned in the cyberlink forum?
> Stefano answered to it in the cyberlink forum!!
> http://sourceforge.net/forum/forum.php?thread_id=1952657&forum_id=258158
> ----------------------------------------------------------------------------------------------------------------------------
> if you need something else please contact me! :)

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Closed: (FELIX-642) upnp event delivery to OSGi event listeners fails on random devices after a certain period of time

Posted by "Francesco Furfari (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/FELIX-642?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Francesco Furfari closed FELIX-642.
-----------------------------------

    Resolution: Fixed

The issue has been solved by adding a synchronize block in the subscribe method in the base driver (see  commit #685555 - 13 Aug 2008). A better solution would imply the redisign  of the renewer mechanism in the CyberDomo library.

> upnp event delivery to OSGi event listeners fails on random devices after a certain period of time
> --------------------------------------------------------------------------------------------------
>
>                 Key: FELIX-642
>                 URL: https://issues.apache.org/jira/browse/FELIX-642
>             Project: Felix
>          Issue Type: Bug
>          Components: UPnP Subproject
>    Affects Versions: upnp-basedriver-0.8.0
>            Reporter: Daniel Felsing
>            Priority: Blocker
>             Fix For: upnp-basedriver-0.8.0
>
>
> Ok...overall problem is as follows:
> upnp event delivery to OSGi event listeners fails on random devices after a certain period of time
> Overall Environment Setup
> -------------------------
> - i have two hosts A and B => A is a Bridge exporting about 20 devices at the moment (will get more - it's a X10 like system), B acts as a central server for the devices (Smart Home implementation)
> - A is a SensorBridge...and B a central controlpoint importing all those devices
> - both ends use upnpbasedriver 0.8 and extra bundle from felix project
> - the two hosts are connected through a Gigabit Switch (NO WIRELESS USED!)
> - all the devices on the server (so the central smart home controller) that get imported get refined. They subscribe to the upnp device it refines to get notified on event change.
> - on the central server (Host B) i subscribe to UPnP Devices exported by Host A using UPnPSubscriber Helper class of the extra bundle
> Issues
> ------
> - "SOMETIMES" on INITIAL subscription not all devices get notified about the initial status (devices get found properly though)
>   ( see also http://www.mail-archive.com/users@felix.apache.org/msg01781.html for that)
> - after some time of operation random devices begin to fail - that means..they do not get notified about event changes anymore, but devices are still present (so they are still there as UPnPDevice instances in the central server)... 
> => i had debug enabled....and as i see i still receive the event-change notifies on my Host B (=central server)....if i "resubscribe" to the event listener of the failed device everything works again (i dont need to restart the whole basedriver or osgi framework to let it work again - just my refining driver must be restarted which does the subscription to the devices using UPnPSubscriber class) ...
> SO this STILL GETS DELIVERED, but listeners do not get notified about the change:
> ================REQUEST=====================
> NOTIFY /evetSub HTTP/1.0
> Content-Type: text/xml; charset="utf-8"
> HOST: 192.168.0.5
> NT: upnp:event
> NTS: upnp:propchange
> SID: uuid:956d-a11b-fe88-e08e
> SEQ: 0
> Content-Length: 165
> Connection: close
> <?xml version="1.0" encoding="utf-8"?>
> <propertyset xmlns:e="urn:schemas-upnp-org:event-1-0">
>    <property>
>       <Status>off</Status>
>    </property>
> </propertyset>
> -------------------------------------------- 
> Tests:
> -----------------
> - yes - every device exported by the upnpsensorbridge (=Host A) gets found by the central server (=Host B) 
> - upnp tester of felix project experiences same issues
> - the REFINED devices on the SERVER themselves are using the felix helper class to subscribe to the events:
> 		// create upnp listener - if evented is true
> 		subscriber = new UPnPSubscriber(bundleContext, this);
> 		subscriber.subscribeAllServicesOf(super.getUPnPDeviceUDN());
> - i also tried: 		EventListener test = new EventListener();
> 		                servReg = context.registerService(UPnPEventListener.class.getName(), test, null);
> (so not using UPnPSubscriber) => same problem...so UPnPSubscriber may not be the root of the problem
> - the upnp device implementation on the host exporting the upnp devices ( =Host A, sensorbridge) are using the following line to expose event notifier
> 		// setup event notifier
> 		notify_switch = new UPnPEventNotifier(context, this, switchdevswitchservice, switchDev);
> ================================================================================
> Is it possible that my issue is connected to this one mentioned in the cyberlink forum?
> Stefano answered to it in the cyberlink forum!!
> http://sourceforge.net/forum/forum.php?thread_id=1952657&forum_id=258158
> ----------------------------------------------------------------------------------------------------------------------------
> if you need something else please contact me! :)

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (FELIX-642) upnp event delivery to OSGi event listeners fails on random devices after a certain period of time

Posted by "Francesco Furfari (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/FELIX-642?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12619704#action_12619704 ] 

Francesco Furfari commented on FELIX-642:
-----------------------------------------

Actually the timeout you refer is 120.000 that  means about 33 hours. This value is used in the header of the UPnP subscription message, that is 120000 seconds. It's true that this value is hard coded, further more this value is used for all the subscription managed by the Base Driver, but it cannot be considered a bug. 
Looking at the Cyberlink (CL) code (upnp.Renewsubscriber) you can see that each subscription renew is checked every 120 seconds, and this is a constraint that is important to know. However if the subscription renew fails after about 120 seconds, CL tries automatically to do a new subscription. What is strange is that CL not seems to check the timeout received with the response of the previous subscription, and in any case the renew of the subscription is proposed with an infinite timeout.



> upnp event delivery to OSGi event listeners fails on random devices after a certain period of time
> --------------------------------------------------------------------------------------------------
>
>                 Key: FELIX-642
>                 URL: https://issues.apache.org/jira/browse/FELIX-642
>             Project: Felix
>          Issue Type: Bug
>          Components: UPnP Subproject
>    Affects Versions: upnp-basedriver-0.8.0
>            Reporter: Daniel Felsing
>            Priority: Blocker
>             Fix For: upnp-basedriver-0.8.0
>
>
> Ok...overall problem is as follows:
> upnp event delivery to OSGi event listeners fails on random devices after a certain period of time
> Overall Environment Setup
> -------------------------
> - i have two hosts A and B => A is a Bridge exporting about 20 devices at the moment (will get more - it's a X10 like system), B acts as a central server for the devices (Smart Home implementation)
> - A is a SensorBridge...and B a central controlpoint importing all those devices
> - both ends use upnpbasedriver 0.8 and extra bundle from felix project
> - the two hosts are connected through a Gigabit Switch (NO WIRELESS USED!)
> - all the devices on the server (so the central smart home controller) that get imported get refined. They subscribe to the upnp device it refines to get notified on event change.
> - on the central server (Host B) i subscribe to UPnP Devices exported by Host A using UPnPSubscriber Helper class of the extra bundle
> Issues
> ------
> - "SOMETIMES" on INITIAL subscription not all devices get notified about the initial status (devices get found properly though)
>   ( see also http://www.mail-archive.com/users@felix.apache.org/msg01781.html for that)
> - after some time of operation random devices begin to fail - that means..they do not get notified about event changes anymore, but devices are still present (so they are still there as UPnPDevice instances in the central server)... 
> => i had debug enabled....and as i see i still receive the event-change notifies on my Host B (=central server)....if i "resubscribe" to the event listener of the failed device everything works again (i dont need to restart the whole basedriver or osgi framework to let it work again - just my refining driver must be restarted which does the subscription to the devices using UPnPSubscriber class) ...
> SO this STILL GETS DELIVERED, but listeners do not get notified about the change:
> ================REQUEST=====================
> NOTIFY /evetSub HTTP/1.0
> Content-Type: text/xml; charset="utf-8"
> HOST: 192.168.0.5
> NT: upnp:event
> NTS: upnp:propchange
> SID: uuid:956d-a11b-fe88-e08e
> SEQ: 0
> Content-Length: 165
> Connection: close
> <?xml version="1.0" encoding="utf-8"?>
> <propertyset xmlns:e="urn:schemas-upnp-org:event-1-0">
>    <property>
>       <Status>off</Status>
>    </property>
> </propertyset>
> -------------------------------------------- 
> Tests:
> -----------------
> - yes - every device exported by the upnpsensorbridge (=Host A) gets found by the central server (=Host B) 
> - upnp tester of felix project experiences same issues
> - the REFINED devices on the SERVER themselves are using the felix helper class to subscribe to the events:
> 		// create upnp listener - if evented is true
> 		subscriber = new UPnPSubscriber(bundleContext, this);
> 		subscriber.subscribeAllServicesOf(super.getUPnPDeviceUDN());
> - i also tried: 		EventListener test = new EventListener();
> 		                servReg = context.registerService(UPnPEventListener.class.getName(), test, null);
> (so not using UPnPSubscriber) => same problem...so UPnPSubscriber may not be the root of the problem
> - the upnp device implementation on the host exporting the upnp devices ( =Host A, sensorbridge) are using the following line to expose event notifier
> 		// setup event notifier
> 		notify_switch = new UPnPEventNotifier(context, this, switchdevswitchservice, switchDev);
> ================================================================================
> Is it possible that my issue is connected to this one mentioned in the cyberlink forum?
> Stefano answered to it in the cyberlink forum!!
> http://sourceforge.net/forum/forum.php?thread_id=1952657&forum_id=258158
> ----------------------------------------------------------------------------------------------------------------------------
> if you need something else please contact me! :)

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (FELIX-642) upnp event delivery to OSGi event listeners fails on random devices after a certain period of time

Posted by "Francesco Furfari (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/FELIX-642?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12620050#action_12620050 ] 

Francesco Furfari commented on FELIX-642:
-----------------------------------------

Hi Daniel,

I  should have fixed the bug. It was in the basedriver see comment on Subversion commits.
If you build the snapshot version of the basedriver you should see the difference.

I tested the UPnP subscription mechanism instantiating 100 BinaryLight on a Felix platform and running a modified version of the tester on another one. It seems stable now, but I noticed that with 100 devices already instantiated, launching the tester the first time almost 50 devices are discovered  and ( with the fix ) all the initial events are properly reported for these devices. By using the menu "SEARCH/root devices"  of the UpnP Tester the rest of the devices are discovered with the related initial state. This behavior is due to the loss of multicast messages as Stefano discussed with you (http://sourceforge.net/forum/forum.php?thread_id=1952657&forum_id=258158).

a snippet of the code used for the tester is:

	public void doTest(){
		System.out.println("starting test");
		listener = new RootDeviceListener();
		listener.setDeviceNodeListener(new DeviceNodeListener(){
			HashMap map = new HashMap();
		    int countNotify = 1;
		    int countDevices = 1;
			public void deviceDetected(DeviceNode d) {
				String udn = d.toString();
				System.out.println("device DETECTED " + udn + " ### " + countDevices++);
			   UPnPSubscriber subscriber = new UPnPSubscriber(context, new UPnPEventListener(){
					public void notifyUPnPEvent(String arg0, String arg1, Dictionary arg2) {
						System.out.println(arg0 + " " + arg1 + arg2.toString() + "  " + countNotify++);
					}			        	
			    });
			   map.put(udn, subscriber);
			   subscriber.subscribeAllServicesOF(udn);				
			}
			
			public void rootDeviceUnplugged(String udn) {
				System.out.println("device REMOVED " + udn + " ### " + (--countDevices));
				UPnPSubscriber subscriber = (UPnPSubscriber)map.remove(udn);
				subscriber.unsubscribeAllServicesOF(udn);
				if (countDevices==1) countNotify =1;
			}
			
		});
		listener.activate();
		
	}


---------------
note that I used the RootDeviceListener class you find in the UPnP Tester code.
It will be part of the upnp.extra bundle in the future.

Best Regards,
francesco


> upnp event delivery to OSGi event listeners fails on random devices after a certain period of time
> --------------------------------------------------------------------------------------------------
>
>                 Key: FELIX-642
>                 URL: https://issues.apache.org/jira/browse/FELIX-642
>             Project: Felix
>          Issue Type: Bug
>          Components: UPnP Subproject
>    Affects Versions: upnp-basedriver-0.8.0
>            Reporter: Daniel Felsing
>            Priority: Blocker
>             Fix For: upnp-basedriver-0.8.0
>
>
> Ok...overall problem is as follows:
> upnp event delivery to OSGi event listeners fails on random devices after a certain period of time
> Overall Environment Setup
> -------------------------
> - i have two hosts A and B => A is a Bridge exporting about 20 devices at the moment (will get more - it's a X10 like system), B acts as a central server for the devices (Smart Home implementation)
> - A is a SensorBridge...and B a central controlpoint importing all those devices
> - both ends use upnpbasedriver 0.8 and extra bundle from felix project
> - the two hosts are connected through a Gigabit Switch (NO WIRELESS USED!)
> - all the devices on the server (so the central smart home controller) that get imported get refined. They subscribe to the upnp device it refines to get notified on event change.
> - on the central server (Host B) i subscribe to UPnP Devices exported by Host A using UPnPSubscriber Helper class of the extra bundle
> Issues
> ------
> - "SOMETIMES" on INITIAL subscription not all devices get notified about the initial status (devices get found properly though)
>   ( see also http://www.mail-archive.com/users@felix.apache.org/msg01781.html for that)
> - after some time of operation random devices begin to fail - that means..they do not get notified about event changes anymore, but devices are still present (so they are still there as UPnPDevice instances in the central server)... 
> => i had debug enabled....and as i see i still receive the event-change notifies on my Host B (=central server)....if i "resubscribe" to the event listener of the failed device everything works again (i dont need to restart the whole basedriver or osgi framework to let it work again - just my refining driver must be restarted which does the subscription to the devices using UPnPSubscriber class) ...
> SO this STILL GETS DELIVERED, but listeners do not get notified about the change:
> ================REQUEST=====================
> NOTIFY /evetSub HTTP/1.0
> Content-Type: text/xml; charset="utf-8"
> HOST: 192.168.0.5
> NT: upnp:event
> NTS: upnp:propchange
> SID: uuid:956d-a11b-fe88-e08e
> SEQ: 0
> Content-Length: 165
> Connection: close
> <?xml version="1.0" encoding="utf-8"?>
> <propertyset xmlns:e="urn:schemas-upnp-org:event-1-0">
>    <property>
>       <Status>off</Status>
>    </property>
> </propertyset>
> -------------------------------------------- 
> Tests:
> -----------------
> - yes - every device exported by the upnpsensorbridge (=Host A) gets found by the central server (=Host B) 
> - upnp tester of felix project experiences same issues
> - the REFINED devices on the SERVER themselves are using the felix helper class to subscribe to the events:
> 		// create upnp listener - if evented is true
> 		subscriber = new UPnPSubscriber(bundleContext, this);
> 		subscriber.subscribeAllServicesOf(super.getUPnPDeviceUDN());
> - i also tried: 		EventListener test = new EventListener();
> 		                servReg = context.registerService(UPnPEventListener.class.getName(), test, null);
> (so not using UPnPSubscriber) => same problem...so UPnPSubscriber may not be the root of the problem
> - the upnp device implementation on the host exporting the upnp devices ( =Host A, sensorbridge) are using the following line to expose event notifier
> 		// setup event notifier
> 		notify_switch = new UPnPEventNotifier(context, this, switchdevswitchservice, switchDev);
> ================================================================================
> Is it possible that my issue is connected to this one mentioned in the cyberlink forum?
> Stefano answered to it in the cyberlink forum!!
> http://sourceforge.net/forum/forum.php?thread_id=1952657&forum_id=258158
> ----------------------------------------------------------------------------------------------------------------------------
> if you need something else please contact me! :)

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (FELIX-642) initial event delivery for new event listeners fails random devices

Posted by "Daniel Felsing (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/FELIX-642?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12616558#action_12616558 ] 

Daniel Felsing commented on FELIX-642:
--------------------------------------

i have a log which may be valuable...(from the central smart home server which imports the devices...)
i ran the upnp event tester which is registering the upnpeventlistener to get ALL initial events.....
i set the log level of the basedriver to 4......
the two lines like -->
uuid:AT-SM-FHZ1-motionsensor1 urn:upnp-org:serviceId:GetEstimate:1EstimatedValue 0
#diff Devices:1
between the other messages of the log are showing the output of the TESTER.....the rest are logs from basedriver

only 16 of the17 devices have shown initial values...
dunnow how about services...it may be that one of the 16 shown devices has also single services missing (like already mentioned...its a per service, not per device issue)


==> 72 is the tester device
osgi> start 72debug    20080724 19:54:47 bid#78       - [Importer] deviceNotifyReceived
debug    20080724 19:54:47 bid#78       - 
================REQUEST=====================
NOTIFY * HTTP/1.1
Server: Linux/2.6.20-17-generic UPnP/1.0 CyberDomo/1.8
Cache-Control: max-age=1800
Location: http://192.168.0.11:4020/gen-desc.xml
NTS: ssdp:alive
NT: upnp:rootdevice
USN: uuid:AT-SM-FHZ1-rainsensor1::upnp:rootdevice
HOST: 239.255.255.250:1900

--------------------------------------------
debug    20080724 19:54:47 bid#78       - [Importer] ssdpPacket.isAlive
debug    20080724 19:54:47 bid#78       - [Importer] Device already discovered
debug    20080724 19:54:47 bid#78       - [Importer] deviceNotifyReceived
debug    20080724 19:54:47 bid#78       - 
================REQUEST=====================
NOTIFY * HTTP/1.1
Server: Linux/2.6.20-17-generic UPnP/1.0 CyberDomo/1.8
Cache-Control: max-age=1800
Location: http://192.168.0.11:4020/gen-desc.xml
NTS: ssdp:alive
NT: uuid:AT-SM-FHZ1-rainsensor1
USN: uuid:AT-SM-FHZ1-rainsensor1
HOST: 239.255.255.250:1900

--------------------------------------------
debug    20080724 19:54:47 bid#78       - [Importer] ssdpPacket.isAlive
debug    20080724 19:54:47 bid#78       - [Importer] Device already discovered
debug    20080724 19:54:47 bid#78       - [Importer] deviceNotifyReceived
debug    20080724 19:54:47 bid#78       - 
================REQUEST=====================
NOTIFY * HTTP/1.1
Server: Linux/2.6.20-17-generic UPnP/1.0 CyberDomo/1.8
Cache-Control: max-age=1800
Location: http://192.168.0.11:4020/gen-desc.xml
NTS: ssdp:alive
NT: urn:schemas-upnp-org:device:FHZRainSensor:1
USN: uuid:AT-SM-FHZ1-rainsensor1::urn:schemas-upnp-org:device:FHZRainSensor:1
HOST: 239.255.255.250:1900

--------------------------------------------
debug    20080724 19:54:47 bid#78       - [Importer] ssdpPacket.isAlive
debug    20080724 19:54:47 bid#78       - [Importer] Device already discovered

debug    20080724 19:54:48 bid#78       - [Importer] deviceNotifyReceived
debug    20080724 19:54:48 bid#78       - 
================REQUEST=====================
NOTIFY * HTTP/1.1
Server: Linux/2.6.20-17-generic UPnP/1.0 CyberDomo/1.8
Cache-Control: max-age=1800
Location: http://192.168.0.11:4020/gen-desc.xml
NTS: ssdp:alive
NT: urn:schemas-upnp-org:service:GetName:1
USN: uuid:AT-SM-FHZ1-rainsensor1::urn:schemas-upnp-org:service:GetName:1
HOST: 239.255.255.250:1900

--------------------------------------------
debug    20080724 19:54:48 bid#78       - [Importer] ssdpPacket.isAlive
debug    20080724 19:54:48 bid#78       - [Importer] Device already discovered
debug    20080724 19:54:48 bid#78       - [Importer] check for service updating
info     20080724 19:54:48 bid#72       - [51;org.osgi.service.upnp.UPnPEventListener] ServiceEvent REGISTERED
debug    20080724 19:54:48 bid#78       - [Importer] serviceChanged
debug    20080724 19:54:48 bid#78       - Event::org.osgi.framework.ServiceEvent[source={org.osgi.service.upnp.UPnPEventListener}={service.id=51}]

osgi> info     20080724 19:54:48 bid#72       - BundleEvent STARTED
CyberDomo message : sock = /192.168.0.11:46700
CyberDomo message : httpServThread ...
CyberDomo message : accept ...
debug    20080724 19:54:48 bid#78       - [Importer] deviceNotifyReceived
debug    20080724 19:54:48 bid#78       - 
================REQUEST=====================
NOTIFY * HTTP/1.1
Server: Linux/2.6.20-17-generic UPnP/1.0 CyberDomo/1.8
Cache-Control: max-age=1800
Location: http://192.168.0.11:4020/gen-desc.xml
NTS: ssdp:alive
NT: urn:schemas-upnp-org:service:GetStatus:1
USN: uuid:AT-SM-FHZ1-rainsensor1::urn:schemas-upnp-org:service:GetStatus:1
HOST: 239.255.255.250:1900

--------------------------------------------
debug    20080724 19:54:48 bid#78       - [Importer] ssdpPacket.isAlive
debug    20080724 19:54:48 bid#78       - [Importer] Device already discovered
debug    20080724 19:54:48 bid#78       - [Importer] check for service updating
debug    20080724 19:54:48 bid#78       - [Importer] httpRequestRecieved event
debug    20080724 19:54:48 bid#78       - 
================REQUEST=====================
NOTIFY /evetSub HTTP/1.0
Content-Type: text/xml; charset="utf-8"
HOST: 192.168.0.5
NT: upnp:event
NTS: upnp:propchange
SID: uuid:8fed-a11b-e80b-e0ca
SEQ: 0
Content-Length: 179
Connection: close

<?xml version="1.0" encoding="utf-8"?>
<propertyset xmlns:e="urn:schemas-upnp-org:event-1-0">
   <property>
      <EstimatedValue>0</EstimatedValue>
   </property>
</propertyset>
--------------------------------------------
debug    20080724 19:54:48 bid#78       - [Importer] Notify Request
debug    20080724 19:54:48 bid#78       - [Importer] newEventArrived
uuid:AT-SM-FHZ1-motionsensor1 urn:upnp-org:serviceId:GetEstimate:1EstimatedValue 0
#diff Devices:1
CyberDomo message : sock = /192.168.0.11:43768
CyberDomo message : httpServThread ...
CyberDomo message : accept ...
debug    20080724 19:54:48 bid#78       - [Importer] httpRequestRecieved event
debug    20080724 19:54:48 bid#78       - 
================REQUEST=====================
NOTIFY /evetSub HTTP/1.0
Content-Type: text/xml; charset="utf-8"
HOST: 192.168.0.5
NT: upnp:event
NTS: upnp:propchange
SID: uuid:90b8-a11b-c447-e0f0
SEQ: 0
Content-Length: 160
Connection: close

<?xml version="1.0" encoding="utf-8"?>
<propertyset xmlns:e="urn:schemas-upnp-org:event-1-0">
   <property>
      <Event></Event>
   </property>
</propertyset>
--------------------------------------------
debug    20080724 19:54:48 bid#78       - [Importer] Notify Request
debug    20080724 19:54:48 bid#78       - [Importer] newEventArrived
uuid:AT-SM-FHZ1-motionsensor1 urn:upnp-org:serviceId:GetEvent:1Event 
#diff Devices:1
CyberDomo message : sock = /192.168.0.11:50031
CyberDomo message : httpServThread ...
CyberDomo message : accept ...
debug    20080724 19:54:48 bid#78       - [Importer] httpRequestRecieved event
debug    20080724 19:54:48 bid#78       - 
================REQUEST=====================
NOTIFY /evetSub HTTP/1.0
Content-Type: text/xml; charset="utf-8"
HOST: 192.168.0.5
NT: upnp:event
NTS: upnp:propchange
SID: uuid:9183-a11b-c553-e08c
SEQ: 0
Content-Length: 164
Connection: close

<?xml version="1.0" encoding="utf-8"?>
<propertyset xmlns:e="urn:schemas-upnp-org:event-1-0">
   <property>
      <Status>on</Status>
   </property>
</propertyset>
--------------------------------------------
debug    20080724 19:54:48 bid#78       - [Importer] Notify Request
debug    20080724 19:54:48 bid#78       - [Importer] newEventArrived
uuid:AT-SM-FHZ1-dimswitch4 urn:upnp-org:serviceId:GetStatus:1Status on
#diff Devices:2
CyberDomo message : sock = /192.168.0.11:43741
CyberDomo message : httpServThread ...
CyberDomo message : accept ...
debug    20080724 19:54:49 bid#78       - [Importer] httpRequestRecieved event
debug    20080724 19:54:49 bid#78       - 
================REQUEST=====================
NOTIFY /evetSub HTTP/1.0
Content-Type: text/xml; charset="utf-8"
HOST: 192.168.0.5
NT: upnp:event
NTS: upnp:propchange
SID: uuid:924a-a11b-ebf6-e072
SEQ: 0
Content-Length: 162
Connection: close

<?xml version="1.0" encoding="utf-8"?>
<propertyset xmlns:e="urn:schemas-upnp-org:event-1-0">
   <property>
      <Level>34</Level>
   </property>
</propertyset>
--------------------------------------------
debug    20080724 19:54:49 bid#78       - [Importer] Notify Request
debug    20080724 19:54:49 bid#78       - [Importer] newEventArrived
uuid:AT-SM-FHZ1-dimswitch4 urn:upnp-org:serviceId:GetLevel:1Level 34
#diff Devices:2
CyberDomo message : sock = /192.168.0.11:60193
CyberDomo message : httpServThread ...
CyberDomo message : accept ...
debug    20080724 19:54:49 bid#78       - [Importer] httpRequestRecieved event
debug    20080724 19:54:49 bid#78       - 
================REQUEST=====================
NOTIFY /evetSub HTTP/1.0
Content-Type: text/xml; charset="utf-8"
HOST: 192.168.0.5
NT: upnp:event
NTS: upnp:propchange
SID: uuid:9316-a11b-e0cb-e01d
SEQ: 0
Content-Length: 165
Connection: close

<?xml version="1.0" encoding="utf-8"?>
<propertyset xmlns:e="urn:schemas-upnp-org:event-1-0">
   <property>
      <Status>off</Status>
   </property>
</propertyset>
--------------------------------------------
debug    20080724 19:54:49 bid#78       - [Importer] Notify Request
debug    20080724 19:54:49 bid#78       - [Importer] newEventArrived
uuid:AT-SM-FHZ1-dimmablelight1 urn:upnp-org:serviceId:SwitchDevice:1Status off
#diff Devices:3
CyberDomo message : sock = /192.168.0.11:56040
CyberDomo message : httpServThread ...
CyberDomo message : accept ...
debug    20080724 19:54:49 bid#78       - [Importer] httpRequestRecieved event
debug    20080724 19:54:49 bid#78       - 
================REQUEST=====================
NOTIFY /evetSub HTTP/1.0
Content-Type: text/xml; charset="utf-8"
HOST: 192.168.0.5
NT: upnp:event
NTS: upnp:propchange
SID: uuid:93db-a11b-f0c5-e07b
SEQ: 0
Content-Length: 161
Connection: close

<?xml version="1.0" encoding="utf-8"?>
<propertyset xmlns:e="urn:schemas-upnp-org:event-1-0">
   <property>
      <Level>0</Level>
   </property>
</propertyset>
--------------------------------------------
debug    20080724 19:54:49 bid#78       - [Importer] Notify Request
debug    20080724 19:54:49 bid#78       - [Importer] newEventArrived
uuid:AT-SM-FHZ1-dimmablelight1 urn:upnp-org:serviceId:DimDevice:1Level 0
#diff Devices:3
CyberDomo message : sock = /192.168.0.11:48067
CyberDomo message : httpServThread ...
CyberDomo message : accept ...
debug    20080724 19:54:49 bid#78       - [Importer] httpRequestRecieved event
debug    20080724 19:54:49 bid#78       - 
================REQUEST=====================
NOTIFY /evetSub HTTP/1.0
Content-Type: text/xml; charset="utf-8"
HOST: 192.168.0.5
NT: upnp:event
NTS: upnp:propchange
SID: uuid:94a6-a11b-eb43-e007
SEQ: 0
Content-Length: 164
Connection: close

<?xml version="1.0" encoding="utf-8"?>
<propertyset xmlns:e="urn:schemas-upnp-org:event-1-0">
   <property>
      <Status>on</Status>
   </property>
</propertyset>
--------------------------------------------
debug    20080724 19:54:49 bid#78       - [Importer] Notify Request
debug    20080724 19:54:49 bid#78       - [Importer] newEventArrived
uuid:AT-SM-FHZ1-switch3 urn:upnp-org:serviceId:GetStatus:1Status on
#diff Devices:4
CyberDomo message : sock = /192.168.0.11:39333
CyberDomo message : httpServThread ...
CyberDomo message : accept ...
debug    20080724 19:54:49 bid#78       - [Importer] httpRequestRecieved event
debug    20080724 19:54:49 bid#78       - 
================REQUEST=====================
NOTIFY /evetSub HTTP/1.0
Content-Type: text/xml; charset="utf-8"
HOST: 192.168.0.5
NT: upnp:event
NTS: upnp:propchange
SID: uuid:956d-a11b-fe88-e08e
SEQ: 0
Content-Length: 165
Connection: close

<?xml version="1.0" encoding="utf-8"?>
<propertyset xmlns:e="urn:schemas-upnp-org:event-1-0">
   <property>
      <Status>off</Status>
   </property>
</propertyset>
--------------------------------------------
debug    20080724 19:54:49 bid#78       - [Importer] Notify Request
debug    20080724 19:54:49 bid#78       - [Importer] newEventArrived
uuid:AT-SM-FHZ1-S20_Switch3 urn:upnp-org:serviceId:GetStatus:1Status off
#diff Devices:5
CyberDomo message : sock = /192.168.0.11:34372
CyberDomo message : httpServThread ...
CyberDomo message : accept ...
debug    20080724 19:54:50 bid#78       - [Importer] httpRequestRecieved event
debug    20080724 19:54:50 bid#78       - 
================REQUEST=====================
NOTIFY /evetSub HTTP/1.0
Content-Type: text/xml; charset="utf-8"
HOST: 192.168.0.5
NT: upnp:event
NTS: upnp:propchange
SID: uuid:9637-a11b-7b53-e0af
SEQ: 0
Content-Length: 161
Connection: close

<?xml version="1.0" encoding="utf-8"?>
<propertyset xmlns:e="urn:schemas-upnp-org:event-1-0">
   <property>
      <Level>0</Level>
   </property>
</propertyset>
--------------------------------------------
debug    20080724 19:54:50 bid#78       - [Importer] Notify Request
debug    20080724 19:54:50 bid#78       - [Importer] newEventArrived
CyberDomo message : sock = /192.168.0.11:58961
CyberDomo message : httpServThread ...
CyberDomo message : accept ...
debug    20080724 19:54:50 bid#78       - [Importer] httpRequestRecieved event
debug    20080724 19:54:50 bid#78       - 
================REQUEST=====================
NOTIFY /evetSub HTTP/1.0
Content-Type: text/xml; charset="utf-8"
HOST: 192.168.0.5
NT: upnp:event
NTS: upnp:propchange
SID: uuid:9701-a11b-eafd-e075
SEQ: 0
Content-Length: 165
Connection: close

<?xml version="1.0" encoding="utf-8"?>
<propertyset xmlns:e="urn:schemas-upnp-org:event-1-0">
   <property>
      <Status>off</Status>
   </property>
</propertyset>
--------------------------------------------
debug    20080724 19:54:50 bid#78       - [Importer] Notify Request
debug    20080724 19:54:50 bid#78       - [Importer] newEventArrived
CyberDomo message : sock = /192.168.0.11:50563
CyberDomo message : httpServThread ...
CyberDomo message : accept ...
debug    20080724 19:54:50 bid#78       - [Importer] httpRequestRecieved event
debug    20080724 19:54:50 bid#78       - 
================REQUEST=====================
NOTIFY /evetSub HTTP/1.0
Content-Type: text/xml; charset="utf-8"
HOST: 192.168.0.5
NT: upnp:event
NTS: upnp:propchange
SID: uuid:97cb-a11b-3f58-e10b
SEQ: 0
Content-Length: 161
Connection: close

<?xml version="1.0" encoding="utf-8"?>
<propertyset xmlns:e="urn:schemas-upnp-org:event-1-0">
   <property>
      <Level>0</Level>
   </property>
</propertyset>
--------------------------------------------
debug    20080724 19:54:50 bid#78       - [Importer] Notify Request
debug    20080724 19:54:50 bid#78       - [Importer] newEventArrived
CyberDomo message : sock = /192.168.0.11:37457
CyberDomo message : httpServThread ...
CyberDomo message : accept ...
debug    20080724 19:54:50 bid#78       - [Importer] httpRequestRecieved event
debug    20080724 19:54:50 bid#78       - 
================REQUEST=====================
NOTIFY /evetSub HTTP/1.0
Content-Type: text/xml; charset="utf-8"
HOST: 192.168.0.5
NT: upnp:event
NTS: upnp:propchange
SID: uuid:9893-a11b-c7b3-e082
SEQ: 0
Content-Length: 164
Connection: close

<?xml version="1.0" encoding="utf-8"?>
<propertyset xmlns:e="urn:schemas-upnp-org:event-1-0">
   <property>
      <Status>on</Status>
   </property>
</propertyset>
--------------------------------------------
debug    20080724 19:54:50 bid#78       - [Importer] Notify Request
debug    20080724 19:54:50 bid#78       - [Importer] newEventArrived
uuid:AT-SM-FHZ1-S20_Switch7 urn:upnp-org:serviceId:GetStatus:1Status on
#diff Devices:6
CyberDomo message : sock = /192.168.0.11:50267
CyberDomo message : httpServThread ...
CyberDomo message : accept ...
debug    20080724 19:54:50 bid#78       - [Importer] httpRequestRecieved event
debug    20080724 19:54:50 bid#78       - 
================REQUEST=====================
NOTIFY /evetSub HTTP/1.0
Content-Type: text/xml; charset="utf-8"
HOST: 192.168.0.5
NT: upnp:event
NTS: upnp:propchange
SID: uuid:995d-a11b-2121-e018
SEQ: 0
Content-Length: 163
Connection: close

<?xml version="1.0" encoding="utf-8"?>
<propertyset xmlns:e="urn:schemas-upnp-org:event-1-0">
   <property>
      <Level>100</Level>
   </property>
</propertyset>
--------------------------------------------
debug    20080724 19:54:50 bid#78       - [Importer] Notify Request
debug    20080724 19:54:50 bid#78       - [Importer] newEventArrived
CyberDomo message : sock = /192.168.0.11:42546
CyberDomo message : httpServThread ...
CyberDomo message : accept ...
debug    20080724 19:54:51 bid#78       - [Importer] httpRequestRecieved event
debug    20080724 19:54:51 bid#78       - 
================REQUEST=====================
NOTIFY /evetSub HTTP/1.0
Content-Type: text/xml; charset="utf-8"
HOST: 192.168.0.5
NT: upnp:event
NTS: upnp:propchange
SID: uuid:9a2a-a11b-b56a-e0a8
SEQ: 0
Content-Length: 165
Connection: close

<?xml version="1.0" encoding="utf-8"?>
<propertyset xmlns:e="urn:schemas-upnp-org:event-1-0">
   <property>
      <Status>off</Status>
   </property>
</propertyset>
--------------------------------------------
debug    20080724 19:54:51 bid#78       - [Importer] Notify Request
debug    20080724 19:54:51 bid#78       - [Importer] newEventArrived
uuid:AT-SM-FHZ1-S20_Switch4 urn:upnp-org:serviceId:GetStatus:1Status off
#diff Devices:7
CyberDomo message : sock = /192.168.0.11:50869
CyberDomo message : httpServThread ...
CyberDomo message : accept ...
debug    20080724 19:54:51 bid#78       - [Importer] httpRequestRecieved event
debug    20080724 19:54:51 bid#78       - 
================REQUEST=====================
NOTIFY /evetSub HTTP/1.0
Content-Type: text/xml; charset="utf-8"
HOST: 192.168.0.5
NT: upnp:event
NTS: upnp:propchange
SID: uuid:9afc-a11b-f9e8-e103
SEQ: 0
Content-Length: 161
Connection: close

<?xml version="1.0" encoding="utf-8"?>
<propertyset xmlns:e="urn:schemas-upnp-org:event-1-0">
   <property>
      <Level>0</Level>
   </property>
</propertyset>
--------------------------------------------
debug    20080724 19:54:51 bid#78       - [Importer] Notify Request
debug    20080724 19:54:51 bid#78       - [Importer] newEventArrived
uuid:AT-SM-FHZ1-S20_Switch4 urn:upnp-org:serviceId:GetLevel:1Level 0
#diff Devices:7
CyberDomo message : sock = /192.168.0.11:35584
CyberDomo message : httpServThread ...
CyberDomo message : accept ...
debug    20080724 19:54:51 bid#78       - [Importer] httpRequestRecieved event
debug    20080724 19:54:51 bid#78       - 
================REQUEST=====================
NOTIFY /evetSub HTTP/1.0
Content-Type: text/xml; charset="utf-8"
HOST: 192.168.0.5
NT: upnp:event
NTS: upnp:propchange
SID: uuid:9bc2-a11b-a1db-e06c
SEQ: 0
Content-Length: 164
Connection: close

<?xml version="1.0" encoding="utf-8"?>
<propertyset xmlns:e="urn:schemas-upnp-org:event-1-0">
   <property>
      <Status>on</Status>
   </property>
</propertyset>
--------------------------------------------
debug    20080724 19:54:51 bid#78       - [Importer] Notify Request
debug    20080724 19:54:51 bid#78       - [Importer] newEventArrived
uuid:AT-SM-FHZ1-S20_Switch5 urn:upnp-org:serviceId:GetStatus:1Status on
#diff Devices:8
CyberDomo message : sock = /192.168.0.11:39669
CyberDomo message : httpServThread ...
CyberDomo message : accept ...
debug    20080724 19:54:51 bid#78       - [Importer] httpRequestRecieved event
debug    20080724 19:54:51 bid#78       - 
================REQUEST=====================
NOTIFY /evetSub HTTP/1.0
Content-Type: text/xml; charset="utf-8"
HOST: 192.168.0.5
NT: upnp:event
NTS: upnp:propchange
SID: uuid:9c8d-a11b-d4e0-e073
SEQ: 0
Content-Length: 163
Connection: close

<?xml version="1.0" encoding="utf-8"?>
<propertyset xmlns:e="urn:schemas-upnp-org:event-1-0">
   <property>
      <Level>100</Level>
   </property>
</propertyset>
--------------------------------------------
debug    20080724 19:54:51 bid#78       - [Importer] Notify Request
debug    20080724 19:54:51 bid#78       - [Importer] newEventArrived
uuid:AT-SM-FHZ1-S20_Switch5 urn:upnp-org:serviceId:GetLevel:1Level 100
#diff Devices:8
CyberDomo message : sock = /192.168.0.11:44317
CyberDomo message : httpServThread ...
CyberDomo message : accept ...
debug    20080724 19:54:51 bid#78       - [Importer] httpRequestRecieved event
debug    20080724 19:54:51 bid#78       - 
================REQUEST=====================
NOTIFY /evetSub HTTP/1.0
Content-Type: text/xml; charset="utf-8"
HOST: 192.168.0.5
NT: upnp:event
NTS: upnp:propchange
SID: uuid:9d53-a11b-fdd2-e06a
SEQ: 0
Content-Length: 164
Connection: close

<?xml version="1.0" encoding="utf-8"?>
<propertyset xmlns:e="urn:schemas-upnp-org:event-1-0">
   <property>
      <Status>on</Status>
   </property>
</propertyset>
--------------------------------------------
debug    20080724 19:54:51 bid#78       - [Importer] Notify Request
debug    20080724 19:54:51 bid#78       - [Importer] newEventArrived
uuid:AT-SM-FHZ1-simplelight1 urn:upnp-org:serviceId:SwitchDevice:1Status on
#diff Devices:9
CyberDomo message : sock = /192.168.0.11:54870
CyberDomo message : httpServThread ...
CyberDomo message : accept ...
debug    20080724 19:54:52 bid#78       - [Importer] httpRequestRecieved event
debug    20080724 19:54:52 bid#78       - 
================REQUEST=====================
NOTIFY /evetSub HTTP/1.0
Content-Type: text/xml; charset="utf-8"
HOST: 192.168.0.5
NT: upnp:event
NTS: upnp:propchange
SID: uuid:9e1b-a11b-a048-e0be
SEQ: 0
Content-Length: 164
Connection: close

<?xml version="1.0" encoding="utf-8"?>
<propertyset xmlns:e="urn:schemas-upnp-org:event-1-0">
   <property>
      <Status>on</Status>
   </property>
</propertyset>
--------------------------------------------
debug    20080724 19:54:52 bid#78       - [Importer] Notify Request
debug    20080724 19:54:52 bid#78       - [Importer] newEventArrived
uuid:AT-SM-FHZ1-S20_Switch2 urn:upnp-org:serviceId:GetStatus:1Status on
#diff Devices:10
CyberDomo message : sock = /192.168.0.11:38177
CyberDomo message : httpServThread ...
CyberDomo message : accept ...
debug    20080724 19:54:52 bid#78       - [Importer] httpRequestRecieved event
debug    20080724 19:54:52 bid#78       - 
================REQUEST=====================
NOTIFY /evetSub HTTP/1.0
Content-Type: text/xml; charset="utf-8"
HOST: 192.168.0.5
NT: upnp:event
NTS: upnp:propchange
SID: uuid:9ee3-a11b-ff74-e0c5
SEQ: 0
Content-Length: 163
Connection: close

<?xml version="1.0" encoding="utf-8"?>
<propertyset xmlns:e="urn:schemas-upnp-org:event-1-0">
   <property>
      <Level>100</Level>
   </property>
</propertyset>
--------------------------------------------
debug    20080724 19:54:52 bid#78       - [Importer] Notify Request
debug    20080724 19:54:52 bid#78       - [Importer] newEventArrived
uuid:AT-SM-FHZ1-S20_Switch2 urn:upnp-org:serviceId:GetLevel:1Level 100
#diff Devices:10
CyberDomo message : sock = /192.168.0.11:46611
CyberDomo message : httpServThread ...
CyberDomo message : accept ...
debug    20080724 19:54:52 bid#78       - [Importer] httpRequestRecieved event
debug    20080724 19:54:52 bid#78       - 
================REQUEST=====================
NOTIFY /evetSub HTTP/1.0
Content-Type: text/xml; charset="utf-8"
HOST: 192.168.0.5
NT: upnp:event
NTS: upnp:propchange
SID: uuid:9fac-a11b-7a23-e116
SEQ: 0
Content-Length: 165
Connection: close

<?xml version="1.0" encoding="utf-8"?>
<propertyset xmlns:e="urn:schemas-upnp-org:event-1-0">
   <property>
      <Status>off</Status>
   </property>
</propertyset>
--------------------------------------------
debug    20080724 19:54:52 bid#78       - [Importer] Notify Request
debug    20080724 19:54:52 bid#78       - [Importer] newEventArrived
uuid:AT-SM-FHZ1-funksteckdose1 urn:upnp-org:serviceId:SwitchDevice:1Status off
#diff Devices:11
CyberDomo message : sock = /192.168.0.11:49532
CyberDomo message : httpServThread ...
CyberDomo message : accept ...
debug    20080724 19:54:52 bid#78       - [Importer] httpRequestRecieved event
debug    20080724 19:54:52 bid#78       - 
================REQUEST=====================
NOTIFY /evetSub HTTP/1.0
Content-Type: text/xml; charset="utf-8"
HOST: 192.168.0.5
NT: upnp:event
NTS: upnp:propchange
SID: uuid:a072-a11b-4847-e0d4
SEQ: 0
Content-Length: 165
Connection: close

<?xml version="1.0" encoding="utf-8"?>
<propertyset xmlns:e="urn:schemas-upnp-org:event-1-0">
   <property>
      <Status>off</Status>
   </property>
</propertyset>
--------------------------------------------
debug    20080724 19:54:52 bid#78       - [Importer] Notify Request
debug    20080724 19:54:52 bid#78       - [Importer] newEventArrived
uuid:AT-SM-FHZ1-dawnsensor2 urn:upnp-org:serviceId:GetStatus:1Status off
#diff Devices:12
CyberDomo message : sock = /192.168.0.11:58959
CyberDomo message : httpServThread ...
CyberDomo message : accept ...
debug    20080724 19:54:52 bid#78       - [Importer] httpRequestRecieved event
debug    20080724 19:54:52 bid#78       - 
================REQUEST=====================
NOTIFY /evetSub HTTP/1.0
Content-Type: text/xml; charset="utf-8"
HOST: 192.168.0.5
NT: upnp:event
NTS: upnp:propchange
SID: uuid:a13a-a11b-a345-e00a
SEQ: 0
Content-Length: 164
Connection: close

<?xml version="1.0" encoding="utf-8"?>
<propertyset xmlns:e="urn:schemas-upnp-org:event-1-0">
   <property>
      <Status>on</Status>
   </property>
</propertyset>
--------------------------------------------
debug    20080724 19:54:52 bid#78       - [Importer] Notify Request
debug    20080724 19:54:52 bid#78       - [Importer] newEventArrived
uuid:AT-SM-FHZ1-S20_Switch1 urn:upnp-org:serviceId:GetStatus:1Status on
#diff Devices:13
CyberDomo message : sock = /192.168.0.11:46776
CyberDomo message : httpServThread ...
CyberDomo message : accept ...
CyberDomo message : sock = /192.168.0.11:57175
debug    20080724 19:54:53 bid#78       - [Importer] httpRequestRecieved event
CyberDomo message : httpServThread ...
debug    20080724 19:54:53 bid#78       - 
================REQUEST=====================
NOTIFY /evetSub HTTP/1.0
Content-Type: text/xml; charset="utf-8"
HOST: 192.168.0.5
NT: upnp:event
NTS: upnp:propchange
SID: uuid:a1fe-a11b-de65-e110
SEQ: 0
Content-Length: 163
Connection: close

<?xml version="1.0" encoding="utf-8"?>
<propertyset xmlns:e="urn:schemas-upnp-org:event-1-0">
   <property>
      <Level>100</Level>
   </property>
</propertyset>
--------------------------------------------
CyberDomo message : accept ...
debug    20080724 19:54:53 bid#78       - [Importer] Notify Request
debug    20080724 19:54:53 bid#78       - [Importer] newEventArrived
uuid:AT-SM-FHZ1-S20_Switch1 urn:upnp-org:serviceId:GetLevel:1Level 100
#diff Devices:13
debug    20080724 19:54:53 bid#78       - [Importer] httpRequestRecieved event
debug    20080724 19:54:53 bid#78       - 
================REQUEST=====================
NOTIFY /evetSub HTTP/1.0
Content-Type: text/xml; charset="utf-8"
HOST: 192.168.0.5
NT: upnp:event
NTS: upnp:propchange
SID: uuid:a2c2-a11b-220f-e020
SEQ: 0
Content-Length: 165
Connection: close

<?xml version="1.0" encoding="utf-8"?>
<propertyset xmlns:e="urn:schemas-upnp-org:event-1-0">
   <property>
      <Status>off</Status>
   </property>
</propertyset>
--------------------------------------------
debug    20080724 19:54:53 bid#78       - [Importer] Notify Request
debug    20080724 19:54:53 bid#78       - [Importer] newEventArrived
uuid:AT-SM-FHZ1-S20_Switch6 urn:upnp-org:serviceId:GetStatus:1Status off
#diff Devices:14
CyberDomo message : sock = /192.168.0.11:52541
CyberDomo message : httpServThread ...
CyberDomo message : accept ...
debug    20080724 19:54:53 bid#78       - [Importer] httpRequestRecieved event
debug    20080724 19:54:53 bid#78       - 
================REQUEST=====================
NOTIFY /evetSub HTTP/1.0
Content-Type: text/xml; charset="utf-8"
HOST: 192.168.0.5
NT: upnp:event
NTS: upnp:propchange
SID: uuid:a38c-a11b-696e-e0ad
SEQ: 0
Content-Length: 161
Connection: close

<?xml version="1.0" encoding="utf-8"?>
<propertyset xmlns:e="urn:schemas-upnp-org:event-1-0">
   <property>
      <Level>0</Level>
   </property>
</propertyset>
--------------------------------------------
debug    20080724 19:54:53 bid#78       - [Importer] Notify Request
debug    20080724 19:54:53 bid#78       - [Importer] newEventArrived
CyberDomo message : sock = /192.168.0.11:54229
CyberDomo message : httpServThread ...
CyberDomo message : accept ...
CyberDomo message : sock = /192.168.0.11:53133
CyberDomo message : httpServThread ...
CyberDomo message : accept ...
debug    20080724 19:54:53 bid#78       - [Importer] httpRequestRecieved event
debug    20080724 19:54:53 bid#78       - 
================REQUEST=====================
NOTIFY /evetSub HTTP/1.0
Content-Type: text/xml; charset="utf-8"
HOST: 192.168.0.5
NT: upnp:event
NTS: upnp:propchange
SID: uuid:a454-a11b-982e-e023
SEQ: 0
Content-Length: 164
Connection: close

<?xml version="1.0" encoding="utf-8"?>
<propertyset xmlns:e="urn:schemas-upnp-org:event-1-0">
   <property>
      <Status>on</Status>
   </property>
</propertyset>
--------------------------------------------
debug    20080724 19:54:53 bid#78       - [Importer] Notify Request
debug    20080724 19:54:53 bid#78       - [Importer] newEventArrived
uuid:AT-SM-FHZ1-rainsensor1 urn:upnp-org:serviceId:GetStatus:1Status on
#diff Devices:15
debug    20080724 19:54:53 bid#78       - [Importer] httpRequestRecieved event
debug    20080724 19:54:53 bid#78       - 
================REQUEST=====================
NOTIFY /evetSub HTTP/1.0
Content-Type: text/xml; charset="utf-8"
HOST: 192.168.0.5
NT: upnp:event
NTS: upnp:propchange
SID: uuid:a51a-a11b-feda-e08d
SEQ: 0
Content-Length: 164
Connection: close

<?xml version="1.0" encoding="utf-8"?>
<propertyset xmlns:e="urn:schemas-upnp-org:event-1-0">
   <property>
      <Status>on</Status>
   </property>
</propertyset>
--------------------------------------------
debug    20080724 19:54:53 bid#78       - [Importer] Notify Request
debug    20080724 19:54:53 bid#78       - [Importer] newEventArrived
uuid:AT-SM-FHZ1-shutter1 urn:upnp-org:serviceId:SwitchDevice:1Status on
#diff Devices:16

> initial event delivery for new event listeners fails random devices
> -------------------------------------------------------------------
>
>                 Key: FELIX-642
>                 URL: https://issues.apache.org/jira/browse/FELIX-642
>             Project: Felix
>          Issue Type: Bug
>          Components: UPnP Subproject
>    Affects Versions: upnp-basedriver-0.8.0
>            Reporter: Daniel Felsing
>            Priority: Blocker
>             Fix For: upnp-basedriver-0.8.0
>
>
> Hi Daniel,
> let's try to summarize this long thread, so that we can get a clear vision on what is going on, and you can correct my wrong understanding
> Overall Environment Setup
> -------------------------
>  - You have two computer connected togheter by means of a switch. And they are the only two computer on the network
>  - The first computer runs Felix + UPnP Base Driver
>  - The second computer runs Equinox + UPnP Base Driver + *your* Sensor Base Driver + Sensor2UPnP Bridge
> Issues
> ------
>  - If you subscribe from the PC running Felix to all the UPnP Device exported by the UPnP Base Driver running on Equinox and created by your Sensor2UPnP bridge you miss some of the notification.
> Questions & Tests
> -----------------
>  - Can you create a JIRA issue for your issue, so that it will easy to track and you will be able to post your code as zip file, instead of copy & paste
>  - During your testing have you always discovered all the device exported by the Equinox computer in the Felix computer?
>  - Do you miss notification even on the Equinox computer?
> Ciao,
> Stefano "Kismet" Lenzi
> Overall Environment Setup:
> --------------------------
> - yes, connected by a switch
> - the first computer is a UPnP Bridge for a X10 "like" system..i wrote a basedriver and upnpbridgedriver (bridgedriver is creating upnp devices for every x10 base device). It is using felix + upnpbasedriver
> - the second computer acts as a server (central control point for a smart home system implementation) it's using felix also (but for developing eclipse equinox since it's more comfortable to develop) This second computer uses basedriver to import the devices xposed by the first computer...and a refinement driver is creating new objects for every upnp device found (e.g. a light device and so on)
> Issues:
> ------
> - all the devices on the server (so the central smart home controller) that get imported get refined. They subscribe to the upnp device it refines to get notified on event change.
> Problem is: not all devices refined devices which act as listeners on the SERVER get notified on INITIAL subscription (when i subscribe the device with felix tester also no notification is delivered....)...when this happens and i actually change the state of a sensor a notification is sent (to the device and upnp felix tester) and everything begins to work properly.
> Question & Tests:
> -----------------
> - yes i can :)
> - yes - every device exported by the upnpsensorbridge (=Felix Computer) gets found by the central server (=equinox computer) It is really just an issue with single "upnpservices". Here i saw something strange. When i restart the bridgeDriver on Felix computer (exporting my upnp devices) The "getCurrentValue()" methods get called more and more often the more often i restart the "bridgeDriver". Is this a normal behavior? It seems to me as state variables Of the services get mixed up or not cancelled when unregistering or something.
> - i have only one computer where i test the notification -> on the central equinox server computer.
> On the felix computer exporting my upnp devices i am justwondering about the strange calls to "getCurrentValue" i described you 
> some code parts that may be for particular interest:
> ---------------------------------------------------------------------
> UPnP Event Tester code on the SERVER side (central server importing the upnp devices from the second one)
> public class Activator implements BundleActivator {
> 	private ServiceRegistration servReg;
> 	
> 	/*
> 	 * (non-Javadoc)
> 	 * @see org.osgi.framework.BundleActivator#start(org.osgi.framework.BundleContext)
> 	 */
> 	public void start(BundleContext context) throws Exception {
> 		EventListener test = new EventListener();
> 		servReg = context.registerService(UPnPEventListener.class.getName(), test, null);
> 	}
> 	/*
> 	 * (non-Javadoc)
> 	 * @see org.osgi.framework.BundleActivator#stop(org.osgi.framework.BundleContext)
> 	 */
> 	public void stop(BundleContext context) throws Exception {
> 		servReg.unregister();
> 	}
> }
> public class EventListener implements UPnPEventListener {
> 	private ArrayList<String> knownDevs = new ArrayList<String>();
> 	
> 	@Override
> 	public synchronized void notifyUPnPEvent(String deviceId, String serviceId, Dictionary events) {
> 		String output = "";
> 		output += deviceId + " " + serviceId;
> 		
> 		Enumeration eventit = events.keys();
> 		
> 		while (eventit.hasMoreElements()) {
> 			String key = (String) eventit.nextElement();
> 			output += key + " " + events.get(key) + "\n";
> 		}
> 				
> 		if (!knownDevs.contains(deviceId)) {
> 			knownDevs.add(deviceId);
> 		}
> 		System.err.println(output + "#diff Devices:" + knownDevs.size());
> 		System.err.flush();
> 		
> 	}
> }
> the REFINED devices on the SERVER themselves are using the felix helper class to subscribe to the events:
> 		// create upnp listener - if evented is true
> 		subscriber = new UPnPSubscriber(bundleContext, this);
> 		subscriber.subscribeAllServicesOf(super.getUPnPDeviceUDN());
> the upnp device implementation on the host exporting the upnp devices are using the following line to expose event notifier
> 		// setup event notifier
> 		notify_switch = new UPnPEventNotifier(context, this, switchdevswitchservice, switchDev);
> if you need something else please contact me! :)

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (FELIX-642) upnp event delivery to OSGi event listeners fails on random devices after a certain period of time

Posted by "Bruce Jackson (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/FELIX-642?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12619466#action_12619466 ] 

Bruce Jackson commented on FELIX-642:
-------------------------------------

It sounds like there's some kind of timeout happening in the base driver which is causing un-subscription to occur. Have you tried spawning a thread in A that generates regular "alive" events that don't do anything but just keep the system up?

I've just looked at page 62 of the UPnP spec, and its clear that subscriptions have a duration field, and in the base driver code (in org.apache.felix.upnp.basedriver.importer.core.event.thread.SubScriber.java) this is hard coded to 12000. Thus, the subscription will indeed timeout after 12000 milliseconds, and will need to be refreshed. It doesn't look like this value can be changed: perhaps this should be raised as a bug?

> upnp event delivery to OSGi event listeners fails on random devices after a certain period of time
> --------------------------------------------------------------------------------------------------
>
>                 Key: FELIX-642
>                 URL: https://issues.apache.org/jira/browse/FELIX-642
>             Project: Felix
>          Issue Type: Bug
>          Components: UPnP Subproject
>    Affects Versions: upnp-basedriver-0.8.0
>            Reporter: Daniel Felsing
>            Priority: Blocker
>             Fix For: upnp-basedriver-0.8.0
>
>
> Ok...overall problem is as follows:
> upnp event delivery to OSGi event listeners fails on random devices after a certain period of time
> Overall Environment Setup
> -------------------------
> - i have two hosts A and B => A is a Bridge exporting about 20 devices at the moment (will get more - it's a X10 like system), B acts as a central server for the devices (Smart Home implementation)
> - A is a SensorBridge...and B a central controlpoint importing all those devices
> - both ends use upnpbasedriver 0.8 and extra bundle from felix project
> - the two hosts are connected through a Gigabit Switch (NO WIRELESS USED!)
> - all the devices on the server (so the central smart home controller) that get imported get refined. They subscribe to the upnp device it refines to get notified on event change.
> - on the central server (Host B) i subscribe to UPnP Devices exported by Host A using UPnPSubscriber Helper class of the extra bundle
> Issues
> ------
> - "SOMETIMES" on INITIAL subscription not all devices get notified about the initial status (devices get found properly though)
>   ( see also http://www.mail-archive.com/users@felix.apache.org/msg01781.html for that)
> - after some time of operation random devices begin to fail - that means..they do not get notified about event changes anymore, but devices are still present (so they are still there as UPnPDevice instances in the central server)... 
> => i had debug enabled....and as i see i still receive the event-change notifies on my Host B (=central server)....if i "resubscribe" to the event listener of the failed device everything works again (i dont need to restart the whole basedriver or osgi framework to let it work again - just my refining driver must be restarted which does the subscription to the devices using UPnPSubscriber class) ...
> SO this STILL GETS DELIVERED, but listeners do not get notified about the change:
> ================REQUEST=====================
> NOTIFY /evetSub HTTP/1.0
> Content-Type: text/xml; charset="utf-8"
> HOST: 192.168.0.5
> NT: upnp:event
> NTS: upnp:propchange
> SID: uuid:956d-a11b-fe88-e08e
> SEQ: 0
> Content-Length: 165
> Connection: close
> <?xml version="1.0" encoding="utf-8"?>
> <propertyset xmlns:e="urn:schemas-upnp-org:event-1-0">
>    <property>
>       <Status>off</Status>
>    </property>
> </propertyset>
> -------------------------------------------- 
> Tests:
> -----------------
> - yes - every device exported by the upnpsensorbridge (=Host A) gets found by the central server (=Host B) 
> - upnp tester of felix project experiences same issues
> - the REFINED devices on the SERVER themselves are using the felix helper class to subscribe to the events:
> 		// create upnp listener - if evented is true
> 		subscriber = new UPnPSubscriber(bundleContext, this);
> 		subscriber.subscribeAllServicesOf(super.getUPnPDeviceUDN());
> - i also tried: 		EventListener test = new EventListener();
> 		                servReg = context.registerService(UPnPEventListener.class.getName(), test, null);
> (so not using UPnPSubscriber) => same problem...so UPnPSubscriber may not be the root of the problem
> - the upnp device implementation on the host exporting the upnp devices ( =Host A, sensorbridge) are using the following line to expose event notifier
> 		// setup event notifier
> 		notify_switch = new UPnPEventNotifier(context, this, switchdevswitchservice, switchDev);
> ================================================================================
> Is it possible that my issue is connected to this one mentioned in the cyberlink forum?
> Stefano answered to it in the cyberlink forum!!
> http://sourceforge.net/forum/forum.php?thread_id=1952657&forum_id=258158
> ----------------------------------------------------------------------------------------------------------------------------
> if you need something else please contact me! :)

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (FELIX-642) upnp event delivery to OSGi event listeners fails on random devices after a certain period of time

Posted by "Daniel Felsing (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/FELIX-642?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Daniel Felsing updated FELIX-642:
---------------------------------

    Description: 
Ok...overall problem is as follows:

upnp event delivery to OSGi event listeners fails on random devices after a certain period of time


Overall Environment Setup
-------------------------
- i have two hosts A and B => A is a Bridge exporting about 20 devices at the moment (will get more - it's a X10 like system), B acts as a central server for the devices (Smart Home implementation)
- A is a SensorBridge...and B a central controlpoint importing all those devices
- both ends use upnpbasedriver 0.8 and extra bundle from felix project
- the two hosts are connected through a Gigabit Switch (NO WIRELESS USED!)
- all the devices on the server (so the central smart home controller) that get imported get refined. They subscribe to the upnp device it refines to get notified on event change.
 - on the central server (Host B) i subscribe to UPnP Devices exported by Host A using UPnPSubscriber Helper class of the extra bundle


Issues
------
- "SOMETIMES" on initial subscription not all devices get notified about the initial status (devices get found properly though)
- after some time of operation random devices begin to fail - that means..they do not get notified about event changes anymore, but devices are still present (so they are still there as UPnPDevice instances in the central server)....

=> i had debug enabled....and as i see i still receive the event-change notifies on my Host B (=central server)....if i "resubscribe" to the event listener of the failed device everything works again (i dont need to restart the whole basedriver or osgi framework to let it work again - just my refining driver must be restarted which does the subscription to the devices using UPnPSubscriber class) ...


Tests:
-----------------
- yes - every device exported by the upnpsensorbridge (=Host A) gets found by the central server (=Host B) 

- upnp tester of felix project experiences same issues

- the REFINED devices on the SERVER themselves are using the felix helper class to subscribe to the events:
		// create upnp listener - if evented is true
		subscriber = new UPnPSubscriber(bundleContext, this);
		subscriber.subscribeAllServicesOf(super.getUPnPDeviceUDN());

- i also tried: 		EventListener test = new EventListener();
		                servReg = context.registerService(UPnPEventListener.class.getName(), test, null);
(so not using UPnPSubscriber) => same problem...so UPnPSubscriber may not be the root of the problem

- the upnp device implementation on the host exporting the upnp devices ( =Host A, sensorbridge) are using the following line to expose event notifier
		// setup event notifier
		notify_switch = new UPnPEventNotifier(context, this, switchdevswitchservice, switchDev);



if you need something else please contact me! :)



  was:
Is it possible that my issue is connected to this one mentioned in the cyberlink forum?

Stefano answered to it in the cyberlink forum!!
http://sourceforge.net/forum/forum.php?thread_id=1952657&forum_id=258158
----------------------------------------------------------------------------------------------------------------------------


Some other valuable information:


Hi Daniel,

let's try to summarize this long thread, so that we can get a clear vision on what is going on, and you can correct my wrong understanding

Overall Environment Setup
-------------------------
 - You have two computer connected togheter by means of a switch. And they are the only two computer on the network
 - The first computer runs Felix + UPnP Base Driver
 - The second computer runs Equinox + UPnP Base Driver + *your* Sensor Base Driver + Sensor2UPnP Bridge


Issues
------
 - If you subscribe from the PC running Felix to all the UPnP Device exported by the UPnP Base Driver running on Equinox and created by your Sensor2UPnP bridge you miss some of the notification.


Questions & Tests
-----------------
 - Can you create a JIRA issue for your issue, so that it will easy to track and you will be able to post your code as zip file, instead of copy & paste
 - During your testing have you always discovered all the device exported by the Equinox computer in the Felix computer?
 - Do you miss notification even on the Equinox computer?

Ciao,
Stefano "Kismet" Lenzi



Overall Environment Setup:
--------------------------
- yes, connected by a switch
- the first computer is a UPnP Bridge for a X10 "like" system..i wrote a basedriver and upnpbridgedriver (bridgedriver is creating upnp devices for every x10 base device). It is using felix + upnpbasedriver
- the second computer acts as a server (central control point for a smart home system implementation) it's using felix also (but for developing eclipse equinox since it's more comfortable to develop) This second computer uses basedriver to import the devices xposed by the first computer...and a refinement driver is creating new objects for every upnp device found (e.g. a light device and so on)


Issues:
------
- all the devices on the server (so the central smart home controller) that get imported get refined. They subscribe to the upnp device it refines to get notified on event change.
Problem is: not all devices refined devices which act as listeners on the SERVER get notified on INITIAL subscription (when i subscribe the device with felix tester also no notification is delivered....)...when this happens and i actually change the state of a sensor a notification is sent (to the device and upnp felix tester) and everything begins to work properly.

Question & Tests:
-----------------
- yes i can :)
- yes - every device exported by the upnpsensorbridge (=Felix Computer) gets found by the central server (=equinox computer) It is really just an issue with single "upnpservices". Here i saw something strange. When i restart the bridgeDriver on Felix computer (exporting my upnp devices) The "getCurrentValue()" methods get called more and more often the more often i restart the "bridgeDriver". Is this a normal behavior? It seems to me as state variables Of the services get mixed up or not cancelled when unregistering or something.
- i have only one computer where i test the notification -> on the central equinox server computer.
On the felix computer exporting my upnp devices i am justwondering about the strange calls to "getCurrentValue" i described you 





some code parts that may be for particular interest:
---------------------------------------------------------------------
UPnP Event Tester code on the SERVER side (central server importing the upnp devices from the second one)

public class Activator implements BundleActivator {

	private ServiceRegistration servReg;
	
	/*
	 * (non-Javadoc)
	 * @see org.osgi.framework.BundleActivator#start(org.osgi.framework.BundleContext)
	 */
	public void start(BundleContext context) throws Exception {
		EventListener test = new EventListener();
		servReg = context.registerService(UPnPEventListener.class.getName(), test, null);
	}

	/*
	 * (non-Javadoc)
	 * @see org.osgi.framework.BundleActivator#stop(org.osgi.framework.BundleContext)
	 */
	public void stop(BundleContext context) throws Exception {
		servReg.unregister();
	}

}


public class EventListener implements UPnPEventListener {

	private ArrayList<String> knownDevs = new ArrayList<String>();
	
	@Override
	public synchronized void notifyUPnPEvent(String deviceId, String serviceId, Dictionary events) {
		String output = "";
		output += deviceId + " " + serviceId;
		
		Enumeration eventit = events.keys();
		
		while (eventit.hasMoreElements()) {
			String key = (String) eventit.nextElement();
			output += key + " " + events.get(key) + "\n";
		}
				
		if (!knownDevs.contains(deviceId)) {
			knownDevs.add(deviceId);
		}
		System.err.println(output + "#diff Devices:" + knownDevs.size());
		System.err.flush();
		
	}

}

the REFINED devices on the SERVER themselves are using the felix helper class to subscribe to the events:
		// create upnp listener - if evented is true
		subscriber = new UPnPSubscriber(bundleContext, this);
		subscriber.subscribeAllServicesOf(super.getUPnPDeviceUDN());


the upnp device implementation on the host exporting the upnp devices are using the following line to expose event notifier

		// setup event notifier
		notify_switch = new UPnPEventNotifier(context, this, switchdevswitchservice, switchDev);



if you need something else please contact me! :)



        Summary: upnp event delivery to OSGi event listeners fails on random devices after a certain period of time  (was: initial event delivery for new event listeners fails random devices)

> upnp event delivery to OSGi event listeners fails on random devices after a certain period of time
> --------------------------------------------------------------------------------------------------
>
>                 Key: FELIX-642
>                 URL: https://issues.apache.org/jira/browse/FELIX-642
>             Project: Felix
>          Issue Type: Bug
>          Components: UPnP Subproject
>    Affects Versions: upnp-basedriver-0.8.0
>            Reporter: Daniel Felsing
>            Priority: Blocker
>             Fix For: upnp-basedriver-0.8.0
>
>
> Ok...overall problem is as follows:
> upnp event delivery to OSGi event listeners fails on random devices after a certain period of time
> Overall Environment Setup
> -------------------------
> - i have two hosts A and B => A is a Bridge exporting about 20 devices at the moment (will get more - it's a X10 like system), B acts as a central server for the devices (Smart Home implementation)
> - A is a SensorBridge...and B a central controlpoint importing all those devices
> - both ends use upnpbasedriver 0.8 and extra bundle from felix project
> - the two hosts are connected through a Gigabit Switch (NO WIRELESS USED!)
> - all the devices on the server (so the central smart home controller) that get imported get refined. They subscribe to the upnp device it refines to get notified on event change.
>  - on the central server (Host B) i subscribe to UPnP Devices exported by Host A using UPnPSubscriber Helper class of the extra bundle
> Issues
> ------
> - "SOMETIMES" on initial subscription not all devices get notified about the initial status (devices get found properly though)
> - after some time of operation random devices begin to fail - that means..they do not get notified about event changes anymore, but devices are still present (so they are still there as UPnPDevice instances in the central server)....
> => i had debug enabled....and as i see i still receive the event-change notifies on my Host B (=central server)....if i "resubscribe" to the event listener of the failed device everything works again (i dont need to restart the whole basedriver or osgi framework to let it work again - just my refining driver must be restarted which does the subscription to the devices using UPnPSubscriber class) ...
> Tests:
> -----------------
> - yes - every device exported by the upnpsensorbridge (=Host A) gets found by the central server (=Host B) 
> - upnp tester of felix project experiences same issues
> - the REFINED devices on the SERVER themselves are using the felix helper class to subscribe to the events:
> 		// create upnp listener - if evented is true
> 		subscriber = new UPnPSubscriber(bundleContext, this);
> 		subscriber.subscribeAllServicesOf(super.getUPnPDeviceUDN());
> - i also tried: 		EventListener test = new EventListener();
> 		                servReg = context.registerService(UPnPEventListener.class.getName(), test, null);
> (so not using UPnPSubscriber) => same problem...so UPnPSubscriber may not be the root of the problem
> - the upnp device implementation on the host exporting the upnp devices ( =Host A, sensorbridge) are using the following line to expose event notifier
> 		// setup event notifier
> 		notify_switch = new UPnPEventNotifier(context, this, switchdevswitchservice, switchDev);
> if you need something else please contact me! :)

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (FELIX-642) initial event delivery for new event listeners fails random devices

Posted by "Daniel Felsing (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/FELIX-642?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Daniel Felsing updated FELIX-642:
---------------------------------

    Description: 
Is it possible that my issue is connected to this one mentioned in the cyberlink forum?

Stefano answered to it in the cyberlink forum!!
http://sourceforge.net/forum/forum.php?thread_id=1952657&forum_id=258158
----------------------------------------------------------------------------------------------------------------------------


Some other valuable information:


Hi Daniel,

let's try to summarize this long thread, so that we can get a clear vision on what is going on, and you can correct my wrong understanding

Overall Environment Setup
-------------------------
 - You have two computer connected togheter by means of a switch. And they are the only two computer on the network
 - The first computer runs Felix + UPnP Base Driver
 - The second computer runs Equinox + UPnP Base Driver + *your* Sensor Base Driver + Sensor2UPnP Bridge


Issues
------
 - If you subscribe from the PC running Felix to all the UPnP Device exported by the UPnP Base Driver running on Equinox and created by your Sensor2UPnP bridge you miss some of the notification.


Questions & Tests
-----------------
 - Can you create a JIRA issue for your issue, so that it will easy to track and you will be able to post your code as zip file, instead of copy & paste
 - During your testing have you always discovered all the device exported by the Equinox computer in the Felix computer?
 - Do you miss notification even on the Equinox computer?

Ciao,
Stefano "Kismet" Lenzi



Overall Environment Setup:
--------------------------
- yes, connected by a switch
- the first computer is a UPnP Bridge for a X10 "like" system..i wrote a basedriver and upnpbridgedriver (bridgedriver is creating upnp devices for every x10 base device). It is using felix + upnpbasedriver
- the second computer acts as a server (central control point for a smart home system implementation) it's using felix also (but for developing eclipse equinox since it's more comfortable to develop) This second computer uses basedriver to import the devices xposed by the first computer...and a refinement driver is creating new objects for every upnp device found (e.g. a light device and so on)


Issues:
------
- all the devices on the server (so the central smart home controller) that get imported get refined. They subscribe to the upnp device it refines to get notified on event change.
Problem is: not all devices refined devices which act as listeners on the SERVER get notified on INITIAL subscription (when i subscribe the device with felix tester also no notification is delivered....)...when this happens and i actually change the state of a sensor a notification is sent (to the device and upnp felix tester) and everything begins to work properly.

Question & Tests:
-----------------
- yes i can :)
- yes - every device exported by the upnpsensorbridge (=Felix Computer) gets found by the central server (=equinox computer) It is really just an issue with single "upnpservices". Here i saw something strange. When i restart the bridgeDriver on Felix computer (exporting my upnp devices) The "getCurrentValue()" methods get called more and more often the more often i restart the "bridgeDriver". Is this a normal behavior? It seems to me as state variables Of the services get mixed up or not cancelled when unregistering or something.
- i have only one computer where i test the notification -> on the central equinox server computer.
On the felix computer exporting my upnp devices i am justwondering about the strange calls to "getCurrentValue" i described you 





some code parts that may be for particular interest:
---------------------------------------------------------------------
UPnP Event Tester code on the SERVER side (central server importing the upnp devices from the second one)

public class Activator implements BundleActivator {

	private ServiceRegistration servReg;
	
	/*
	 * (non-Javadoc)
	 * @see org.osgi.framework.BundleActivator#start(org.osgi.framework.BundleContext)
	 */
	public void start(BundleContext context) throws Exception {
		EventListener test = new EventListener();
		servReg = context.registerService(UPnPEventListener.class.getName(), test, null);
	}

	/*
	 * (non-Javadoc)
	 * @see org.osgi.framework.BundleActivator#stop(org.osgi.framework.BundleContext)
	 */
	public void stop(BundleContext context) throws Exception {
		servReg.unregister();
	}

}


public class EventListener implements UPnPEventListener {

	private ArrayList<String> knownDevs = new ArrayList<String>();
	
	@Override
	public synchronized void notifyUPnPEvent(String deviceId, String serviceId, Dictionary events) {
		String output = "";
		output += deviceId + " " + serviceId;
		
		Enumeration eventit = events.keys();
		
		while (eventit.hasMoreElements()) {
			String key = (String) eventit.nextElement();
			output += key + " " + events.get(key) + "\n";
		}
				
		if (!knownDevs.contains(deviceId)) {
			knownDevs.add(deviceId);
		}
		System.err.println(output + "#diff Devices:" + knownDevs.size());
		System.err.flush();
		
	}

}

the REFINED devices on the SERVER themselves are using the felix helper class to subscribe to the events:
		// create upnp listener - if evented is true
		subscriber = new UPnPSubscriber(bundleContext, this);
		subscriber.subscribeAllServicesOf(super.getUPnPDeviceUDN());


the upnp device implementation on the host exporting the upnp devices are using the following line to expose event notifier

		// setup event notifier
		notify_switch = new UPnPEventNotifier(context, this, switchdevswitchservice, switchDev);



if you need something else please contact me! :)



  was:
Hi Daniel,

let's try to summarize this long thread, so that we can get a clear vision on what is going on, and you can correct my wrong understanding

Overall Environment Setup
-------------------------
 - You have two computer connected togheter by means of a switch. And they are the only two computer on the network
 - The first computer runs Felix + UPnP Base Driver
 - The second computer runs Equinox + UPnP Base Driver + *your* Sensor Base Driver + Sensor2UPnP Bridge


Issues
------
 - If you subscribe from the PC running Felix to all the UPnP Device exported by the UPnP Base Driver running on Equinox and created by your Sensor2UPnP bridge you miss some of the notification.


Questions & Tests
-----------------
 - Can you create a JIRA issue for your issue, so that it will easy to track and you will be able to post your code as zip file, instead of copy & paste
 - During your testing have you always discovered all the device exported by the Equinox computer in the Felix computer?
 - Do you miss notification even on the Equinox computer?

Ciao,
Stefano "Kismet" Lenzi



Overall Environment Setup:
--------------------------
- yes, connected by a switch
- the first computer is a UPnP Bridge for a X10 "like" system..i wrote a basedriver and upnpbridgedriver (bridgedriver is creating upnp devices for every x10 base device). It is using felix + upnpbasedriver
- the second computer acts as a server (central control point for a smart home system implementation) it's using felix also (but for developing eclipse equinox since it's more comfortable to develop) This second computer uses basedriver to import the devices xposed by the first computer...and a refinement driver is creating new objects for every upnp device found (e.g. a light device and so on)


Issues:
------
- all the devices on the server (so the central smart home controller) that get imported get refined. They subscribe to the upnp device it refines to get notified on event change.
Problem is: not all devices refined devices which act as listeners on the SERVER get notified on INITIAL subscription (when i subscribe the device with felix tester also no notification is delivered....)...when this happens and i actually change the state of a sensor a notification is sent (to the device and upnp felix tester) and everything begins to work properly.

Question & Tests:
-----------------
- yes i can :)
- yes - every device exported by the upnpsensorbridge (=Felix Computer) gets found by the central server (=equinox computer) It is really just an issue with single "upnpservices". Here i saw something strange. When i restart the bridgeDriver on Felix computer (exporting my upnp devices) The "getCurrentValue()" methods get called more and more often the more often i restart the "bridgeDriver". Is this a normal behavior? It seems to me as state variables Of the services get mixed up or not cancelled when unregistering or something.
- i have only one computer where i test the notification -> on the central equinox server computer.
On the felix computer exporting my upnp devices i am justwondering about the strange calls to "getCurrentValue" i described you 





some code parts that may be for particular interest:
---------------------------------------------------------------------
UPnP Event Tester code on the SERVER side (central server importing the upnp devices from the second one)

public class Activator implements BundleActivator {

	private ServiceRegistration servReg;
	
	/*
	 * (non-Javadoc)
	 * @see org.osgi.framework.BundleActivator#start(org.osgi.framework.BundleContext)
	 */
	public void start(BundleContext context) throws Exception {
		EventListener test = new EventListener();
		servReg = context.registerService(UPnPEventListener.class.getName(), test, null);
	}

	/*
	 * (non-Javadoc)
	 * @see org.osgi.framework.BundleActivator#stop(org.osgi.framework.BundleContext)
	 */
	public void stop(BundleContext context) throws Exception {
		servReg.unregister();
	}

}


public class EventListener implements UPnPEventListener {

	private ArrayList<String> knownDevs = new ArrayList<String>();
	
	@Override
	public synchronized void notifyUPnPEvent(String deviceId, String serviceId, Dictionary events) {
		String output = "";
		output += deviceId + " " + serviceId;
		
		Enumeration eventit = events.keys();
		
		while (eventit.hasMoreElements()) {
			String key = (String) eventit.nextElement();
			output += key + " " + events.get(key) + "\n";
		}
				
		if (!knownDevs.contains(deviceId)) {
			knownDevs.add(deviceId);
		}
		System.err.println(output + "#diff Devices:" + knownDevs.size());
		System.err.flush();
		
	}

}

the REFINED devices on the SERVER themselves are using the felix helper class to subscribe to the events:
		// create upnp listener - if evented is true
		subscriber = new UPnPSubscriber(bundleContext, this);
		subscriber.subscribeAllServicesOf(super.getUPnPDeviceUDN());


the upnp device implementation on the host exporting the upnp devices are using the following line to expose event notifier

		// setup event notifier
		notify_switch = new UPnPEventNotifier(context, this, switchdevswitchservice, switchDev);



if you need something else please contact me! :)




> initial event delivery for new event listeners fails random devices
> -------------------------------------------------------------------
>
>                 Key: FELIX-642
>                 URL: https://issues.apache.org/jira/browse/FELIX-642
>             Project: Felix
>          Issue Type: Bug
>          Components: UPnP Subproject
>    Affects Versions: upnp-basedriver-0.8.0
>            Reporter: Daniel Felsing
>            Priority: Blocker
>             Fix For: upnp-basedriver-0.8.0
>
>
> Is it possible that my issue is connected to this one mentioned in the cyberlink forum?
> Stefano answered to it in the cyberlink forum!!
> http://sourceforge.net/forum/forum.php?thread_id=1952657&forum_id=258158
> ----------------------------------------------------------------------------------------------------------------------------
> Some other valuable information:
> Hi Daniel,
> let's try to summarize this long thread, so that we can get a clear vision on what is going on, and you can correct my wrong understanding
> Overall Environment Setup
> -------------------------
>  - You have two computer connected togheter by means of a switch. And they are the only two computer on the network
>  - The first computer runs Felix + UPnP Base Driver
>  - The second computer runs Equinox + UPnP Base Driver + *your* Sensor Base Driver + Sensor2UPnP Bridge
> Issues
> ------
>  - If you subscribe from the PC running Felix to all the UPnP Device exported by the UPnP Base Driver running on Equinox and created by your Sensor2UPnP bridge you miss some of the notification.
> Questions & Tests
> -----------------
>  - Can you create a JIRA issue for your issue, so that it will easy to track and you will be able to post your code as zip file, instead of copy & paste
>  - During your testing have you always discovered all the device exported by the Equinox computer in the Felix computer?
>  - Do you miss notification even on the Equinox computer?
> Ciao,
> Stefano "Kismet" Lenzi
> Overall Environment Setup:
> --------------------------
> - yes, connected by a switch
> - the first computer is a UPnP Bridge for a X10 "like" system..i wrote a basedriver and upnpbridgedriver (bridgedriver is creating upnp devices for every x10 base device). It is using felix + upnpbasedriver
> - the second computer acts as a server (central control point for a smart home system implementation) it's using felix also (but for developing eclipse equinox since it's more comfortable to develop) This second computer uses basedriver to import the devices xposed by the first computer...and a refinement driver is creating new objects for every upnp device found (e.g. a light device and so on)
> Issues:
> ------
> - all the devices on the server (so the central smart home controller) that get imported get refined. They subscribe to the upnp device it refines to get notified on event change.
> Problem is: not all devices refined devices which act as listeners on the SERVER get notified on INITIAL subscription (when i subscribe the device with felix tester also no notification is delivered....)...when this happens and i actually change the state of a sensor a notification is sent (to the device and upnp felix tester) and everything begins to work properly.
> Question & Tests:
> -----------------
> - yes i can :)
> - yes - every device exported by the upnpsensorbridge (=Felix Computer) gets found by the central server (=equinox computer) It is really just an issue with single "upnpservices". Here i saw something strange. When i restart the bridgeDriver on Felix computer (exporting my upnp devices) The "getCurrentValue()" methods get called more and more often the more often i restart the "bridgeDriver". Is this a normal behavior? It seems to me as state variables Of the services get mixed up or not cancelled when unregistering or something.
> - i have only one computer where i test the notification -> on the central equinox server computer.
> On the felix computer exporting my upnp devices i am justwondering about the strange calls to "getCurrentValue" i described you 
> some code parts that may be for particular interest:
> ---------------------------------------------------------------------
> UPnP Event Tester code on the SERVER side (central server importing the upnp devices from the second one)
> public class Activator implements BundleActivator {
> 	private ServiceRegistration servReg;
> 	
> 	/*
> 	 * (non-Javadoc)
> 	 * @see org.osgi.framework.BundleActivator#start(org.osgi.framework.BundleContext)
> 	 */
> 	public void start(BundleContext context) throws Exception {
> 		EventListener test = new EventListener();
> 		servReg = context.registerService(UPnPEventListener.class.getName(), test, null);
> 	}
> 	/*
> 	 * (non-Javadoc)
> 	 * @see org.osgi.framework.BundleActivator#stop(org.osgi.framework.BundleContext)
> 	 */
> 	public void stop(BundleContext context) throws Exception {
> 		servReg.unregister();
> 	}
> }
> public class EventListener implements UPnPEventListener {
> 	private ArrayList<String> knownDevs = new ArrayList<String>();
> 	
> 	@Override
> 	public synchronized void notifyUPnPEvent(String deviceId, String serviceId, Dictionary events) {
> 		String output = "";
> 		output += deviceId + " " + serviceId;
> 		
> 		Enumeration eventit = events.keys();
> 		
> 		while (eventit.hasMoreElements()) {
> 			String key = (String) eventit.nextElement();
> 			output += key + " " + events.get(key) + "\n";
> 		}
> 				
> 		if (!knownDevs.contains(deviceId)) {
> 			knownDevs.add(deviceId);
> 		}
> 		System.err.println(output + "#diff Devices:" + knownDevs.size());
> 		System.err.flush();
> 		
> 	}
> }
> the REFINED devices on the SERVER themselves are using the felix helper class to subscribe to the events:
> 		// create upnp listener - if evented is true
> 		subscriber = new UPnPSubscriber(bundleContext, this);
> 		subscriber.subscribeAllServicesOf(super.getUPnPDeviceUDN());
> the upnp device implementation on the host exporting the upnp devices are using the following line to expose event notifier
> 		// setup event notifier
> 		notify_switch = new UPnPEventNotifier(context, this, switchdevswitchservice, switchDev);
> if you need something else please contact me! :)

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Re: [jira] Updated: (FELIX-642) upnp event delivery to OSGi event listeners fails on random devices after a certain period of time

Posted by "Jackson, Bruce" <br...@qualcomm.com>.
It sounds like there's some kind of timeout happening in the base driver which is causing un-subscription to occur. Have you tried spawning a thread in A that generates regular "alive" events that don't do anything but just keep the system up?

I've just looked at page 62 of the UPnP spec, and its clear that subscriptions have a duration field, and in the base driver code (in org.apache.felix.upnp.basedriver.importer.core.event.thread.SubScriber.java) this is hard coded to 12000. Thus, the subscription will indeed timeout after 12000 milliseconds, and will need to be refreshed. It doesn't look like this value can be changed: perhaps this should be raised as a bug?

On 04/08/2008 10:19, "Daniel Felsing (JIRA)" <ji...@apache.org> wrote:



     [ https://issues.apache.org/jira/browse/FELIX-642?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Daniel Felsing updated FELIX-642:
---------------------------------

    Description:
Ok...overall problem is as follows:

upnp event delivery to OSGi event listeners fails on random devices after a certain period of time


Overall Environment Setup
-------------------------
- i have two hosts A and B => A is a Bridge exporting about 20 devices at the moment (will get more - it's a X10 like system), B acts as a central server for the devices (Smart Home implementation)
- A is a SensorBridge...and B a central controlpoint importing all those devices
- both ends use upnpbasedriver 0.8 and extra bundle from felix project
- the two hosts are connected through a Gigabit Switch (NO WIRELESS USED!)
- all the devices on the server (so the central smart home controller) that get imported get refined. They subscribe to the upnp device it refines to get notified on event change.
- on the central server (Host B) i subscribe to UPnP Devices exported by Host A using UPnPSubscriber Helper class of the extra bundle


Issues
------
- "SOMETIMES" on initial subscription not all devices get notified about the initial status (devices get found properly though)
- after some time of operation random devices begin to fail - that means..they do not get notified about event changes anymore, but devices are still present (so they are still there as UPnPDevice instances in the central server)....

=> i had debug enabled....and as i see i still receive the event-change notifies on my Host B (=central server)....if i "resubscribe" to the event listener of the failed device everything works again (i dont need to restart the whole basedriver or osgi framework to let it work again - just my refining driver must be restarted which does the subscription to the devices using UPnPSubscriber class) ...


Tests:
-----------------
- yes - every device exported by the upnpsensorbridge (=Host A) gets found by the central server (=Host B)

- upnp tester of felix project experiences same issues

- the REFINED devices on the SERVER themselves are using the felix helper class to subscribe to the events:
                // create upnp listener - if evented is true
                subscriber = new UPnPSubscriber(bundleContext, this);
                subscriber.subscribeAllServicesOf(super.getUPnPDeviceUDN());

- i also tried:                 EventListener test = new EventListener();
                                servReg = context.registerService(UPnPEventListener.class.getName(), test, null);
(so not using UPnPSubscriber) => same problem...so UPnPSubscriber may not be the root of the problem

- the upnp device implementation on the host exporting the upnp devices ( =Host A, sensorbridge) are using the following line to expose event notifier
                // setup event notifier
                notify_switch = new UPnPEventNotifier(context, this, switchdevswitchservice, switchDev);



if you need something else please contact me! :)



  was:
Ok...overall problem is as follows:

upnp event delivery to OSGi event listeners fails on random devices after a certain period of time


Overall Environment Setup
-------------------------
- i have two hosts A and B => A is a Bridge exporting about 20 devices at the moment (will get more - it's a X10 like system), B acts as a central server for the devices (Smart Home implementation)
- A is a SensorBridge...and B a central controlpoint importing all those devices
- both ends use upnpbasedriver 0.8 and extra bundle from felix project
- the two hosts are connected through a Gigabit Switch (NO WIRELESS USED!)
- all the devices on the server (so the central smart home controller) that get imported get refined. They subscribe to the upnp device it refines to get notified on event change.
 - on the central server (Host B) i subscribe to UPnP Devices exported by Host A using UPnPSubscriber Helper class of the extra bundle


Issues
------
- "SOMETIMES" on initial subscription not all devices get notified about the initial status (devices get found properly though)
- after some time of operation random devices begin to fail - that means..they do not get notified about event changes anymore, but devices are still present (so they are still there as UPnPDevice instances in the central server)....

=> i had debug enabled....and as i see i still receive the event-change notifies on my Host B (=central server)....if i "resubscribe" to the event listener of the failed device everything works again (i dont need to restart the whole basedriver or osgi framework to let it work again - just my refining driver must be restarted which does the subscription to the devices using UPnPSubscriber class) ...


Tests:
-----------------
- yes - every device exported by the upnpsensorbridge (=Host A) gets found by the central server (=Host B)

- upnp tester of felix project experiences same issues

- the REFINED devices on the SERVER themselves are using the felix helper class to subscribe to the events:
                // create upnp listener - if evented is true
                subscriber = new UPnPSubscriber(bundleContext, this);
                subscriber.subscribeAllServicesOf(super.getUPnPDeviceUDN());

- i also tried:                 EventListener test = new EventListener();
                                servReg = context.registerService(UPnPEventListener.class.getName(), test, null);
(so not using UPnPSubscriber) => same problem...so UPnPSubscriber may not be the root of the problem

- the upnp device implementation on the host exporting the upnp devices ( =Host A, sensorbridge) are using the following line to expose event notifier
                // setup event notifier
                notify_switch = new UPnPEventNotifier(context, this, switchdevswitchservice, switchDev);



if you need something else please contact me! :)




> upnp event delivery to OSGi event listeners fails on random devices after a certain period of time
> --------------------------------------------------------------------------------------------------
>
>                 Key: FELIX-642
>                 URL: https://issues.apache.org/jira/browse/FELIX-642
>             Project: Felix
>          Issue Type: Bug
>          Components: UPnP Subproject
>    Affects Versions: upnp-basedriver-0.8.0
>            Reporter: Daniel Felsing
>            Priority: Blocker
>             Fix For: upnp-basedriver-0.8.0
>
>
> Ok...overall problem is as follows:
> upnp event delivery to OSGi event listeners fails on random devices after a certain period of time
> Overall Environment Setup
> -------------------------
> - i have two hosts A and B => A is a Bridge exporting about 20 devices at the moment (will get more - it's a X10 like system), B acts as a central server for the devices (Smart Home implementation)
> - A is a SensorBridge...and B a central controlpoint importing all those devices
> - both ends use upnpbasedriver 0.8 and extra bundle from felix project
> - the two hosts are connected through a Gigabit Switch (NO WIRELESS USED!)
> - all the devices on the server (so the central smart home controller) that get imported get refined. They subscribe to the upnp device it refines to get notified on event change.
> - on the central server (Host B) i subscribe to UPnP Devices exported by Host A using UPnPSubscriber Helper class of the extra bundle
> Issues
> ------
> - "SOMETIMES" on initial subscription not all devices get notified about the initial status (devices get found properly though)
> - after some time of operation random devices begin to fail - that means..they do not get notified about event changes anymore, but devices are still present (so they are still there as UPnPDevice instances in the central server)....
> => i had debug enabled....and as i see i still receive the event-change notifies on my Host B (=central server)....if i "resubscribe" to the event listener of the failed device everything works again (i dont need to restart the whole basedriver or osgi framework to let it work again - just my refining driver must be restarted which does the subscription to the devices using UPnPSubscriber class) ...
> Tests:
> -----------------
> - yes - every device exported by the upnpsensorbridge (=Host A) gets found by the central server (=Host B)
> - upnp tester of felix project experiences same issues
> - the REFINED devices on the SERVER themselves are using the felix helper class to subscribe to the events:
>               // create upnp listener - if evented is true
>               subscriber = new UPnPSubscriber(bundleContext, this);
>               subscriber.subscribeAllServicesOf(super.getUPnPDeviceUDN());
> - i also tried:               EventListener test = new EventListener();
>                               servReg = context.registerService(UPnPEventListener.class.getName(), test, null);
> (so not using UPnPSubscriber) => same problem...so UPnPSubscriber may not be the root of the problem
> - the upnp device implementation on the host exporting the upnp devices ( =Host A, sensorbridge) are using the following line to expose event notifier
>               // setup event notifier
>               notify_switch = new UPnPEventNotifier(context, this, switchdevswitchservice, switchDev);
> if you need something else please contact me! :)

--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.



[jira] Updated: (FELIX-642) upnp event delivery to OSGi event listeners fails on random devices after a certain period of time

Posted by "Daniel Felsing (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/FELIX-642?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Daniel Felsing updated FELIX-642:
---------------------------------

    Description: 
Ok...overall problem is as follows:

upnp event delivery to OSGi event listeners fails on random devices after a certain period of time


Overall Environment Setup
-------------------------
- i have two hosts A and B => A is a Bridge exporting about 20 devices at the moment (will get more - it's a X10 like system), B acts as a central server for the devices (Smart Home implementation)
- A is a SensorBridge...and B a central controlpoint importing all those devices
- both ends use upnpbasedriver 0.8 and extra bundle from felix project
- the two hosts are connected through a Gigabit Switch (NO WIRELESS USED!)
- all the devices on the server (so the central smart home controller) that get imported get refined. They subscribe to the upnp device it refines to get notified on event change.
- on the central server (Host B) i subscribe to UPnP Devices exported by Host A using UPnPSubscriber Helper class of the extra bundle


Issues
------
- "SOMETIMES" on initial subscription not all devices get notified about the initial status (devices get found properly though)
- after some time of operation random devices begin to fail - that means..they do not get notified about event changes anymore, but devices are still present (so they are still there as UPnPDevice instances in the central server)....

=> i had debug enabled....and as i see i still receive the event-change notifies on my Host B (=central server)....if i "resubscribe" to the event listener of the failed device everything works again (i dont need to restart the whole basedriver or osgi framework to let it work again - just my refining driver must be restarted which does the subscription to the devices using UPnPSubscriber class) ...


Tests:
-----------------
- yes - every device exported by the upnpsensorbridge (=Host A) gets found by the central server (=Host B) 

- upnp tester of felix project experiences same issues

- the REFINED devices on the SERVER themselves are using the felix helper class to subscribe to the events:
		// create upnp listener - if evented is true
		subscriber = new UPnPSubscriber(bundleContext, this);
		subscriber.subscribeAllServicesOf(super.getUPnPDeviceUDN());

- i also tried: 		EventListener test = new EventListener();
		                servReg = context.registerService(UPnPEventListener.class.getName(), test, null);
(so not using UPnPSubscriber) => same problem...so UPnPSubscriber may not be the root of the problem

- the upnp device implementation on the host exporting the upnp devices ( =Host A, sensorbridge) are using the following line to expose event notifier
		// setup event notifier
		notify_switch = new UPnPEventNotifier(context, this, switchdevswitchservice, switchDev);



if you need something else please contact me! :)



  was:
Ok...overall problem is as follows:

upnp event delivery to OSGi event listeners fails on random devices after a certain period of time


Overall Environment Setup
-------------------------
- i have two hosts A and B => A is a Bridge exporting about 20 devices at the moment (will get more - it's a X10 like system), B acts as a central server for the devices (Smart Home implementation)
- A is a SensorBridge...and B a central controlpoint importing all those devices
- both ends use upnpbasedriver 0.8 and extra bundle from felix project
- the two hosts are connected through a Gigabit Switch (NO WIRELESS USED!)
- all the devices on the server (so the central smart home controller) that get imported get refined. They subscribe to the upnp device it refines to get notified on event change.
 - on the central server (Host B) i subscribe to UPnP Devices exported by Host A using UPnPSubscriber Helper class of the extra bundle


Issues
------
- "SOMETIMES" on initial subscription not all devices get notified about the initial status (devices get found properly though)
- after some time of operation random devices begin to fail - that means..they do not get notified about event changes anymore, but devices are still present (so they are still there as UPnPDevice instances in the central server)....

=> i had debug enabled....and as i see i still receive the event-change notifies on my Host B (=central server)....if i "resubscribe" to the event listener of the failed device everything works again (i dont need to restart the whole basedriver or osgi framework to let it work again - just my refining driver must be restarted which does the subscription to the devices using UPnPSubscriber class) ...


Tests:
-----------------
- yes - every device exported by the upnpsensorbridge (=Host A) gets found by the central server (=Host B) 

- upnp tester of felix project experiences same issues

- the REFINED devices on the SERVER themselves are using the felix helper class to subscribe to the events:
		// create upnp listener - if evented is true
		subscriber = new UPnPSubscriber(bundleContext, this);
		subscriber.subscribeAllServicesOf(super.getUPnPDeviceUDN());

- i also tried: 		EventListener test = new EventListener();
		                servReg = context.registerService(UPnPEventListener.class.getName(), test, null);
(so not using UPnPSubscriber) => same problem...so UPnPSubscriber may not be the root of the problem

- the upnp device implementation on the host exporting the upnp devices ( =Host A, sensorbridge) are using the following line to expose event notifier
		// setup event notifier
		notify_switch = new UPnPEventNotifier(context, this, switchdevswitchservice, switchDev);



if you need something else please contact me! :)




> upnp event delivery to OSGi event listeners fails on random devices after a certain period of time
> --------------------------------------------------------------------------------------------------
>
>                 Key: FELIX-642
>                 URL: https://issues.apache.org/jira/browse/FELIX-642
>             Project: Felix
>          Issue Type: Bug
>          Components: UPnP Subproject
>    Affects Versions: upnp-basedriver-0.8.0
>            Reporter: Daniel Felsing
>            Priority: Blocker
>             Fix For: upnp-basedriver-0.8.0
>
>
> Ok...overall problem is as follows:
> upnp event delivery to OSGi event listeners fails on random devices after a certain period of time
> Overall Environment Setup
> -------------------------
> - i have two hosts A and B => A is a Bridge exporting about 20 devices at the moment (will get more - it's a X10 like system), B acts as a central server for the devices (Smart Home implementation)
> - A is a SensorBridge...and B a central controlpoint importing all those devices
> - both ends use upnpbasedriver 0.8 and extra bundle from felix project
> - the two hosts are connected through a Gigabit Switch (NO WIRELESS USED!)
> - all the devices on the server (so the central smart home controller) that get imported get refined. They subscribe to the upnp device it refines to get notified on event change.
> - on the central server (Host B) i subscribe to UPnP Devices exported by Host A using UPnPSubscriber Helper class of the extra bundle
> Issues
> ------
> - "SOMETIMES" on initial subscription not all devices get notified about the initial status (devices get found properly though)
> - after some time of operation random devices begin to fail - that means..they do not get notified about event changes anymore, but devices are still present (so they are still there as UPnPDevice instances in the central server)....
> => i had debug enabled....and as i see i still receive the event-change notifies on my Host B (=central server)....if i "resubscribe" to the event listener of the failed device everything works again (i dont need to restart the whole basedriver or osgi framework to let it work again - just my refining driver must be restarted which does the subscription to the devices using UPnPSubscriber class) ...
> Tests:
> -----------------
> - yes - every device exported by the upnpsensorbridge (=Host A) gets found by the central server (=Host B) 
> - upnp tester of felix project experiences same issues
> - the REFINED devices on the SERVER themselves are using the felix helper class to subscribe to the events:
> 		// create upnp listener - if evented is true
> 		subscriber = new UPnPSubscriber(bundleContext, this);
> 		subscriber.subscribeAllServicesOf(super.getUPnPDeviceUDN());
> - i also tried: 		EventListener test = new EventListener();
> 		                servReg = context.registerService(UPnPEventListener.class.getName(), test, null);
> (so not using UPnPSubscriber) => same problem...so UPnPSubscriber may not be the root of the problem
> - the upnp device implementation on the host exporting the upnp devices ( =Host A, sensorbridge) are using the following line to expose event notifier
> 		// setup event notifier
> 		notify_switch = new UPnPEventNotifier(context, this, switchdevswitchservice, switchDev);
> if you need something else please contact me! :)

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (FELIX-642) initial event delivery for new event listeners fails random devices

Posted by "Daniel Felsing (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/FELIX-642?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12616542#action_12616542 ] 

Daniel Felsing commented on FELIX-642:
--------------------------------------

i have one additional information which may be valuable........

=> this is not happening per "device" but also it may be that one service of a device is sending the initial value...and the second one not ... just for information :)

> initial event delivery for new event listeners fails random devices
> -------------------------------------------------------------------
>
>                 Key: FELIX-642
>                 URL: https://issues.apache.org/jira/browse/FELIX-642
>             Project: Felix
>          Issue Type: Bug
>          Components: UPnP Subproject
>    Affects Versions: upnp-basedriver-0.8.0
>            Reporter: Daniel Felsing
>            Priority: Blocker
>             Fix For: upnp-basedriver-0.8.0
>
>
> Hi Daniel,
> let's try to summarize this long thread, so that we can get a clear vision on what is going on, and you can correct my wrong understanding
> Overall Environment Setup
> -------------------------
>  - You have two computer connected togheter by means of a switch. And they are the only two computer on the network
>  - The first computer runs Felix + UPnP Base Driver
>  - The second computer runs Equinox + UPnP Base Driver + *your* Sensor Base Driver + Sensor2UPnP Bridge
> Issues
> ------
>  - If you subscribe from the PC running Felix to all the UPnP Device exported by the UPnP Base Driver running on Equinox and created by your Sensor2UPnP bridge you miss some of the notification.
> Questions & Tests
> -----------------
>  - Can you create a JIRA issue for your issue, so that it will easy to track and you will be able to post your code as zip file, instead of copy & paste
>  - During your testing have you always discovered all the device exported by the Equinox computer in the Felix computer?
>  - Do you miss notification even on the Equinox computer?
> Ciao,
> Stefano "Kismet" Lenzi
> Overall Environment Setup:
> --------------------------
> - yes, connected by a switch
> - the first computer is a UPnP Bridge for a X10 "like" system..i wrote a basedriver and upnpbridgedriver (bridgedriver is creating upnp devices for every x10 base device). It is using felix + upnpbasedriver
> - the second computer acts as a server (central control point for a smart home system implementation) it's using felix also (but for developing eclipse equinox since it's more comfortable to develop) This second computer uses basedriver to import the devices xposed by the first computer...and a refinement driver is creating new objects for every upnp device found (e.g. a light device and so on)
> Issues:
> ------
> - all the devices on the server (so the central smart home controller) that get imported get refined. They subscribe to the upnp device it refines to get notified on event change.
> Problem is: not all devices refined devices which act as listeners on the SERVER get notified on INITIAL subscription (when i subscribe the device with felix tester also no notification is delivered....)...when this happens and i actually change the state of a sensor a notification is sent (to the device and upnp felix tester) and everything begins to work properly.
> Question & Tests:
> -----------------
> - yes i can :)
> - yes - every device exported by the upnpsensorbridge (=Felix Computer) gets found by the central server (=equinox computer) It is really just an issue with single "upnpservices". Here i saw something strange. When i restart the bridgeDriver on Felix computer (exporting my upnp devices) The "getCurrentValue()" methods get called more and more often the more often i restart the "bridgeDriver". Is this a normal behavior? It seems to me as state variables Of the services get mixed up or not cancelled when unregistering or something.
> - i have only one computer where i test the notification -> on the central equinox server computer.
> On the felix computer exporting my upnp devices i am justwondering about the strange calls to "getCurrentValue" i described you 
> some code parts that may be for particular interest:
> ---------------------------------------------------------------------
> UPnP Event Tester code on the SERVER side (central server importing the upnp devices from the second one)
> public class Activator implements BundleActivator {
> 	private ServiceRegistration servReg;
> 	
> 	/*
> 	 * (non-Javadoc)
> 	 * @see org.osgi.framework.BundleActivator#start(org.osgi.framework.BundleContext)
> 	 */
> 	public void start(BundleContext context) throws Exception {
> 		EventListener test = new EventListener();
> 		servReg = context.registerService(UPnPEventListener.class.getName(), test, null);
> 	}
> 	/*
> 	 * (non-Javadoc)
> 	 * @see org.osgi.framework.BundleActivator#stop(org.osgi.framework.BundleContext)
> 	 */
> 	public void stop(BundleContext context) throws Exception {
> 		servReg.unregister();
> 	}
> }
> public class EventListener implements UPnPEventListener {
> 	private ArrayList<String> knownDevs = new ArrayList<String>();
> 	
> 	@Override
> 	public synchronized void notifyUPnPEvent(String deviceId, String serviceId, Dictionary events) {
> 		String output = "";
> 		output += deviceId + " " + serviceId;
> 		
> 		Enumeration eventit = events.keys();
> 		
> 		while (eventit.hasMoreElements()) {
> 			String key = (String) eventit.nextElement();
> 			output += key + " " + events.get(key) + "\n";
> 		}
> 				
> 		if (!knownDevs.contains(deviceId)) {
> 			knownDevs.add(deviceId);
> 		}
> 		System.err.println(output + "#diff Devices:" + knownDevs.size());
> 		System.err.flush();
> 		
> 	}
> }
> the REFINED devices on the SERVER themselves are using the felix helper class to subscribe to the events:
> 		// create upnp listener - if evented is true
> 		subscriber = new UPnPSubscriber(bundleContext, this);
> 		subscriber.subscribeAllServicesOf(super.getUPnPDeviceUDN());
> the upnp device implementation on the host exporting the upnp devices are using the following line to expose event notifier
> 		// setup event notifier
> 		notify_switch = new UPnPEventNotifier(context, this, switchdevswitchservice, switchDev);
> if you need something else please contact me! :)

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (FELIX-642) upnp event delivery to OSGi event listeners fails on random devices after a certain period of time

Posted by "Daniel Felsing (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/FELIX-642?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Daniel Felsing updated FELIX-642:
---------------------------------

    Description: 
Ok...overall problem is as follows:

upnp event delivery to OSGi event listeners fails on random devices after a certain period of time


Overall Environment Setup
-------------------------
- i have two hosts A and B => A is a Bridge exporting about 20 devices at the moment (will get more - it's a X10 like system), B acts as a central server for the devices (Smart Home implementation)
- A is a SensorBridge...and B a central controlpoint importing all those devices
- both ends use upnpbasedriver 0.8 and extra bundle from felix project
- the two hosts are connected through a Gigabit Switch (NO WIRELESS USED!)
- all the devices on the server (so the central smart home controller) that get imported get refined. They subscribe to the upnp device it refines to get notified on event change.
- on the central server (Host B) i subscribe to UPnP Devices exported by Host A using UPnPSubscriber Helper class of the extra bundle


Issues
------
- "SOMETIMES" on initial subscription not all devices get notified about the initial status (devices get found properly though)
- after some time of operation random devices begin to fail - that means..they do not get notified about event changes anymore, but devices are still present (so they are still there as UPnPDevice instances in the central server)....

=> i had debug enabled....and as i see i still receive the event-change notifies on my Host B (=central server)....if i "resubscribe" to the event listener of the failed device everything works again (i dont need to restart the whole basedriver or osgi framework to let it work again - just my refining driver must be restarted which does the subscription to the devices using UPnPSubscriber class) ...

SO this STILL GETS DELIVERED, but listeners do not get notified about the change:
================REQUEST=====================
NOTIFY /evetSub HTTP/1.0
Content-Type: text/xml; charset="utf-8"
HOST: 192.168.0.5
NT: upnp:event
NTS: upnp:propchange
SID: uuid:956d-a11b-fe88-e08e
SEQ: 0
Content-Length: 165
Connection: close

<?xml version="1.0" encoding="utf-8"?>
<propertyset xmlns:e="urn:schemas-upnp-org:event-1-0">
   <property>
      <Status>off</Status>
   </property>
</propertyset>
-------------------------------------------- 


Tests:
-----------------
- yes - every device exported by the upnpsensorbridge (=Host A) gets found by the central server (=Host B) 

- upnp tester of felix project experiences same issues

- the REFINED devices on the SERVER themselves are using the felix helper class to subscribe to the events:
		// create upnp listener - if evented is true
		subscriber = new UPnPSubscriber(bundleContext, this);
		subscriber.subscribeAllServicesOf(super.getUPnPDeviceUDN());

- i also tried: 		EventListener test = new EventListener();
		                servReg = context.registerService(UPnPEventListener.class.getName(), test, null);
(so not using UPnPSubscriber) => same problem...so UPnPSubscriber may not be the root of the problem

- the upnp device implementation on the host exporting the upnp devices ( =Host A, sensorbridge) are using the following line to expose event notifier
		// setup event notifier
		notify_switch = new UPnPEventNotifier(context, this, switchdevswitchservice, switchDev);



if you need something else please contact me! :)



  was:
Ok...overall problem is as follows:

upnp event delivery to OSGi event listeners fails on random devices after a certain period of time


Overall Environment Setup
-------------------------
- i have two hosts A and B => A is a Bridge exporting about 20 devices at the moment (will get more - it's a X10 like system), B acts as a central server for the devices (Smart Home implementation)
- A is a SensorBridge...and B a central controlpoint importing all those devices
- both ends use upnpbasedriver 0.8 and extra bundle from felix project
- the two hosts are connected through a Gigabit Switch (NO WIRELESS USED!)
- all the devices on the server (so the central smart home controller) that get imported get refined. They subscribe to the upnp device it refines to get notified on event change.
- on the central server (Host B) i subscribe to UPnP Devices exported by Host A using UPnPSubscriber Helper class of the extra bundle


Issues
------
- "SOMETIMES" on initial subscription not all devices get notified about the initial status (devices get found properly though)
- after some time of operation random devices begin to fail - that means..they do not get notified about event changes anymore, but devices are still present (so they are still there as UPnPDevice instances in the central server)....

=> i had debug enabled....and as i see i still receive the event-change notifies on my Host B (=central server)....if i "resubscribe" to the event listener of the failed device everything works again (i dont need to restart the whole basedriver or osgi framework to let it work again - just my refining driver must be restarted which does the subscription to the devices using UPnPSubscriber class) ...


Tests:
-----------------
- yes - every device exported by the upnpsensorbridge (=Host A) gets found by the central server (=Host B) 

- upnp tester of felix project experiences same issues

- the REFINED devices on the SERVER themselves are using the felix helper class to subscribe to the events:
		// create upnp listener - if evented is true
		subscriber = new UPnPSubscriber(bundleContext, this);
		subscriber.subscribeAllServicesOf(super.getUPnPDeviceUDN());

- i also tried: 		EventListener test = new EventListener();
		                servReg = context.registerService(UPnPEventListener.class.getName(), test, null);
(so not using UPnPSubscriber) => same problem...so UPnPSubscriber may not be the root of the problem

- the upnp device implementation on the host exporting the upnp devices ( =Host A, sensorbridge) are using the following line to expose event notifier
		// setup event notifier
		notify_switch = new UPnPEventNotifier(context, this, switchdevswitchservice, switchDev);



if you need something else please contact me! :)




> upnp event delivery to OSGi event listeners fails on random devices after a certain period of time
> --------------------------------------------------------------------------------------------------
>
>                 Key: FELIX-642
>                 URL: https://issues.apache.org/jira/browse/FELIX-642
>             Project: Felix
>          Issue Type: Bug
>          Components: UPnP Subproject
>    Affects Versions: upnp-basedriver-0.8.0
>            Reporter: Daniel Felsing
>            Priority: Blocker
>             Fix For: upnp-basedriver-0.8.0
>
>
> Ok...overall problem is as follows:
> upnp event delivery to OSGi event listeners fails on random devices after a certain period of time
> Overall Environment Setup
> -------------------------
> - i have two hosts A and B => A is a Bridge exporting about 20 devices at the moment (will get more - it's a X10 like system), B acts as a central server for the devices (Smart Home implementation)
> - A is a SensorBridge...and B a central controlpoint importing all those devices
> - both ends use upnpbasedriver 0.8 and extra bundle from felix project
> - the two hosts are connected through a Gigabit Switch (NO WIRELESS USED!)
> - all the devices on the server (so the central smart home controller) that get imported get refined. They subscribe to the upnp device it refines to get notified on event change.
> - on the central server (Host B) i subscribe to UPnP Devices exported by Host A using UPnPSubscriber Helper class of the extra bundle
> Issues
> ------
> - "SOMETIMES" on initial subscription not all devices get notified about the initial status (devices get found properly though)
> - after some time of operation random devices begin to fail - that means..they do not get notified about event changes anymore, but devices are still present (so they are still there as UPnPDevice instances in the central server)....
> => i had debug enabled....and as i see i still receive the event-change notifies on my Host B (=central server)....if i "resubscribe" to the event listener of the failed device everything works again (i dont need to restart the whole basedriver or osgi framework to let it work again - just my refining driver must be restarted which does the subscription to the devices using UPnPSubscriber class) ...
> SO this STILL GETS DELIVERED, but listeners do not get notified about the change:
> ================REQUEST=====================
> NOTIFY /evetSub HTTP/1.0
> Content-Type: text/xml; charset="utf-8"
> HOST: 192.168.0.5
> NT: upnp:event
> NTS: upnp:propchange
> SID: uuid:956d-a11b-fe88-e08e
> SEQ: 0
> Content-Length: 165
> Connection: close
> <?xml version="1.0" encoding="utf-8"?>
> <propertyset xmlns:e="urn:schemas-upnp-org:event-1-0">
>    <property>
>       <Status>off</Status>
>    </property>
> </propertyset>
> -------------------------------------------- 
> Tests:
> -----------------
> - yes - every device exported by the upnpsensorbridge (=Host A) gets found by the central server (=Host B) 
> - upnp tester of felix project experiences same issues
> - the REFINED devices on the SERVER themselves are using the felix helper class to subscribe to the events:
> 		// create upnp listener - if evented is true
> 		subscriber = new UPnPSubscriber(bundleContext, this);
> 		subscriber.subscribeAllServicesOf(super.getUPnPDeviceUDN());
> - i also tried: 		EventListener test = new EventListener();
> 		                servReg = context.registerService(UPnPEventListener.class.getName(), test, null);
> (so not using UPnPSubscriber) => same problem...so UPnPSubscriber may not be the root of the problem
> - the upnp device implementation on the host exporting the upnp devices ( =Host A, sensorbridge) are using the following line to expose event notifier
> 		// setup event notifier
> 		notify_switch = new UPnPEventNotifier(context, this, switchdevswitchservice, switchDev);
> if you need something else please contact me! :)

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (FELIX-642) upnp event delivery to OSGi event listeners fails on random devices after a certain period of time

Posted by "Daniel Felsing (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/FELIX-642?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Daniel Felsing updated FELIX-642:
---------------------------------

    Description: 
Ok...overall problem is as follows:

upnp event delivery to OSGi event listeners fails on random devices after a certain period of time

Overall Environment Setup
-------------------------
- i have two hosts A and B => A is a Bridge exporting about 20 devices at the moment (will get more - it's a X10 like system), B acts as a central server for the devices (Smart Home implementation)
- A is a SensorBridge...and B a central controlpoint importing all those devices
- both ends use upnpbasedriver 0.8 and extra bundle from felix project
- the two hosts are connected through a Gigabit Switch (NO WIRELESS USED!)
- all the devices on the server (so the central smart home controller) that get imported get refined. They subscribe to the upnp device it refines to get notified on event change.
- on the central server (Host B) i subscribe to UPnP Devices exported by Host A using UPnPSubscriber Helper class of the extra bundle


Issues
------
- "SOMETIMES" on INITIAL subscription not all devices get notified about the initial status (devices get found properly though)
  ( see also http://www.mail-archive.com/users@felix.apache.org/msg01781.html for that)

- after some time of operation random devices begin to fail - that means..they do not get notified about event changes anymore, but devices are still present (so they are still there as UPnPDevice instances in the central server)... 

=> i had debug enabled....and as i see i still receive the event-change notifies on my Host B (=central server)....if i "resubscribe" to the event listener of the failed device everything works again (i dont need to restart the whole basedriver or osgi framework to let it work again - just my refining driver must be restarted which does the subscription to the devices using UPnPSubscriber class) ...

SO this STILL GETS DELIVERED, but listeners do not get notified about the change:
================REQUEST=====================
NOTIFY /evetSub HTTP/1.0
Content-Type: text/xml; charset="utf-8"
HOST: 192.168.0.5
NT: upnp:event
NTS: upnp:propchange
SID: uuid:956d-a11b-fe88-e08e
SEQ: 0
Content-Length: 165
Connection: close

<?xml version="1.0" encoding="utf-8"?>
<propertyset xmlns:e="urn:schemas-upnp-org:event-1-0">
   <property>
      <Status>off</Status>
   </property>
</propertyset>
-------------------------------------------- 


Tests:
-----------------
- yes - every device exported by the upnpsensorbridge (=Host A) gets found by the central server (=Host B) 

- upnp tester of felix project experiences same issues

- the REFINED devices on the SERVER themselves are using the felix helper class to subscribe to the events:
		// create upnp listener - if evented is true
		subscriber = new UPnPSubscriber(bundleContext, this);
		subscriber.subscribeAllServicesOf(super.getUPnPDeviceUDN());

- i also tried: 		EventListener test = new EventListener();
		                servReg = context.registerService(UPnPEventListener.class.getName(), test, null);
(so not using UPnPSubscriber) => same problem...so UPnPSubscriber may not be the root of the problem

- the upnp device implementation on the host exporting the upnp devices ( =Host A, sensorbridge) are using the following line to expose event notifier
		// setup event notifier
		notify_switch = new UPnPEventNotifier(context, this, switchdevswitchservice, switchDev);




================================================================================
Is it possible that my issue is connected to this one mentioned in the cyberlink forum?

Stefano answered to it in the cyberlink forum!!
http://sourceforge.net/forum/forum.php?thread_id=1952657&forum_id=258158
----------------------------------------------------------------------------------------------------------------------------

if you need something else please contact me! :)



  was:
Ok...overall problem is as follows:

upnp event delivery to OSGi event listeners fails on random devices after a certain period of time


Overall Environment Setup
-------------------------
- i have two hosts A and B => A is a Bridge exporting about 20 devices at the moment (will get more - it's a X10 like system), B acts as a central server for the devices (Smart Home implementation)
- A is a SensorBridge...and B a central controlpoint importing all those devices
- both ends use upnpbasedriver 0.8 and extra bundle from felix project
- the two hosts are connected through a Gigabit Switch (NO WIRELESS USED!)
- all the devices on the server (so the central smart home controller) that get imported get refined. They subscribe to the upnp device it refines to get notified on event change.
- on the central server (Host B) i subscribe to UPnP Devices exported by Host A using UPnPSubscriber Helper class of the extra bundle


Issues
------
- "SOMETIMES" on initial subscription not all devices get notified about the initial status (devices get found properly though)
- after some time of operation random devices begin to fail - that means..they do not get notified about event changes anymore, but devices are still present (so they are still there as UPnPDevice instances in the central server)....

=> i had debug enabled....and as i see i still receive the event-change notifies on my Host B (=central server)....if i "resubscribe" to the event listener of the failed device everything works again (i dont need to restart the whole basedriver or osgi framework to let it work again - just my refining driver must be restarted which does the subscription to the devices using UPnPSubscriber class) ...

SO this STILL GETS DELIVERED, but listeners do not get notified about the change:
================REQUEST=====================
NOTIFY /evetSub HTTP/1.0
Content-Type: text/xml; charset="utf-8"
HOST: 192.168.0.5
NT: upnp:event
NTS: upnp:propchange
SID: uuid:956d-a11b-fe88-e08e
SEQ: 0
Content-Length: 165
Connection: close

<?xml version="1.0" encoding="utf-8"?>
<propertyset xmlns:e="urn:schemas-upnp-org:event-1-0">
   <property>
      <Status>off</Status>
   </property>
</propertyset>
-------------------------------------------- 


Tests:
-----------------
- yes - every device exported by the upnpsensorbridge (=Host A) gets found by the central server (=Host B) 

- upnp tester of felix project experiences same issues

- the REFINED devices on the SERVER themselves are using the felix helper class to subscribe to the events:
		// create upnp listener - if evented is true
		subscriber = new UPnPSubscriber(bundleContext, this);
		subscriber.subscribeAllServicesOf(super.getUPnPDeviceUDN());

- i also tried: 		EventListener test = new EventListener();
		                servReg = context.registerService(UPnPEventListener.class.getName(), test, null);
(so not using UPnPSubscriber) => same problem...so UPnPSubscriber may not be the root of the problem

- the upnp device implementation on the host exporting the upnp devices ( =Host A, sensorbridge) are using the following line to expose event notifier
		// setup event notifier
		notify_switch = new UPnPEventNotifier(context, this, switchdevswitchservice, switchDev);




================================================================================
Is it possible that my issue is connected to this one mentioned in the cyberlink forum?

Stefano answered to it in the cyberlink forum!!
http://sourceforge.net/forum/forum.php?thread_id=1952657&forum_id=258158
----------------------------------------------------------------------------------------------------------------------------

if you need something else please contact me! :)




> upnp event delivery to OSGi event listeners fails on random devices after a certain period of time
> --------------------------------------------------------------------------------------------------
>
>                 Key: FELIX-642
>                 URL: https://issues.apache.org/jira/browse/FELIX-642
>             Project: Felix
>          Issue Type: Bug
>          Components: UPnP Subproject
>    Affects Versions: upnp-basedriver-0.8.0
>            Reporter: Daniel Felsing
>            Priority: Blocker
>             Fix For: upnp-basedriver-0.8.0
>
>
> Ok...overall problem is as follows:
> upnp event delivery to OSGi event listeners fails on random devices after a certain period of time
> Overall Environment Setup
> -------------------------
> - i have two hosts A and B => A is a Bridge exporting about 20 devices at the moment (will get more - it's a X10 like system), B acts as a central server for the devices (Smart Home implementation)
> - A is a SensorBridge...and B a central controlpoint importing all those devices
> - both ends use upnpbasedriver 0.8 and extra bundle from felix project
> - the two hosts are connected through a Gigabit Switch (NO WIRELESS USED!)
> - all the devices on the server (so the central smart home controller) that get imported get refined. They subscribe to the upnp device it refines to get notified on event change.
> - on the central server (Host B) i subscribe to UPnP Devices exported by Host A using UPnPSubscriber Helper class of the extra bundle
> Issues
> ------
> - "SOMETIMES" on INITIAL subscription not all devices get notified about the initial status (devices get found properly though)
>   ( see also http://www.mail-archive.com/users@felix.apache.org/msg01781.html for that)
> - after some time of operation random devices begin to fail - that means..they do not get notified about event changes anymore, but devices are still present (so they are still there as UPnPDevice instances in the central server)... 
> => i had debug enabled....and as i see i still receive the event-change notifies on my Host B (=central server)....if i "resubscribe" to the event listener of the failed device everything works again (i dont need to restart the whole basedriver or osgi framework to let it work again - just my refining driver must be restarted which does the subscription to the devices using UPnPSubscriber class) ...
> SO this STILL GETS DELIVERED, but listeners do not get notified about the change:
> ================REQUEST=====================
> NOTIFY /evetSub HTTP/1.0
> Content-Type: text/xml; charset="utf-8"
> HOST: 192.168.0.5
> NT: upnp:event
> NTS: upnp:propchange
> SID: uuid:956d-a11b-fe88-e08e
> SEQ: 0
> Content-Length: 165
> Connection: close
> <?xml version="1.0" encoding="utf-8"?>
> <propertyset xmlns:e="urn:schemas-upnp-org:event-1-0">
>    <property>
>       <Status>off</Status>
>    </property>
> </propertyset>
> -------------------------------------------- 
> Tests:
> -----------------
> - yes - every device exported by the upnpsensorbridge (=Host A) gets found by the central server (=Host B) 
> - upnp tester of felix project experiences same issues
> - the REFINED devices on the SERVER themselves are using the felix helper class to subscribe to the events:
> 		// create upnp listener - if evented is true
> 		subscriber = new UPnPSubscriber(bundleContext, this);
> 		subscriber.subscribeAllServicesOf(super.getUPnPDeviceUDN());
> - i also tried: 		EventListener test = new EventListener();
> 		                servReg = context.registerService(UPnPEventListener.class.getName(), test, null);
> (so not using UPnPSubscriber) => same problem...so UPnPSubscriber may not be the root of the problem
> - the upnp device implementation on the host exporting the upnp devices ( =Host A, sensorbridge) are using the following line to expose event notifier
> 		// setup event notifier
> 		notify_switch = new UPnPEventNotifier(context, this, switchdevswitchservice, switchDev);
> ================================================================================
> Is it possible that my issue is connected to this one mentioned in the cyberlink forum?
> Stefano answered to it in the cyberlink forum!!
> http://sourceforge.net/forum/forum.php?thread_id=1952657&forum_id=258158
> ----------------------------------------------------------------------------------------------------------------------------
> if you need something else please contact me! :)

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.