|
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 |
} |