Program: 20922
Project: 20922
Buggy source:
public void handle(Request request,Response response){
  Document xml=JDUtilities.parseXmlString("String_Node_Str",false);
  response.setReturnType("String_Node_Str");
  response.setReturnStatus(Response.OK);
  if (request.getRequestUrl().equals("String_Node_Str")) {
    Vector<String> commandvec=new Vector<String>();
    Vector<String> infovector=new Vector<String>();
    commandvec.add("String_Node_Str");
    infovector.add("String_Node_Str");
    commandvec.add("String_Node_Str");
    infovector.add("String_Node_Str");
    commandvec.add("String_Node_Str");
    infovector.add("String_Node_Str");
    commandvec.add("String_Node_Str");
    infovector.add("String_Node_Str");
    commandvec.add("String_Node_Str");
    infovector.add("String_Node_Str");
    commandvec.add("String_Node_Str");
    infovector.add("String_Node_Str");
    commandvec.add("String_Node_Str");
    infovector.add("String_Node_Str");
    commandvec.add("String_Node_Str");
    infovector.add("String_Node_Str");
    commandvec.add("String_Node_Str");
    infovector.add("String_Node_Str");
    commandvec.add("String_Node_Str");
    infovector.add("String_Node_Str");
    commandvec.add("String_Node_Str");
    infovector.add("String_Node_Str");
    commandvec.add("String_Node_Str");
    infovector.add("String_Node_Str");
    commandvec.add("String_Node_Str");
    infovector.add("String_Node_Str");
    commandvec.add("String_Node_Str");
    infovector.add("String_Node_Str");
    commandvec.add("String_Node_Str");
    infovector.add("String_Node_Str");
    commandvec.add("String_Node_Str");
    infovector.add("String_Node_Str");
    commandvec.add("String_Node_Str");
    infovector.add("String_Node_Str");
    commandvec.add("String_Node_Str");
    infovector.add("String_Node_Str");
    commandvec.add("String_Node_Str");
    infovector.add("String_Node_Str");
    commandvec.add("String_Node_Str");
    infovector.add("String_Node_Str");
    commandvec.add("String_Node_Str");
    infovector.add("String_Node_Str");
    commandvec.add("String_Node_Str");
    infovector.add("String_Node_Str");
    commandvec.add("String_Node_Str");
    infovector.add("String_Node_Str");
    commandvec.add("String_Node_Str");
    infovector.add("String_Node_Str");
    commandvec.add("String_Node_Str");
    infovector.add("String_Node_Str");
    commandvec.add("String_Node_Str");
    infovector.add("String_Node_Str");
    commandvec.add("String_Node_Str");
    infovector.add("String_Node_Str");
    commandvec.add("String_Node_Str");
    infovector.add("String_Node_Str");
    commandvec.add("String_Node_Str");
    infovector.add("String_Node_Str");
    commandvec.add("String_Node_Str");
    infovector.add("String_Node_Str" + "String_Node_Str" + "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str");
    commandvec.add("String_Node_Str");
    infovector.add("String_Node_Str" + "String_Node_Str" + "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str");
    commandvec.add("String_Node_Str");
    infovector.add("String_Node_Str" + "String_Node_Str" + "String_Node_Str"+ "String_Node_Str");
    commandvec.add("String_Node_Str");
    infovector.add("String_Node_Str");
    commandvec.add("String_Node_Str");
    infovector.add("String_Node_Str");
    commandvec.add("String_Node_Str");
    infovector.add("String_Node_Str");
    commandvec.add("String_Node_Str");
    infovector.add("String_Node_Str");
    commandvec.add("String_Node_Str");
    infovector.add("String_Node_Str");
    commandvec.add("String_Node_Str");
    infovector.add("String_Node_Str");
    commandvec.add("String_Node_Str");
    infovector.add("String_Node_Str");
    response.addContent("String_Node_Str" + "String_Node_Str" + "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str" + getVersion() + "String_Node_Str"+ "String_Node_Str");
    response.addContent("String_Node_Str");
    for (int commandcount=0; commandcount < commandvec.size(); commandcount++) {
      if (commandvec.get(commandcount).equals("String_Node_Str")) {
        if (commandcount != 0) {
          response.addContent("String_Node_Str");
        }
        response.addContent("String_Node_Str" + infovector.get(commandcount) + "String_Node_Str");
      }
 else {
        response.addContent("String_Node_Str" + commandvec.get(commandcount) + "String_Node_Str"+ commandvec.get(commandcount)+ "String_Node_Str"+ infovector.get(commandcount)+ "String_Node_Str");
      }
    }
    response.addContent("String_Node_Str");
  }
 else   if (request.getRequestUrl().equals("String_Node_Str")) {
    if (SubConfiguration.getConfig("String_Node_Str").getBooleanProperty(Configuration.PARAM_GLOBAL_IP_DISABLE,false)) {
      response.addContent("String_Node_Str");
    }
 else {
      response.addContent(IPCheck.getIPAddress());
    }
  }
 else   if (request.getRequestUrl().equals("String_Node_Str")) {
    Random r=new Random();
    response.addContent(r.nextInt(255) + "String_Node_Str" + r.nextInt(255)+ "String_Node_Str"+ r.nextInt(255)+ "String_Node_Str"+ r.nextInt(255));
  }
 else   if (request.getRequestUrl().equals("String_Node_Str")) {
    Property config=JDUtilities.getConfiguration();
    response.addContent("String_Node_Str");
    if (request.getParameters().containsKey("String_Node_Str")) {
      config=SubConfiguration.getConfig(request.getParameters().get("String_Node_Str").toUpperCase());
    }
    for (    Entry<String,Object> next : config.getProperties().entrySet()) {
      response.addContent(next.getKey() + "String_Node_Str" + next.getValue()+ "String_Node_Str");
    }
    response.addContent("String_Node_Str");
  }
 else   if (request.getRequestUrl().equals("String_Node_Str")) {
    response.addContent(JDUtilities.getJDTitle());
  }
 else   if (request.getRequestUrl().equals("String_Node_Str")) {
    response.addContent(getVersion());
  }
 else   if (request.getRequestUrl().equals("String_Node_Str")) {
    response.addContent(SubConfiguration.getConfig("String_Node_Str").getIntegerProperty(Configuration.PARAM_DOWNLOAD_MAX_SPEED,0));
  }
 else   if (request.getRequestUrl().equals("String_Node_Str")) {
    int counter=0;
    for (    FilePackage fp : JDUtilities.getController().getPackages()) {
      for (      DownloadLink dl : fp.getDownloadLinkList()) {
        if (dl.getLinkStatus().isPluginActive()) {
          counter++;
        }
      }
    }
    response.addContent(counter);
  }
 else   if (request.getRequestUrl().equals("String_Node_Str")) {
    for (    FilePackage fp : JDUtilities.getController().getPackages()) {
      Element fp_xml=addFilePackage(xml,fp);
      for (      DownloadLink dl : fp.getDownloadLinkList()) {
        if (dl.getLinkStatus().isPluginActive()) {
          fp_xml.appendChild(addDownloadLink(xml,dl));
        }
      }
    }
    response.addContent(JDUtilities.createXmlString(xml));
  }
 else   if (request.getRequestUrl().equals("String_Node_Str")) {
    int counter=0;
    for (    FilePackage fp : JDUtilities.getController().getPackages()) {
      counter+=fp.getDownloadLinkList().size();
    }
    response.addContent(counter);
  }
 else   if (request.getRequestUrl().equals("String_Node_Str")) {
    for (    FilePackage fp : JDUtilities.getController().getPackages()) {
      Element fp_xml=addFilePackage(xml,fp);
      for (      DownloadLink dl : fp.getDownloadLinkList()) {
        fp_xml.appendChild(addDownloadLink(xml,dl));
      }
    }
    response.addContent(JDUtilities.createXmlString(xml));
  }
 else   if (request.getRequestUrl().equals("String_Node_Str")) {
    int counter=0;
    for (    FilePackage fp : JDUtilities.getController().getPackages()) {
      for (      DownloadLink dl : fp.getDownloadLinkList()) {
        if (dl.getLinkStatus().hasStatus(LinkStatus.FINISHED)) {
          counter++;
        }
      }
    }
    response.addContent(counter);
  }
 else   if (request.getRequestUrl().equals("String_Node_Str")) {
    for (    FilePackage fp : JDUtilities.getController().getPackages()) {
      Element fp_xml=addFilePackage(xml,fp);
      for (      DownloadLink dl : fp.getDownloadLinkList()) {
        if (dl.getLinkStatus().hasStatus(LinkStatus.FINISHED)) {
          fp_xml.appendChild(addDownloadLink(xml,dl));
        }
      }
    }
    response.addContent(JDUtilities.createXmlString(xml));
  }
 else   if (request.getRequestUrl().equals("String_Node_Str")) {
    response.addContent(DownloadWatchDog.getInstance().getConnectionManager().getIncommingBandwidthUsage() / 1000);
  }
 else   if (request.getRequestUrl().equals("String_Node_Str")) {
    response.addContent(JDUtilities.getConfiguration().getBooleanProperty(Configuration.PARAM_ALLOW_RECONNECT,true));
  }
 else   if (request.getRequestUrl().equals("String_Node_Str")) {
    response.addContent(DownloadWatchDog.getInstance().getDownloadStatus().toString());
  }
 else   if (request.getRequestUrl().matches("String_Node_Str")) {
    for (    LinkGrabberFilePackage fp : LinkGrabberController.getInstance().getPackages()) {
      Element fp_xml=addGrabberPackage(xml,fp);
      for (      DownloadLink dl : fp.getDownloadLinks()) {
        fp_xml.appendChild(addGrabberLink(xml,dl));
      }
    }
    response.addContent(JDUtilities.createXmlString(xml));
  }
 else   if (request.getRequestUrl().equals("String_Node_Str")) {
    if (LinkGrabberPanel.getLinkGrabber().isRunning()) {
      response.addContent(true);
    }
 else {
      response.addContent(false);
    }
  }
 else   if (request.getRequestUrl().equals("String_Node_Str")) {
    DownloadWatchDog.getInstance().startDownloads();
    response.addContent("String_Node_Str");
  }
 else   if (request.getRequestUrl().equals("String_Node_Str")) {
    DownloadWatchDog.getInstance().pauseDownloads(!DownloadWatchDog.getInstance().isPaused());
    response.addContent("String_Node_Str");
  }
 else   if (request.getRequestUrl().equals("String_Node_Str")) {
    DownloadWatchDog.getInstance().stopDownloads();
    response.addContent("String_Node_Str");
  }
 else   if (request.getRequestUrl().equals("String_Node_Str")) {
    DownloadWatchDog.getInstance().toggleStartStop();
    response.addContent("String_Node_Str");
  }
 else   if (request.getRequestUrl().matches("String_Node_Str")) {
    Integer force=Integer.parseInt(new Regex(request.getRequestUrl(),"String_Node_Str").getMatch(0));
    if (force == 1) {
      JDUtilities.getConfiguration().setProperty(Configuration.PARAM_WEBUPDATE_AUTO_RESTART,true);
      SubConfiguration.getConfig("String_Node_Str").setProperty(Configuration.PARAM_WEBUPDATE_DISABLE,false);
    }
    WebUpdate.doUpdateCheck(true);
    response.addContent("String_Node_Str");
  }
 else   if (request.getRequestUrl().equals("String_Node_Str")) {
    response.addContent("String_Node_Str");
    Reconnecter.doManualReconnect();
  }
 else   if (request.getRequestUrl().equals("String_Node_Str")) {
    response.addContent("String_Node_Str");
    new Thread(new Runnable(){
      public void run(){
        try {
          Thread.sleep(5000);
        }
 catch (        InterruptedException e) {
          JDLogger.exception(e);
        }
        JDUtilities.restartJD(false);
      }
    }
).start();
  }
 else   if (request.getRequestUrl().equals("String_Node_Str")) {
    response.addContent("String_Node_Str");
    new Thread(new Runnable(){
      public void run(){
        try {
          Thread.sleep(5000);
        }
 catch (        InterruptedException e) {
          JDLogger.exception(e);
        }
        JDUtilities.getController().exit();
      }
    }
).start();
  }
 else   if (request.getRequestUrl().matches("String_Node_Str")) {
    Integer newdllimit=Integer.parseInt(new Regex(request.getRequestUrl(),"String_Node_Str").getMatch(0));
    logger.fine("String_Node_Str" + newdllimit.toString());
    SubConfiguration.getConfig("String_Node_Str").setProperty(Configuration.PARAM_DOWNLOAD_MAX_SPEED,newdllimit.toString());
    SubConfiguration.getConfig("String_Node_Str").save();
    response.addContent("String_Node_Str" + newdllimit);
  }
 else   if (request.getRequestUrl().matches("String_Node_Str")) {
    Integer newsimdl=Integer.parseInt(new Regex(request.getRequestUrl(),"String_Node_Str").getMatch(0));
    logger.fine("String_Node_Str" + newsimdl.toString());
    SubConfiguration.getConfig("String_Node_Str").setProperty(Configuration.PARAM_DOWNLOAD_MAX_SIMULTAN,newsimdl.toString());
    SubConfiguration.getConfig("String_Node_Str").save();
    response.addContent("String_Node_Str" + newsimdl);
  }
 else   if (request.getRequestUrl().matches("String_Node_Str")) {
    String link=new Regex(request.getRequestUrl(),"String_Node_Str").getMatch(1);
    ArrayList<String> links=new ArrayList<String>();
    for (    String tlink : HTMLParser.getHttpLinks(Encoding.urlDecode(link,false),null)) {
      links.add(tlink);
    }
    if (request.getParameters().size() > 0) {
      Iterator<String> it=request.getParameters().keySet().iterator();
      while (it.hasNext()) {
        String help=it.next();
        if (!request.getParameter(help).equals("String_Node_Str")) {
          links.add(request.getParameter(help));
        }
      }
    }
    Integer grabber=null;
    Integer start=null;
    Boolean hidegrabber=false;
    try {
      grabber=Integer.parseInt(new Regex(request.getRequestUrl(),"String_Node_Str").getMatch(0));
      start=Integer.parseInt(new Regex(request.getRequestUrl(),"String_Node_Str").getMatch(0));
    }
 catch (    Exception e) {
    }
    if ((grabber != null) && (grabber == 0)) {
      hidegrabber=true;
    }
    StringBuilder ret=new StringBuilder();
    char tmp[]=new char[]{'"','\r','\n'};
    for (    String element : links) {
      ret.append('\"');
      ret.append(element.trim());
      ret.append(tmp);
    }
    link=ret.toString();
    new DistributeData(link,hidegrabber).start();
    if ((start != null) && start == 1) {
      DownloadWatchDog.getInstance().startDownloads();
    }
    response.addContent("String_Node_Str" + link + "String_Node_Str");
  }
 else   if (request.getRequestUrl().matches("String_Node_Str")) {
    String dlcfilestr=new Regex(request.getRequestUrl(),"String_Node_Str").getMatch(1);
    dlcfilestr=Encoding.htmlDecode(dlcfilestr);
    Integer grabber=null;
    Integer start=null;
    Boolean hidegrabber=false;
    Boolean startdl=false;
    try {
      grabber=Integer.parseInt(new Regex(request.getRequestUrl(),"String_Node_Str").getMatch(0));
      start=Integer.parseInt(new Regex(request.getRequestUrl(),"String_Node_Str").getMatch(0));
    }
 catch (    Exception e) {
    }
    if ((grabber != null) && (grabber == 0)) {
      hidegrabber=true;
    }
    if ((start != null) && start == 1) {
      startdl=true;
    }
    if (dlcfilestr.matches("String_Node_Str")) {
      String containerFormat=new Regex(dlcfilestr,"String_Node_Str").getMatch(0);
      File container=JDUtilities.getResourceFile("String_Node_Str" + System.currentTimeMillis() + "String_Node_Str"+ containerFormat);
      try {
        Browser.download(container,dlcfilestr);
        JDUtilities.getController().loadContainerFile(container,hidegrabber,startdl);
        try {
          Thread.sleep(1000);
        }
 catch (        Exception e) {
          JDLogger.exception(e);
        }
        container.delete();
      }
 catch (      Exception e) {
        JDLogger.exception(e);
      }
    }
 else {
      JDUtilities.getController().loadContainerFile(new File(dlcfilestr),hidegrabber,startdl);
    }
    response.addContent("String_Node_Str" + dlcfilestr + "String_Node_Str");
  }
 else   if (request.getRequestUrl().matches("String_Node_Str")) {
    ArrayList<DownloadLink> dllinks=new ArrayList<DownloadLink>();
    String dlcfilestr=new Regex(request.getRequestUrl(),"String_Node_Str").getMatch(1);
    dlcfilestr=Encoding.htmlDecode(dlcfilestr);
    boolean savefromGrabber=new Regex(request.getRequestUrl(),"String_Node_Str").matches();
    if (savefromGrabber) {
      if (LinkGrabberPanel.getLinkGrabber().isRunning()) {
        response.addContent(ERROR_LINK_GRABBER_RUNNING);
      }
 else {
        ArrayList<LinkGrabberFilePackage> fps=LinkGrabberController.getInstance().getPackages();
        for (int i=0; i < fps.size(); i++) {
          dllinks.addAll(fps.get(i).getDownloadLinks());
        }
      }
    }
 else {
      dllinks=JDUtilities.getDownloadController().getAllDownloadLinks();
    }
    JDUtilities.getController().saveDLC(new File(dlcfilestr),dllinks);
    response.addContent("String_Node_Str" + dlcfilestr + "String_Node_Str");
  }
 else   if (request.getRequestUrl().matches("String_Node_Str")) {
    boolean newrc=Boolean.parseBoolean(new Regex(request.getRequestUrl(),"String_Node_Str").getMatch(0));
    logger.fine("String_Node_Str" + newrc);
    if (newrc != JDUtilities.getConfiguration().getBooleanProperty(Configuration.PARAM_ALLOW_RECONNECT,true)) {
      JDUtilities.getConfiguration().setProperty(Configuration.PARAM_ALLOW_RECONNECT,newrc);
      JDUtilities.getConfiguration().save();
      response.addContent("String_Node_Str" + newrc + "String_Node_Str");
    }
 else {
      response.addContent("String_Node_Str" + newrc + "String_Node_Str");
    }
  }
 else   if (request.getRequestUrl().matches("String_Node_Str")) {
    boolean newuseprem=Boolean.parseBoolean(new Regex(request.getRequestUrl(),"String_Node_Str").getMatch(0));
    logger.fine("String_Node_Str" + newuseprem);
    if (newuseprem != JDUtilities.getConfiguration().getBooleanProperty(Configuration.PARAM_USE_GLOBAL_PREMIUM,true)) {
      JDUtilities.getConfiguration().setProperty(Configuration.PARAM_USE_GLOBAL_PREMIUM,newuseprem);
      JDUtilities.getConfiguration().save();
      response.addContent("String_Node_Str" + newuseprem + "String_Node_Str");
    }
 else {
      response.addContent("String_Node_Str" + newuseprem + "String_Node_Str");
    }
  }
 else   if (request.getRequestUrl().matches("String_Node_Str")) {
    String[] data=new Regex(request.getRequestUrl(),"String_Node_Str").getMatch(0).replaceAll("String_Node_Str","String_Node_Str").split("String_Node_Str");
    if (LinkGrabberPanel.getLinkGrabber().isRunning()) {
      response.addContent(ERROR_LINK_GRABBER_RUNNING);
    }
 else     if (data.length < 2) {
      response.addContent(ERROR_TOO_FEW_PARAMETERS);
    }
 else {
      LinkGrabberFilePackage destPackage=null;
synchronized (LinkGrabberController.ControllerLock) {
        List<LinkGrabberFilePackage> srcPackages=new ArrayList<LinkGrabberFilePackage>();
        for (        LinkGrabberFilePackage pack : LinkGrabberController.getInstance().getPackages()) {
          if (pack.getName().equals(data[0])) {
            destPackage=pack;
            break;
          }
        }
        if (destPackage == null) {
          response.addContent("String_Node_Str" + data[0] + "String_Node_Str");
        }
 else {
          for (          LinkGrabberFilePackage pack : LinkGrabberController.getInstance().getPackages()) {
            for (            String src : data) {
              if (pack.getName().equals(src) && pack != destPackage) {
                srcPackages.add(pack);
              }
            }
          }
          for (          LinkGrabberFilePackage pack : srcPackages) {
            destPackage.addAll(pack.getDownloadLinks());
            LinkGrabberController.getInstance().removePackage(pack);
          }
          if (srcPackages.size() > 0) {
            if (srcPackages.size() < data.length - 1) {
              response.addContent("String_Node_Str");
            }
            response.addContent("String_Node_Str" + srcPackages.size() + "String_Node_Str"+ data[0]+ "String_Node_Str");
            for (int i=0; i < srcPackages.size(); ++i) {
              if (i != 0) {
                response.addContent("String_Node_Str");
              }
              response.addContent("String_Node_Str" + srcPackages.get(i).getName() + "String_Node_Str");
            }
          }
 else {
            response.addContent("String_Node_Str" + data[0] + "String_Node_Str");
          }
        }
      }
    }
  }
 else   if (request.getRequestUrl().matches("String_Node_Str")) {
    if (LinkGrabberPanel.getLinkGrabber().isRunning()) {
      response.addContent(ERROR_LINK_GRABBER_RUNNING);
    }
 else {
      String[] data=new Regex(request.getRequestUrl(),"String_Node_Str").getMatch(0).replaceAll("String_Node_Str","String_Node_Str").split("String_Node_Str");
      LinkGrabberFilePackage destPackage=null;
synchronized (LinkGrabberController.ControllerLock) {
        for (        LinkGrabberFilePackage pack : LinkGrabberController.getInstance().getPackages()) {
          if (pack.getName().equals(data[0])) {
            destPackage=pack;
            break;
          }
        }
        if (destPackage == null) {
          response.addContent("String_Node_Str" + data[0] + "String_Node_Str");
        }
 else {
          destPackage.setName(data[1]);
          LinkGrabberController.getInstance().throwRefresh();
          response.addContent("String_Node_Str" + data[0] + "String_Node_Str"+ data[1]+ "String_Node_Str");
        }
      }
    }
  }
 else   if (request.getRequestUrl().matches("String_Node_Str") || request.getRequestUrl().matches("String_Node_Str")) {
    if (LinkGrabberPanel.getLinkGrabber().isRunning()) {
      response.addContent(ERROR_LINK_GRABBER_RUNNING);
    }
 else {
      response.addContent("String_Node_Str");
synchronized (LinkGrabberController.ControllerLock) {
        List<LinkGrabberFilePackage> packages=new ArrayList<LinkGrabberFilePackage>();
        if (request.getRequestUrl().matches("String_Node_Str")) {
          String[] data=new Regex(request.getRequestUrl(),"String_Node_Str").getMatch(0).replaceAll("String_Node_Str","String_Node_Str").split("String_Node_Str");
          for (          LinkGrabberFilePackage pack : LinkGrabberController.getInstance().getPackages()) {
            for (            String name : data) {
              if (name.equalsIgnoreCase(pack.getName())) {
                packages.add(pack);
              }
            }
          }
        }
 else {
          packages.addAll(LinkGrabberController.getInstance().getPackages());
        }
        boolean avail=(packages.size() > 0);
        boolean hit=false;
        for (        LinkGrabberFilePackage pack : packages) {
          ArrayList<DownloadLink> links=pack.getDownloadLinks();
          ArrayList<FilePackage> fps=new ArrayList<FilePackage>();
          FilePackage fp=FilePackage.getInstance();
          fp.setName(pack.getName());
          fp.setName(pack.getName());
          fp.setComment(pack.getComment());
          fp.setPassword(pack.getPassword());
          fp.setExtractAfterDownload(pack.isExtractAfterDownload());
          fp.setDownloadDirectory(pack.getDownloadDirectory());
          if (pack.useSubDir()) {
            File file=new File(new File(pack.getDownloadDirectory()),fp.getName());
            fp.setDownloadDirectory(file.getAbsolutePath());
            if (JDUtilities.getConfiguration().getBooleanProperty(Configuration.PARAM_CREATE_SUBFOLDER_BEFORE_DOWNLOAD,false)) {
              if (!file.exists()) {
                if (!file.mkdirs()) {
                  logger.severe("String_Node_Str" + file.toString());
                  fp.setDownloadDirectory(pack.getDownloadDirectory());
                }
              }
            }
          }
          for (          DownloadLink link : links) {
            if (link.getFilePackage() == FilePackage.getDefaultFilePackage()) {
              fp.add(link);
              if (!fps.contains(fp))               fps.add(fp);
            }
 else {
              if (!fps.contains(link.getFilePackage()))               fps.add(link.getFilePackage());
            }
          }
          if (GUIUtils.getConfig().getBooleanProperty(JDGuiConstants.PARAM_INSERT_NEW_LINKS_AT,false)) {
            DownloadController.getInstance().addAllAt(fps,0);
          }
 else {
            DownloadController.getInstance().addAll(fps);
          }
          if (hit) {
            response.addContent("String_Node_Str");
          }
          response.addContent("String_Node_Str" + pack.getName() + "String_Node_Str");
          LinkGrabberController.getInstance().removePackage(pack);
          hit=true;
        }
        if (!avail) {
          response.addContent("String_Node_Str");
        }
      }
    }
  }
 else   if (request.getRequestUrl().matches("String_Node_Str")) {
    if (LinkGrabberPanel.getLinkGrabber().isRunning()) {
      response.addContent(ERROR_LINK_GRABBER_RUNNING);
    }
 else {
      String[] data=new Regex(request.getRequestUrl(),"String_Node_Str").getMatch(0).replaceAll("String_Node_Str","String_Node_Str").split("String_Node_Str");
      if (data.length == 0) {
        response.addContent(ERROR_TOO_FEW_PARAMETERS);
      }
 else {
synchronized (LinkGrabberController.ControllerLock) {
          response.addContent("String_Node_Str");
          for (int i=0; i < data.length; ++i) {
            if (i > 0) {
              response.addContent("String_Node_Str");
            }
            if (data[i].equals(LINK_TYPE_OFFLINE) || data[i].equals(LINK_TYPE_AVAIL)) {
              response.addContent(data[i]);
            }
 else {
              response.addContent("String_Node_Str" + data[i] + "String_Node_Str");
            }
          }
          List<String> delLinks=new ArrayList<String>();
          List<String> delPackages=new ArrayList<String>();
          List<LinkGrabberFilePackage> packages=new ArrayList<LinkGrabberFilePackage>(LinkGrabberController.getInstance().getPackages());
          for (          LinkGrabberFilePackage pack : packages) {
            List<DownloadLink> links=new ArrayList<DownloadLink>(pack.getDownloadLinks());
            for (            DownloadLink link : links) {
              for (              String type : data) {
                if ((type.equals(LINK_TYPE_OFFLINE) && link.getAvailableStatus().equals(AvailableStatus.FALSE)) || (type.equals(LINK_TYPE_AVAIL) && link.getLinkStatus().hasStatus(LinkStatus.ERROR_ALREADYEXISTS))) {
                  pack.remove(link);
                  delLinks.add(link.getDownloadURL());
                }
              }
            }
            if (pack.getDownloadLinks().size() == 0) {
              delPackages.add(pack.getName());
            }
          }
          response.addContent("String_Node_Str" + delLinks.size() + "String_Node_Str"+ delLinks+ "String_Node_Str"+ delPackages.size()+ "String_Node_Str"+ delPackages+ "String_Node_Str");
        }
      }
    }
  }
 else {
    response.addContent("String_Node_Str");
  }
}

