|
Lines 92-112
Link Here
|
| 92 |
protected void close() { |
92 |
protected void close() { |
| 93 |
valid = false; /* invalidate context */ |
93 |
valid = false; /* invalidate context */ |
| 94 |
|
94 |
|
| 95 |
if (serviceEvent != null) { |
95 |
synchronized (framework.serviceEvent) { |
| 96 |
framework.serviceEvent.removeListener(this); |
96 |
if (serviceEvent != null) { |
| 97 |
serviceEvent = null; |
97 |
framework.serviceEvent.removeListener(this); |
| 98 |
} |
98 |
serviceEvent = null; |
| 99 |
if (frameworkEvent != null) { |
99 |
} |
| 100 |
framework.frameworkEvent.removeListener(this); |
100 |
} |
| 101 |
frameworkEvent = null; |
101 |
synchronized (framework.frameworkEvent) { |
| 102 |
} |
102 |
if (frameworkEvent != null) { |
| 103 |
if (bundleEvent != null) { |
103 |
framework.frameworkEvent.removeListener(this); |
| 104 |
framework.bundleEvent.removeListener(this); |
104 |
frameworkEvent = null; |
| 105 |
bundleEvent = null; |
105 |
} |
| 106 |
} |
106 |
} |
| 107 |
if (bundleEventSync != null) { |
107 |
synchronized (framework.bundleEvent) { |
| 108 |
framework.bundleEventSync.removeListener(this); |
108 |
if (bundleEvent != null) { |
| 109 |
bundleEventSync = null; |
109 |
framework.bundleEvent.removeListener(this); |
|
|
110 |
bundleEvent = null; |
| 111 |
} |
| 112 |
} |
| 113 |
synchronized (framework.bundleEventSync) { |
| 114 |
if (bundleEventSync != null) { |
| 115 |
framework.bundleEventSync.removeListener(this); |
| 116 |
bundleEventSync = null; |
| 117 |
} |
| 110 |
} |
118 |
} |
| 111 |
|
119 |
|
| 112 |
/* service's registered by the bundle, if any, are unregistered. */ |
120 |
/* service's registered by the bundle, if any, are unregistered. */ |
|
Lines 348-355
Link Here
|
| 348 |
Debug.println("removeServiceListener[" + bundle + "](" + listenerName + ")"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ |
356 |
Debug.println("removeServiceListener[" + bundle + "](" + listenerName + ")"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ |
| 349 |
} |
357 |
} |
| 350 |
|
358 |
|
| 351 |
if (serviceEvent != null) { |
359 |
synchronized (framework.serviceEvent) { |
| 352 |
synchronized (framework.serviceEvent) { |
360 |
if (serviceEvent != null) { |
| 353 |
serviceEvent.removeListener(listener); |
361 |
serviceEvent.removeListener(listener); |
| 354 |
} |
362 |
} |
| 355 |
} |
363 |
} |
|
Lines 423-436
Link Here
|
| 423 |
if (listener instanceof SynchronousBundleListener) { |
431 |
if (listener instanceof SynchronousBundleListener) { |
| 424 |
framework.checkAdminPermission(getBundle(), AdminPermission.LISTENER); |
432 |
framework.checkAdminPermission(getBundle(), AdminPermission.LISTENER); |
| 425 |
|
433 |
|
| 426 |
if (bundleEventSync != null) { |
434 |
synchronized (framework.bundleEventSync) { |
| 427 |
synchronized (framework.bundleEventSync) { |
435 |
if (bundleEventSync != null) { |
| 428 |
bundleEventSync.removeListener(listener); |
436 |
bundleEventSync.removeListener(listener); |
| 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); |
| 435 |
} |
443 |
} |
| 436 |
} |
444 |
} |
|
Lines 489-496
Link Here
|
| 489 |
Debug.println("removeFrameworkListener[" + bundle + "](" + listenerName + ")"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ |
497 |
Debug.println("removeFrameworkListener[" + bundle + "](" + listenerName + ")"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ |
| 490 |
} |
498 |
} |
| 491 |
|
499 |
|
| 492 |
if (frameworkEvent != null) { |
500 |
synchronized (framework.frameworkEvent) { |
| 493 |
synchronized (framework.frameworkEvent) { |
501 |
if (frameworkEvent != null) { |
| 494 |
frameworkEvent.removeListener(listener); |
502 |
frameworkEvent.removeListener(listener); |
| 495 |
} |
503 |
} |
| 496 |
} |
504 |
} |