/**
  * called when the jar loadingin hook has failed to find the jar this is never called in a GUI
  * thread.
  */
 @Override
 public void update(Observable o, Object arg) {
   if (arg != null && arg instanceof JarMissingEvent) {
     final JarMissingEvent jarMissingEvent = (JarMissingEvent) arg;
     // only show message box once par plugin, meaning that if user ignored it once, the bundle
     // will not load
     // properly anyway.
     if (!bundlesAlreadyHandled.contains(jarMissingEvent.getBundleId())) {
       bundlesAlreadyHandled.add(jarMissingEvent.getBundleId());
       showMissingModuleDialog(jarMissingEvent);
     } // else already handled so ignors it.
   } else { // notification is not expected so log it
     IllegalArgumentException illegalArgumentException =
         new IllegalArgumentException(
             "was expecting a type :" + JarMissingEvent.class.getCanonicalName()); // $NON-NLS-1$
     illegalArgumentException.fillInStackTrace();
     log.error(
         "Could not find the proper JarMissing values", illegalArgumentException); // $NON-NLS-1$
   }
 }