Fixed version (ground truth):
public void handle(Request request,Response response){
  Document xml=JDUtilities.parseXmlString("String_Node_Str",false);
  response.setReturnType("String_Node_Str");
  response.setReturnStatus(Response.OK);
  if (request.getRequestUrl().equals("String_Node_Str")) {
    Vector<String> commandvec=new Vector<String>();
    Vector<String> infovector=new Vector<String>();
    commandvec.add("String_Node_Str");
    infovector.add("String_Node_Str");
    commandvec.add("String_Node_Str");
    infovector.add("String_Node_Str");
    commandvec.add("String_Node_Str");
    infovector.add("String_Node_Str");
    commandvec.add("String_Node_Str");
    infovector.add("String_Node_Str");
    commandvec.add("String_Node_Str");
    infovector.add("String_Node_Str");
    commandvec.add("String_Node_Str");
    infovector.add("String_Node_Str");
    commandvec.add("String_Node_Str");
    infovector.add("String_Node_Str");
    commandvec.add("String_Node_Str");
    infovector.add("String_Node_Str");
    commandvec.add("String_Node_Str");
    infovector.add("String_Node_Str");
    commandvec.add("String_Node_Str");
    infovector.add("String_Node_Str");
    commandvec.add("String_Node_Str");
    infovector.add("String_Node_Str");
    commandvec.add("String_Node_Str");
    infovector.add("String_Node_Str");
    commandvec.add("String_Node_Str");
    infovector.add("String_Node_Str");
    commandvec.add("String_Node_Str");
    infovector.add("String_Node_Str");
    commandvec.add("String_Node_Str");
    infovector.add("String_Node_Str");
    commandvec.add("String_Node_Str");
    infovector.add("String_Node_Str");
    commandvec.add("String_Node_Str");
    infovector.add("String_Node_Str");
    commandvec.add("String_Node_Str");
    infovector.add("String_Node_Str");
    commandvec.add("String_Node_Str");
    infovector.add("String_Node_Str");
    commandvec.add("String_Node_Str");
    infovector.add("String_Node_Str");
    commandvec.add("String_Node_Str");
    infovector.add("String_Node_Str");
    commandvec.add("String_Node_Str");
    infovector.add("String_Node_Str");
    commandvec.add("String_Node_Str");
    infovector.add("String_Node_Str");
    commandvec.add("String_Node_Str");
    infovector.add("String_Node_Str");
    commandvec.add("String_Node_Str");
    infovector.add("String_Node_Str");
    commandvec.add("String_Node_Str");
    infovector.add("String_Node_Str");
    commandvec.add("String_Node_Str");
    infovector.add("String_Node_Str");
    commandvec.add("String_Node_Str");
    infovector.add("String_Node_Str");
    commandvec.add("String_Node_Str");
    infovector.add("String_Node_Str");
    commandvec.add("String_Node_Str");
    infovector.add("String_Node_Str" + "String_Node_Str" + "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str");
    commandvec.add("String_Node_Str");
    infovector.add("String_Node_Str" + "String_Node_Str" + "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str");
    commandvec.add("String_Node_Str");
    infovector.add("String_Node_Str" + "String_Node_Str" + "String_Node_Str"+ "String_Node_Str");
    commandvec.add("String_Node_Str");
    infovector.add("String_Node_Str");
    commandvec.add("String_Node_Str");
    infovector.add("String_Node_Str");
    commandvec.add("String_Node_Str");
    infovector.add("String_Node_Str");
    commandvec.add("String_Node_Str");
    infovector.add("String_Node_Str");
    commandvec.add("String_Node_Str");
    infovector.add("String_Node_Str");
    commandvec.add("String_Node_Str");
    infovector.add("String_Node_Str");
    commandvec.add("String_Node_Str");
    infovector.add("String_Node_Str");
    response.addContent("String_Node_Str" + "String_Node_Str" + "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str" + getVersion() + "String_Node_Str"+ "String_Node_Str");
    response.addContent("String_Node_Str");
    for (int commandcount=0; commandcount < commandvec.size(); commandcount++) {
      if (commandvec.get(commandcount).equals("String_Node_Str")) {
        if (commandcount != 0) {
          response.addContent("String_Node_Str");
        }
        response.addContent("String_Node_Str" + infovector.get(commandcount) + "String_Node_Str");
      }
 else {
        response.addContent("String_Node_Str" + commandvec.get(commandcount) + "String_Node_Str"+ commandvec.get(commandcount)+ "String_Node_Str"+ infovector.get(commandcount)+ "String_Node_Str");
      }
    }
    response.addContent("String_Node_Str");
  }
 else   if (request.getRequestUrl().equals("String_Node_Str")) {
    if (SubConfiguration.getConfig("String_Node_Str").getBooleanProperty(Configuration.PARAM_GLOBAL_IP_DISABLE,false)) {
      response.addContent("String_Node_Str");
    }
 else {
      response.addContent(IPCheck.getIPAddress());
    }
  }
 else   if (request.getRequestUrl().equals("String_Node_Str")) {
    Random r=new Random();
    response.addContent(r.nextInt(255) + "String_Node_Str" + r.nextInt(255)+ "String_Node_Str"+ r.nextInt(255)+ "String_Node_Str"+ r.nextInt(255));
  }
 else   if (request.getRequestUrl().equals("String_Node_Str")) {
    Property config=JDUtilities.getConfiguration();
    response.addContent("String_Node_Str");
    if (request.getParameters().containsKey("String_Node_Str")) {
      config=SubConfiguration.getConfig(request.getParameters().get("String_Node_Str").toUpperCase());
    }
    for (    Entry<String,Object> next : config.getProperties().entrySet()) {
      response.addContent(next.getKey() + "String_Node_Str" + next.getValue()+ "String_Node_Str");
    }
    response.addContent("String_Node_Str");
  }
 else   if (request.getRequestUrl().equals("String_Node_Str")) {
    response.addContent(JDUtilities.getJDTitle());
  }
 else   if (request.getRequestUrl().equals("String_Node_Str")) {
    response.addContent(getVersion());
  }
 else   if (request.getRequestUrl().equals("String_Node_Str")) {
    response.addContent(SubConfiguration.getConfig("String_Node_Str").getIntegerProperty(Configuration.PARAM_DOWNLOAD_MAX_SPEED,0));
  }
 else   if (request.getRequestUrl().equals("String_Node_Str")) {
    int counter=0;
    for (    FilePackage fp : JDUtilities.getController().getPackages()) {
      for (      DownloadLink dl : fp.getDownloadLinkList()) {
        if (dl.getLinkStatus().isPluginActive()) {
          counter++;
        }
      }
    }
    response.addContent(counter);
  }
 else   if (request.getRequestUrl().equals("String_Node_Str")) {
    for (    FilePackage fp : JDUtilities.getController().getPackages()) {
      Element fp_xml=addFilePackage(xml,fp);
      for (      DownloadLink dl : fp.getDownloadLinkList()) {
        if (dl.getLinkStatus().isPluginActive()) {
          fp_xml.appendChild(addDownloadLink(xml,dl));
        }
      }
    }
    response.addContent(JDUtilities.createXmlString(xml));
  }
 else   if (request.getRequestUrl().equals("String_Node_Str")) {
    int counter=0;
    for (    FilePackage fp : JDUtilities.getController().getPackages()) {
      counter+=fp.getDownloadLinkList().size();
    }
    response.addContent(counter);
  }
 else   if (request.getRequestUrl().equals("String_Node_Str")) {
    for (    FilePackage fp : JDUtilities.getController().getPackages()) {
      Element fp_xml=addFilePackage(xml,fp);
      for (      DownloadLink dl : fp.getDownloadLinkList()) {
        fp_xml.appendChild(addDownloadLink(xml,dl));
      }
    }
    response.addContent(JDUtilities.createXmlString(xml));
  }
 else   if (request.getRequestUrl().equals("String_Node_Str")) {
    int counter=0;
    for (    FilePackage fp : JDUtilities.getController().getPackages()) {
      for (      DownloadLink dl : fp.getDownloadLinkList()) {
        if (dl.getLinkStatus().hasStatus(LinkStatus.FINISHED)) {
          counter++;
        }
      }
    }
    response.addContent(counter);
  }
 else   if (request.getRequestUrl().equals("String_Node_Str")) {
    for (    FilePackage fp : JDUtilities.getController().getPackages()) {
      Element fp_xml=addFilePackage(xml,fp);
      for (      DownloadLink dl : fp.getDownloadLinkList()) {
        if (dl.getLinkStatus().hasStatus(LinkStatus.FINISHED)) {
          fp_xml.appendChild(addDownloadLink(xml,dl));
        }
      }
    }
    response.addContent(JDUtilities.createXmlString(xml));
  }
 else   if (request.getRequestUrl().equals("String_Node_Str")) {
    response.addContent(DownloadWatchDog.getInstance().getConnectionManager().getIncommingBandwidthUsage() / 1000);
  }
 else   if (request.getRequestUrl().equals("String_Node_Str")) {
    response.addContent(JDUtilities.getConfiguration().getBooleanProperty(Configuration.PARAM_ALLOW_RECONNECT,true));
  }
 else   if (request.getRequestUrl().equals("String_Node_Str")) {
    response.addContent(DownloadWatchDog.getInstance().getDownloadStatus().toString());
  }
 else   if (request.getRequestUrl().matches("String_Node_Str")) {
    for (    LinkGrabberFilePackage fp : LinkGrabberController.getInstance().getPackages()) {
      Element fp_xml=addGrabberPackage(xml,fp);
      for (      DownloadLink dl : fp.getDownloadLinks()) {
        fp_xml.appendChild(addGrabberLink(xml,dl));
      }
    }
    response.addContent(JDUtilities.createXmlString(xml));
  }
 else   if (request.getRequestUrl().equals("String_Node_Str")) {
    if (LinkGrabberPanel.getLinkGrabber().isRunning()) {
      response.addContent(true);
    }
 else {
      response.addContent(false);
    }
  }
 else   if (request.getRequestUrl().equals("String_Node_Str")) {
    DownloadWatchDog.getInstance().startDownloads();
    response.addContent("String_Node_Str");
  }
 else   if (request.getRequestUrl().equals("String_Node_Str")) {
    DownloadWatchDog.getInstance().pauseDownloads(!DownloadWatchDog.getInstance().isPaused());
    response.addContent("String_Node_Str");
  }
 else   if (request.getRequestUrl().equals("String_Node_Str")) {
    DownloadWatchDog.getInstance().stopDownloads();
    response.addContent("String_Node_Str");
  }
 else   if (request.getRequestUrl().equals("String_Node_Str")) {
    DownloadWatchDog.getInstance().toggleStartStop();
    response.addContent("String_Node_Str");
  }
 else   if (request.getRequestUrl().matches("String_Node_Str")) {
    Integer force=Integer.parseInt(new Regex(request.getRequestUrl(),"String_Node_Str").getMatch(0));
    if (force == 1) {
      JDUtilities.getConfiguration().setProperty(Configuration.PARAM_WEBUPDATE_AUTO_RESTART,true);
      SubConfiguration.getConfig("String_Node_Str").setProperty(Configuration.PARAM_WEBUPDATE_DISABLE,false);
    }
    WebUpdate.doUpdateCheck(true);
    response.addContent("String_Node_Str");
  }
 else   if (request.getRequestUrl().equals("String_Node_Str")) {
    response.addContent("String_Node_Str");
    Reconnecter.doManualReconnect();
  }
 else   if (request.getRequestUrl().equals("String_Node_Str")) {
    response.addContent("String_Node_Str");
    new Thread(new Runnable(){
      public void run(){
        try {
          Thread.sleep(5000);
        }
 catch (        InterruptedException e) {
          JDLogger.exception(e);
        }
        JDUtilities.restartJD(false);
      }
    }
).start();
  }
 else   if (request.getRequestUrl().equals("String_Node_Str")) {
    response.addContent("String_Node_Str");
    new Thread(new Runnable(){
      public void run(){
        try {
          Thread.sleep(5000);
        }
 catch (        InterruptedException e) {
          JDLogger.exception(e);
        }
        JDUtilities.getController().exit();
      }
    }
).start();
  }
 else   if (request.getRequestUrl().matches("String_Node_Str")) {
    Integer newdllimit=Integer.parseInt(new Regex(request.getRequestUrl(),"String_Node_Str").getMatch(0));
    logger.fine("String_Node_Str" + newdllimit.toString());
    SubConfiguration.getConfig("String_Node_Str").setProperty(Configuration.PARAM_DOWNLOAD_MAX_SPEED,newdllimit.toString());
    SubConfiguration.getConfig("String_Node_Str").save();
    response.addContent("String_Node_Str" + newdllimit);
  }
 else   if (request.getRequestUrl().matches("String_Node_Str")) {
    Integer newsimdl=Integer.parseInt(new Regex(request.getRequestUrl(),"String_Node_Str").getMatch(0));
    logger.fine("String_Node_Str" + newsimdl.toString());
    SubConfiguration.getConfig("String_Node_Str").setProperty(Configuration.PARAM_DOWNLOAD_MAX_SIMULTAN,newsimdl.toString());
    SubConfiguration.getConfig("String_Node_Str").save();
    response.addContent("String_Node_Str" + newsimdl);
  }
 else   if (request.getRequestUrl().matches("String_Node_Str")) {
    String link=new Regex(request.getRequestUrl(),"String_Node_Str").getMatch(1);
    ArrayList<String> links=new ArrayList<String>();
    for (    String tlink : HTMLParser.getHttpLinks(Encoding.urlDecode(link,false),null)) {
      links.add(tlink);
    }
    if (request.getParameters().size() > 0) {
      Iterator<String> it=request.getParameters().keySet().iterator();
      while (it.hasNext()) {
        String help=it.next();
        if (!request.getParameter(help).equals("String_Node_Str")) {
          links.add(request.getParameter(help));
        }
      }
    }
    Integer grabber=null;
    Integer start=null;
    Boolean hidegrabber=false;
    try {
      grabber=Integer.parseInt(new Regex(request.getRequestUrl(),"String_Node_Str").getMatch(0));
      start=Integer.parseInt(new Regex(request.getRequestUrl(),"String_Node_Str").getMatch(0));
    }
 catch (    Exception e) {
    }
    if ((grabber != null) && (grabber == 0)) {
      hidegrabber=true;
    }
    StringBuilder ret=new StringBuilder();
    char tmp[]=new char[]{'"','\r','\n'};
    for (    String element : links) {
      ret.append('\"');
      ret.append(element.trim());
      ret.append(tmp);
    }
    link=ret.toString();
    new DistributeData(link,hidegrabber).start();
    if ((start != null) && start == 1) {
      DownloadWatchDog.getInstance().startDownloads();
    }
    response.addContent("String_Node_Str" + link + "String_Node_Str");
  }
 else   if (request.getRequestUrl().matches("String_Node_Str")) {
    String dlcfilestr=new Regex(request.getRequestUrl(),"String_Node_Str").getMatch(1);
    dlcfilestr=Encoding.htmlDecode(dlcfilestr);
    Integer grabber=null;
    Integer start=null;
    Boolean hidegrabber=false;
    Boolean startdl=false;
    try {
      grabber=Integer.parseInt(new Regex(request.getRequestUrl(),"String_Node_Str").getMatch(0));
      start=Integer.parseInt(new Regex(request.getRequestUrl(),"String_Node_Str").getMatch(0));
    }
 catch (    Exception e) {
    }
    if ((grabber != null) && (grabber == 0)) {
      hidegrabber=true;
    }
    if ((start != null) && start == 1) {
      startdl=true;
    }
    if (dlcfilestr.matches("String_Node_Str")) {
      String containerFormat=new Regex(dlcfilestr,"String_Node_Str").getMatch(0);
      File container=JDUtilities.getResourceFile("String_Node_Str" + System.currentTimeMillis() + "String_Node_Str"+ containerFormat);
      try {
        Browser.download(container,dlcfilestr);
        JDUtilities.getController().loadContainerFile(container,hidegrabber,startdl);
        try {
          Thread.sleep(1000);
        }
 catch (        Exception e) {
          JDLogger.exception(e);
        }
        container.delete();
      }
 catch (      Exception e) {
        JDLogger.exception(e);
      }
    }
 else {
      JDUtilities.getController().loadContainerFile(new File(dlcfilestr),hidegrabber,startdl);
    }
    response.addContent("String_Node_Str" + dlcfilestr + "String_Node_Str");
  }
 else   if (request.getRequestUrl().matches("String_Node_Str")) {
    ArrayList<DownloadLink> dllinks=new ArrayList<DownloadLink>();
    String dlcfilestr=new Regex(request.getRequestUrl(),"String_Node_Str").getMatch(1);
    dlcfilestr=Encoding.htmlDecode(dlcfilestr);
    boolean savefromGrabber=new Regex(request.getRequestUrl(),"String_Node_Str").matches();
    if (savefromGrabber) {
      if (LinkGrabberPanel.getLinkGrabber().isRunning()) {
        response.addContent(ERROR_LINK_GRABBER_RUNNING);
      }
 else {
        ArrayList<LinkGrabberFilePackage> fps=LinkGrabberController.getInstance().getPackages();
        for (int i=0; i < fps.size(); i++) {
          ArrayList<DownloadLink> fplinks=fps.get(i).getDownloadLinks();
          for (int j=0; j < fplinks.size(); j++) {
            dllinks.add(fplinks.get(i));
          }
        }
      }
    }
 else {
      dllinks=JDUtilities.getDownloadController().getAllDownloadLinks();
    }
    JDUtilities.getController().saveDLC(new File(dlcfilestr),dllinks);
    response.addContent("String_Node_Str" + dlcfilestr + "String_Node_Str");
  }
 else   if (request.getRequestUrl().matches("String_Node_Str")) {
    boolean newrc=Boolean.parseBoolean(new Regex(request.getRequestUrl(),"String_Node_Str").getMatch(0));
    logger.fine("String_Node_Str" + newrc);
    if (newrc != JDUtilities.getConfiguration().getBooleanProperty(Configuration.PARAM_ALLOW_RECONNECT,true)) {
      JDUtilities.getConfiguration().setProperty(Configuration.PARAM_ALLOW_RECONNECT,newrc);
      JDUtilities.getConfiguration().save();
      response.addContent("String_Node_Str" + newrc + "String_Node_Str");
    }
 else {
      response.addContent("String_Node_Str" + newrc + "String_Node_Str");
    }
  }
 else   if (request.getRequestUrl().matches("String_Node_Str")) {
    boolean newuseprem=Boolean.parseBoolean(new Regex(request.getRequestUrl(),"String_Node_Str").getMatch(0));
    logger.fine("String_Node_Str" + newuseprem);
    if (newuseprem != JDUtilities.getConfiguration().getBooleanProperty(Configuration.PARAM_USE_GLOBAL_PREMIUM,true)) {
      JDUtilities.getConfiguration().setProperty(Configuration.PARAM_USE_GLOBAL_PREMIUM,newuseprem);
      JDUtilities.getConfiguration().save();
      response.addContent("String_Node_Str" + newuseprem + "String_Node_Str");
    }
 else {
      response.addContent("String_Node_Str" + newuseprem + "String_Node_Str");
    }
  }
 else   if (request.getRequestUrl().matches("String_Node_Str")) {
    String[] data=new Regex(request.getRequestUrl(),"String_Node_Str").getMatch(0).replaceAll("String_Node_Str","String_Node_Str").split("String_Node_Str");
    if (LinkGrabberPanel.getLinkGrabber().isRunning()) {
      response.addContent(ERROR_LINK_GRABBER_RUNNING);
    }
 else     if (data.length < 2) {
      response.addContent(ERROR_TOO_FEW_PARAMETERS);
    }
 else {
      LinkGrabberFilePackage destPackage=null;
synchronized (LinkGrabberController.ControllerLock) {
        List<LinkGrabberFilePackage> srcPackages=new ArrayList<LinkGrabberFilePackage>();
        for (        LinkGrabberFilePackage pack : LinkGrabberController.getInstance().getPackages()) {
          if (pack.getName().equals(data[0])) {
            destPackage=pack;
            break;
          }
        }
        if (destPackage == null) {
          response.addContent("String_Node_Str" + data[0] + "String_Node_Str");
        }
 else {
          for (          LinkGrabberFilePackage pack : LinkGrabberController.getInstance().getPackages()) {
            for (            String src : data) {
              if (pack.getName().equals(src) && pack != destPackage) {
                srcPackages.add(pack);
              }
            }
          }
          for (          LinkGrabberFilePackage pack : srcPackages) {
            destPackage.addAll(pack.getDownloadLinks());
            LinkGrabberController.getInstance().removePackage(pack);
          }
          if (srcPackages.size() > 0) {
            if (srcPackages.size() < data.length - 1) {
              response.addContent("String_Node_Str");
            }
            response.addContent("String_Node_Str" + srcPackages.size() + "String_Node_Str"+ data[0]+ "String_Node_Str");
            for (int i=0; i < srcPackages.size(); ++i) {
              if (i != 0) {
                response.addContent("String_Node_Str");
              }
              response.addContent("String_Node_Str" + srcPackages.get(i).getName() + "String_Node_Str");
            }
          }
 else {
            response.addContent("String_Node_Str" + data[0] + "String_Node_Str");
          }
        }
      }
    }
  }
 else   if (request.getRequestUrl().matches("String_Node_Str")) {
    if (LinkGrabberPanel.getLinkGrabber().isRunning()) {
      response.addContent(ERROR_LINK_GRABBER_RUNNING);
    }
 else {
      String[] data=new Regex(request.getRequestUrl(),"String_Node_Str").getMatch(0).replaceAll("String_Node_Str","String_Node_Str").split("String_Node_Str");
      LinkGrabberFilePackage destPackage=null;
synchronized (LinkGrabberController.ControllerLock) {
        for (        LinkGrabberFilePackage pack : LinkGrabberController.getInstance().getPackages()) {
          if (pack.getName().equals(data[0])) {
            destPackage=pack;
            break;
          }
        }
        if (destPackage == null) {
          response.addContent("String_Node_Str" + data[0] + "String_Node_Str");
        }
 else {
          destPackage.setName(data[1]);
          LinkGrabberController.getInstance().throwRefresh();
          response.addContent("String_Node_Str" + data[0] + "String_Node_Str"+ data[1]+ "String_Node_Str");
        }
      }
    }
  }
 else   if (request.getRequestUrl().matches("String_Node_Str") || request.getRequestUrl().matches("String_Node_Str")) {
    if (LinkGrabberPanel.getLinkGrabber().isRunning()) {
      response.addContent(ERROR_LINK_GRABBER_RUNNING);
    }
 else {
      response.addContent("String_Node_Str");
synchronized (LinkGrabberController.ControllerLock) {
        List<LinkGrabberFilePackage> packages=new ArrayList<LinkGrabberFilePackage>();
        if (request.getRequestUrl().matches("String_Node_Str")) {
          String[] data=new Regex(request.getRequestUrl(),"String_Node_Str").getMatch(0).replaceAll("String_Node_Str","String_Node_Str").split("String_Node_Str");
          for (          LinkGrabberFilePackage pack : LinkGrabberController.getInstance().getPackages()) {
            for (            String name : data) {
              if (name.equalsIgnoreCase(pack.getName())) {
                packages.add(pack);
              }
            }
          }
        }
 else {
          packages.addAll(LinkGrabberController.getInstance().getPackages());
        }
        boolean avail=(packages.size() > 0);
        boolean hit=false;
        for (        LinkGrabberFilePackage pack : packages) {
          ArrayList<DownloadLink> links=pack.getDownloadLinks();
          ArrayList<FilePackage> fps=new ArrayList<FilePackage>();
          FilePackage fp=FilePackage.getInstance();
          fp.setName(pack.getName());
          fp.setName(pack.getName());
          fp.setComment(pack.getComment());
          fp.setPassword(pack.getPassword());
          fp.setExtractAfterDownload(pack.isExtractAfterDownload());
          fp.setDownloadDirectory(pack.getDownloadDirectory());
          if (pack.useSubDir()) {
            File file=new File(new File(pack.getDownloadDirectory()),fp.getName());
            fp.setDownloadDirectory(file.getAbsolutePath());
            if (JDUtilities.getConfiguration().getBooleanProperty(Configuration.PARAM_CREATE_SUBFOLDER_BEFORE_DOWNLOAD,false)) {
              if (!file.exists()) {
                if (!file.mkdirs()) {
                  logger.severe("String_Node_Str" + file.toString());
                  fp.setDownloadDirectory(pack.getDownloadDirectory());
                }
              }
            }
          }
          for (          DownloadLink link : links) {
            if (link.getFilePackage() == FilePackage.getDefaultFilePackage()) {
              fp.add(link);
              if (!fps.contains(fp))               fps.add(fp);
            }
 else {
              if (!fps.contains(link.getFilePackage()))               fps.add(link.getFilePackage());
            }
          }
          if (GUIUtils.getConfig().getBooleanProperty(JDGuiConstants.PARAM_INSERT_NEW_LINKS_AT,false)) {
            DownloadController.getInstance().addAllAt(fps,0);
          }
 else {
            DownloadController.getInstance().addAll(fps);
          }
          if (hit) {
            response.addContent("String_Node_Str");
          }
          response.addContent("String_Node_Str" + pack.getName() + "String_Node_Str");
          LinkGrabberController.getInstance().removePackage(pack);
          hit=true;
        }
        if (!avail) {
          response.addContent("String_Node_Str");
        }
      }
    }
  }
 else   if (request.getRequestUrl().matches("String_Node_Str")) {
    if (LinkGrabberPanel.getLinkGrabber().isRunning()) {
      response.addContent(ERROR_LINK_GRABBER_RUNNING);
    }
 else {
      String[] data=new Regex(request.getRequestUrl(),"String_Node_Str").getMatch(0).replaceAll("String_Node_Str","String_Node_Str").split("String_Node_Str");
      if (data.length == 0) {
        response.addContent(ERROR_TOO_FEW_PARAMETERS);
      }
 else {
synchronized (LinkGrabberController.ControllerLock) {
          response.addContent("String_Node_Str");
          for (int i=0; i < data.length; ++i) {
            if (i > 0) {
              response.addContent("String_Node_Str");
            }
            if (data[i].equals(LINK_TYPE_OFFLINE) || data[i].equals(LINK_TYPE_AVAIL)) {
              response.addContent(data[i]);
            }
 else {
              response.addContent("String_Node_Str" + data[i] + "String_Node_Str");
            }
          }
          List<String> delLinks=new ArrayList<String>();
          List<String> delPackages=new ArrayList<String>();
          List<LinkGrabberFilePackage> packages=new ArrayList<LinkGrabberFilePackage>(LinkGrabberController.getInstance().getPackages());
          for (          LinkGrabberFilePackage pack : packages) {
            List<DownloadLink> links=new ArrayList<DownloadLink>(pack.getDownloadLinks());
            for (            DownloadLink link : links) {
              for (              String type : data) {
                if ((type.equals(LINK_TYPE_OFFLINE) && link.getAvailableStatus().equals(AvailableStatus.FALSE)) || (type.equals(LINK_TYPE_AVAIL) && link.getLinkStatus().hasStatus(LinkStatus.ERROR_ALREADYEXISTS))) {
                  pack.remove(link);
                  delLinks.add(link.getDownloadURL());
                }
              }
            }
            if (pack.getDownloadLinks().size() == 0) {
              delPackages.add(pack.getName());
            }
          }
          response.addContent("String_Node_Str" + delLinks.size() + "String_Node_Str"+ delLinks+ "String_Node_Str"+ delPackages.size()+ "String_Node_Str"+ delPackages+ "String_Node_Str");
        }
      }
    }
  }
 else {
    response.addContent("String_Node_Str");
  }
}