/**
  * Removes a Spec from the specList, and informs jde. If there is an error while resolving a spec,
  * indicating that it cannot be resolved (ie even at a later time when more classes are prepared),
  * this function is called to remove it from the list, and inform the jde about this error
  */
 public void removeSpecAndInformJDE(EventRequestSpec spec, String problem) {
   if (spec instanceof BreakpointSpec) {
     signal(INVALID + BREAK, new LispForm(spec.getID() + " \"" + problem + "\""));
   } else if (spec instanceof WatchpointSpec) {
     signal(INVALID + WATCH, new LispForm(spec.getID() + " \"" + problem + "\""));
   } else if (spec instanceof ExceptionSpec) {
     signal(INVALID + TRACE_EXCEPTIONS, new LispForm(spec.getID() + " \"" + problem + "\""));
   }
   eventRequestSpecs.delete(spec);
 }
 /** Inform jde on a successful spec resolution */
 public void informJDEInstallSuccessful(EventRequestSpec spec) {
   signal(SPEC_RESOLVED, spec.getID());
 }