Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
View | Details | Raw Unified | Return to bug 149863 | Differences between
and this patch

Collapse All | Expand All

(-)core/framework/org/eclipse/osgi/framework/internal/core/BundleContextImpl.java (-8 / +24 lines)
Lines 348-356 Link Here
348
			Debug.println("removeServiceListener[" + bundle + "](" + listenerName + ")"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
348
			Debug.println("removeServiceListener[" + bundle + "](" + listenerName + ")"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
349
		}
349
		}
350
350
351
		if (serviceEvent != null) {
351
		synchronized (framework.serviceEvent) {
352
			synchronized (framework.serviceEvent) {
352
			if (serviceEvent != null) {
353
				serviceEvent.removeListener(listener);
353
				serviceEvent.removeListener(listener);
354
				if(serviceEvent.getSize()==0){
355
					serviceEvent = null;
356
					framework.serviceEvent.removeListener(this);
357
				}
354
			}
358
			}
355
		}
359
		}
356
	}
360
	}
Lines 423-437 Link Here
423
		if (listener instanceof SynchronousBundleListener) {
427
		if (listener instanceof SynchronousBundleListener) {
424
			framework.checkAdminPermission(getBundle(), AdminPermission.LISTENER);
428
			framework.checkAdminPermission(getBundle(), AdminPermission.LISTENER);
425
429
426
			if (bundleEventSync != null) {
430
			synchronized (framework.bundleEventSync) {
427
				synchronized (framework.bundleEventSync) {
431
				if (bundleEventSync != null) {
428
					bundleEventSync.removeListener(listener);
432
					bundleEventSync.removeListener(listener);
433
					if(bundleEventSync.getSize() == 0) {
434
						bundleEventSync = null;
435
						framework.bundleEventSync.removeListener(this);
436
					}
429
				}
437
				}
430
			}
438
			}
431
		} else {
439
		} else {
432
			if (bundleEvent != null) {
440
			synchronized (framework.bundleEvent) {
433
				synchronized (framework.bundleEvent) {
441
				if (bundleEvent != null) {
434
					bundleEvent.removeListener(listener);
442
					bundleEvent.removeListener(listener);
443
					if (bundleEvent.getSize() == 0) {
444
						bundleEvent = null;
445
						framework.bundleEvent.removeListener(this);
446
					}
435
				}
447
				}
436
			}
448
			}
437
		}
449
		}
Lines 489-497 Link Here
489
			Debug.println("removeFrameworkListener[" + bundle + "](" + listenerName + ")"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
501
			Debug.println("removeFrameworkListener[" + bundle + "](" + listenerName + ")"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
490
		}
502
		}
491
503
492
		if (frameworkEvent != null) {
504
		synchronized (framework.frameworkEvent) {
493
			synchronized (framework.frameworkEvent) {
505
			if (frameworkEvent != null) {
494
				frameworkEvent.removeListener(listener);
506
				frameworkEvent.removeListener(listener);
507
				if(frameworkEvent.getSize()==0){
508
					frameworkEvent = null;
509
					framework.frameworkEvent.removeListener(this);
510
				}
495
			}
511
			}
496
		}
512
		}
497
	}
513
	}
(-)core/framework/org/eclipse/osgi/framework/eventmgr/EventListeners.java (+4 lines)
Lines 231-234 Link Here
231
			this.companion = companion;
231
			this.companion = companion;
232
		}
232
		}
233
	}
233
	}
234
235
	public synchronized int getSize() {
236
		return size;
237
	}
234
}
238
}

Return to bug 149863