Program: 20913
Project: 20913
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");
    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");
    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" + "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");
    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().matches("String_Node_Str")) {
    int counter=0;
    for (    LinkGrabberFilePackage fp : LinkGrabberController.getInstance().getPackages()) {
      counter+=fp.getDownloadLinks().size();
    }
    response.addContent(counter);
  }
 else   if (request.getRequestUrl().equals("String_Node_Str")) {
    boolean isbusy=false;
    if (LinkGrabberPanel.getLinkGrabber().isRunning())     isbusy=true;
 else     isbusy=false;
    response.addContent(isbusy);
  }
 else   if (request.getRequestUrl().equals("String_Node_Str")) {
    boolean value=GUIUtils.getConfig().getBooleanProperty(JDGuiConstants.PARAM_START_AFTER_ADDING_LINKS,true);
    response.addContent(value);
  }
 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")) {
    if (request.getRequestUrl().matches("String_Node_Str")) {
      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")) {
    boolean value=Boolean.parseBoolean(new Regex(request.getRequestUrl(),"String_Node_Str").getMatch(0));
    logger.fine("String_Node_Str" + value);
    if (value != GUIUtils.getConfig().getBooleanProperty(JDGuiConstants.PARAM_START_AFTER_ADDING_LINKS,true)) {
      GUIUtils.getConfig().setProperty(JDGuiConstants.PARAM_START_AFTER_ADDING_LINKS,value);
      JDUtilities.getConfiguration().save();
      response.addContent("String_Node_Str" + value + "String_Node_Str");
    }
 else {
      response.addContent("String_Node_Str" + value + "String_Node_Str");
    }
  }
 else   if (request.getRequestUrl().matches("String_Node_Str")) {
    ArrayList<String> links=new ArrayList<String>();
    String link=new Regex(request.getRequestUrl(),"String_Node_Str").getMatch(1);
    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));
        }
      }
    }
    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,false).start();
    if (request.getRequestUrl().matches("String_Node_Str")) {
      try {
        Thread.sleep(3000);
      }
 catch (      InterruptedException e) {
        logger.warning(e.toString());
      }
      while (grabberIsBusy) {
        try {
          Thread.sleep(1000);
        }
 catch (        InterruptedException e) {
          logger.warning(e.toString());
        }
      }
      ArrayList<LinkGrabberFilePackage> lgPackages=new ArrayList<LinkGrabberFilePackage>();
synchronized (LinkGrabberController.ControllerLock) {
        lgPackages.addAll(LinkGrabberController.getInstance().getPackages());
        for (int i=0; i < lgPackages.size(); i++) {
          for (          String linkurl : links) {
            for (            DownloadLink dll : lgPackages.get(i).getDownloadLinks()) {
              if (linkurl.equals(dll.getBrowserUrl())) {
                LinkGrabberPanel.getLinkGrabber().confirmPackage(lgPackages.get(i),null,i);
              }
            }
          }
        }
      }
    }
    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);
    ArrayList<LinkGrabberFilePackage> packagesBefore=null;
    ArrayList<LinkGrabberFilePackage> packages=null;
    if (request.getRequestUrl().matches("String_Node_Str")) {
      packagesBefore=new ArrayList<LinkGrabberFilePackage>();
      packagesBefore.addAll(LinkGrabberController.getInstance().getPackages());
    }
    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,false,false);
        try {
          Thread.sleep(3000);
        }
 catch (        Exception e) {
          JDLogger.exception(e);
        }
        container.delete();
      }
 catch (      Exception e) {
        JDLogger.exception(e);
      }
    }
 else {
      JDUtilities.getController().loadContainerFile(new File(dlcfilestr),false,false);
    }
    if (request.getRequestUrl().matches("String_Node_Str")) {
      try {
        Thread.sleep(3000);
      }
 catch (      InterruptedException e) {
        logger.warning(e.toString());
      }
      while (grabberIsBusy) {
        try {
          Thread.sleep(1000);
        }
 catch (        InterruptedException e) {
          logger.warning(e.toString());
        }
      }
synchronized (LinkGrabberController.ControllerLock) {
        packages=new ArrayList<LinkGrabberFilePackage>();
        packages.addAll(LinkGrabberController.getInstance().getPackages());
        for (        LinkGrabberFilePackage packa : packages) {
          for (          LinkGrabberFilePackage packb : packagesBefore) {
            if (packa.equals(packb)) {
              packages.remove(packa);
            }
          }
        }
        for (int i=0; i < packages.size(); i++) {
          LinkGrabberPanel.getLinkGrabber().confirmPackage(packages.get(i),null,i);
        }
      }
    }
    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> lgPackages=new ArrayList<LinkGrabberFilePackage>();
        ArrayList<FilePackage> packages=new ArrayList<FilePackage>();
synchronized (LinkGrabberController.ControllerLock) {
          lgPackages.addAll(LinkGrabberController.getInstance().getPackages());
          for (int i=0; i < lgPackages.size(); i++) {
            DownloadLink dl=null;
            for (            DownloadLink link : lgPackages.get(i).getDownloadLinks()) {
              link.setEnabled(false);
              if (dl == null)               dl=link;
            }
            LinkGrabberPanel.getLinkGrabber().confirmPackage(lgPackages.get(i),null,i);
            packages.add(dl.getFilePackage());
          }
          JDUtilities.getController().saveDLC(new File(dlcfilestr),dllinks);
          for (          FilePackage fp : packages) {
            JDUtilities.getDownloadController().removePackage(fp);
          }
        }
      }
    }
 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")) {
    if (LinkGrabberPanel.getLinkGrabber().isRunning()) {
      response.addContent(ERROR_LINK_GRABBER_RUNNING);
    }
 else {
      ArrayList<LinkGrabberFilePackage> srcPackages=new ArrayList<LinkGrabberFilePackage>();
      String[] packagenames=Encoding.htmlDecode(new Regex(request.getRequestUrl(),"String_Node_Str").getMatch(0)).split("String_Node_Str");
synchronized (LinkGrabberController.ControllerLock) {
        LinkGrabberFilePackage destPackage=LinkGrabberController.getInstance().getFPwithName(packagenames[0]);
        if (destPackage == null) {
          response.addContent("String_Node_Str" + packagenames[0] + "String_Node_Str");
        }
 else {
          for (          LinkGrabberFilePackage pack : LinkGrabberController.getInstance().getPackages()) {
            for (            String src : packagenames) {
              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() < packagenames.length - 1) {
              response.addContent("String_Node_Str");
            }
            response.addContent("String_Node_Str" + srcPackages.size() + "String_Node_Str"+ packagenames[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" + packagenames[0] + "String_Node_Str");
          }
        }
      }
    }
  }
 else   if (request.getRequestUrl().matches("String_Node_Str")) {
    if (LinkGrabberPanel.getLinkGrabber().isRunning()) {
      response.addContent(ERROR_LINK_GRABBER_RUNNING);
    }
 else {
      String[] packagenames=Encoding.htmlDecode(new Regex(request.getRequestUrl(),"String_Node_Str").getMatch(0)).split("String_Node_Str");
synchronized (LinkGrabberController.ControllerLock) {
        LinkGrabberFilePackage destPackage=LinkGrabberController.getInstance().getFPwithName(packagenames[0]);
        if (destPackage == null) {
          response.addContent("String_Node_Str" + packagenames[0] + "String_Node_Str");
        }
 else {
          destPackage.setName(packagenames[1]);
          LinkGrabberController.getInstance().throwRefresh();
          response.addContent("String_Node_Str" + packagenames[0] + "String_Node_Str"+ packagenames[1]+ "String_Node_Str");
        }
      }
    }
  }
 else   if (request.getRequestUrl().matches("String_Node_Str")) {
    if (LinkGrabberPanel.getLinkGrabber().isRunning()) {
      response.addContent(ERROR_LINK_GRABBER_RUNNING);
    }
 else {
      ArrayList<LinkGrabberFilePackage> packages=new ArrayList<LinkGrabberFilePackage>();
synchronized (LinkGrabberController.ControllerLock) {
        packages.addAll(LinkGrabberController.getInstance().getPackages());
        for (int i=0; i < packages.size(); i++) {
          LinkGrabberPanel.getLinkGrabber().confirmPackage(packages.get(i),null,i);
        }
        response.addContent("String_Node_Str");
      }
    }
  }
 else   if (request.getRequestUrl().matches("String_Node_Str")) {
    if (LinkGrabberPanel.getLinkGrabber().isRunning()) {
      response.addContent(ERROR_LINK_GRABBER_RUNNING);
    }
 else {
      ArrayList<LinkGrabberFilePackage> addedlist=new ArrayList<LinkGrabberFilePackage>();
      ArrayList<LinkGrabberFilePackage> packages=new ArrayList<LinkGrabberFilePackage>();
      String[] packagenames=Encoding.htmlDecode(new Regex(request.getRequestUrl(),"String_Node_Str").getMatch(0)).split("String_Node_Str");
synchronized (LinkGrabberController.ControllerLock) {
        packages.addAll(LinkGrabberController.getInstance().getPackages());
        for (int i=0; i < packages.size(); i++) {
          LinkGrabberFilePackage fp=packages.get(i);
          for (          String name : packagenames) {
            if (name.equalsIgnoreCase(fp.getName())) {
              LinkGrabberPanel.getLinkGrabber().confirmPackage(fp,null,i);
              addedlist.add(fp);
            }
          }
        }
        response.addContent("String_Node_Str");
        for (int i=0; i < addedlist.size(); i++) {
          if (i != 0)           response.addContent("String_Node_Str");
          response.addContent("String_Node_Str" + addedlist.get(i).getName() + "String_Node_Str");
        }
      }
    }
  }
 else   if (request.getRequestUrl().matches("String_Node_Str")) {
    if (LinkGrabberPanel.getLinkGrabber().isRunning()) {
      response.addContent(ERROR_LINK_GRABBER_RUNNING);
    }
 else {
      ArrayList<String> delLinks=new ArrayList<String>();
      ArrayList<String> delPackages=new ArrayList<String>();
      String[] types=Encoding.htmlDecode(new Regex(request.getRequestUrl(),"String_Node_Str").getMatch(0)).split("String_Node_Str");
synchronized (LinkGrabberController.ControllerLock) {
        ArrayList<LinkGrabberFilePackage> packages=new ArrayList<LinkGrabberFilePackage>();
        packages.addAll(LinkGrabberController.getInstance().getPackages());
        response.addContent("String_Node_Str");
        for (int i=0; i < types.length; ++i) {
          if (i != 0)           response.addContent("String_Node_Str");
          if (types[i].equals(LINK_TYPE_OFFLINE) || types[i].equals(LINK_TYPE_AVAIL)) {
            response.addContent(types[i]);
          }
 else {
            response.addContent("String_Node_Str" + types[i] + "String_Node_Str");
          }
        }
        for (        LinkGrabberFilePackage fp : packages) {
          ArrayList<DownloadLink> links=new ArrayList<DownloadLink>(fp.getDownloadLinks());
          for (          DownloadLink link : links) {
            for (            String type : types) {
              if ((type.equals(LINK_TYPE_OFFLINE) && link.getAvailableStatus().equals(AvailableStatus.FALSE)) || (type.equals(LINK_TYPE_AVAIL) && link.getLinkStatus().hasStatus(LinkStatus.ERROR_ALREADYEXISTS))) {
                fp.remove(link);
                delLinks.add(link.getDownloadURL());
              }
            }
          }
          if (fp.getDownloadLinks().size() == 0) {
            delPackages.add(fp.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   if (request.getRequestUrl().matches("String_Node_Str")) {
    if (LinkGrabberPanel.getLinkGrabber().isRunning()) {
      response.addContent(ERROR_LINK_GRABBER_RUNNING);
    }
 else {
      ArrayList<LinkGrabberFilePackage> packages=new ArrayList<LinkGrabberFilePackage>();
synchronized (LinkGrabberController.ControllerLock) {
        packages.addAll(LinkGrabberController.getInstance().getPackages());
        for (        LinkGrabberFilePackage fp : packages) {
          LinkGrabberController.getInstance().removePackage(fp);
        }
        response.addContent("String_Node_Str");
      }
    }
  }
 else   if (request.getRequestUrl().matches("String_Node_Str")) {
    String[] packagenames=Encoding.htmlDecode(new Regex(request.getRequestUrl(),"String_Node_Str").getMatch(0)).split("String_Node_Str");
    if (LinkGrabberPanel.getLinkGrabber().isRunning()) {
      response.addContent(ERROR_LINK_GRABBER_RUNNING);
    }
 else {
      ArrayList<LinkGrabberFilePackage> packages=new ArrayList<LinkGrabberFilePackage>();
      ArrayList<LinkGrabberFilePackage> removelist=new ArrayList<LinkGrabberFilePackage>();
synchronized (LinkGrabberController.ControllerLock) {
        packages.addAll(LinkGrabberController.getInstance().getPackages());
        for (int i=0; i < packages.size(); i++) {
          LinkGrabberFilePackage fp=packages.get(i);
          for (          String name : packagenames) {
            if (name.equalsIgnoreCase(fp.getName())) {
              LinkGrabberController.getInstance().removePackage(fp);
              removelist.add(fp);
            }
          }
        }
        response.addContent("String_Node_Str");
        for (int i=0; i < removelist.size(); i++) {
          if (i != 0)           response.addContent("String_Node_Str");
          response.addContent("String_Node_Str" + removelist.get(i).getName() + "String_Node_Str");
        }
      }
    }
  }
 else   if (request.getRequestUrl().matches("String_Node_Str")) {
    ArrayList<FilePackage> packages=new ArrayList<FilePackage>();
    packages.addAll(DownloadController.getInstance().getPackages());
    for (    FilePackage fp : packages) {
      DownloadController.getInstance().removePackage(fp);
    }
    response.addContent("String_Node_Str");
  }
 else   if (request.getRequestUrl().matches("String_Node_Str")) {
    ArrayList<FilePackage> packages=new ArrayList<FilePackage>();
    ArrayList<FilePackage> removelist=new ArrayList<FilePackage>();
    String[] packagenames=Encoding.htmlDecode(new Regex(request.getRequestUrl(),"String_Node_Str").getMatch(0)).split("String_Node_Str");
    packages.addAll(DownloadController.getInstance().getPackages());
    for (int i=0; i < packages.size(); i++) {
      FilePackage fp=packages.get(i);
      for (      String name : packagenames) {
        if (name.equalsIgnoreCase(fp.getName())) {
          DownloadController.getInstance().removePackage(fp);
          removelist.add(fp);
        }
      }
    }
    response.addContent("String_Node_Str");
    for (int i=0; i < removelist.size(); i++) {
      if (i != 0)       response.addContent("String_Node_Str");
      response.addContent("String_Node_Str" + removelist.get(i).getName() + "String_Node_Str");
    }
  }
 else {
    response.addContent(ERROR_MALFORMED_REQUEST);
  }
}

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");
    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");
    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" + "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");
    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().matches("String_Node_Str")) {
    int counter=0;
    for (    LinkGrabberFilePackage fp : LinkGrabberController.getInstance().getPackages()) {
      counter+=fp.getDownloadLinks().size();
    }
    response.addContent(counter);
  }
 else   if (request.getRequestUrl().equals("String_Node_Str")) {
    boolean isbusy=false;
    if (LinkGrabberPanel.getLinkGrabber().isRunning())     isbusy=true;
 else     isbusy=false;
    response.addContent(isbusy);
  }
 else   if (request.getRequestUrl().equals("String_Node_Str")) {
    boolean value=GUIUtils.getConfig().getBooleanProperty(JDGuiConstants.PARAM_START_AFTER_ADDING_LINKS,true);
    response.addContent(value);
  }
 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")) {
    if (request.getRequestUrl().matches("String_Node_Str")) {
      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")) {
    boolean value=Boolean.parseBoolean(new Regex(request.getRequestUrl(),"String_Node_Str").getMatch(0));
    logger.fine("String_Node_Str" + value);
    if (value != GUIUtils.getConfig().getBooleanProperty(JDGuiConstants.PARAM_START_AFTER_ADDING_LINKS,true)) {
      GUIUtils.getConfig().setProperty(JDGuiConstants.PARAM_START_AFTER_ADDING_LINKS,value);
      JDUtilities.getConfiguration().save();
      response.addContent("String_Node_Str" + value + "String_Node_Str");
    }
 else {
      response.addContent("String_Node_Str" + value + "String_Node_Str");
    }
  }
 else   if (request.getRequestUrl().matches("String_Node_Str")) {
    ArrayList<String> links=new ArrayList<String>();
    String link=new Regex(request.getRequestUrl(),"String_Node_Str").getMatch(1);
    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));
        }
      }
    }
    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,false).start();
    if (request.getRequestUrl().matches("String_Node_Str")) {
      try {
        Thread.sleep(3000);
      }
 catch (      InterruptedException e) {
        logger.warning(e.toString());
      }
      while (grabberIsBusy) {
        try {
          Thread.sleep(1000);
        }
 catch (        InterruptedException e) {
          logger.warning(e.toString());
        }
      }
      ArrayList<LinkGrabberFilePackage> lgPackages=new ArrayList<LinkGrabberFilePackage>();
synchronized (LinkGrabberController.ControllerLock) {
        lgPackages.addAll(LinkGrabberController.getInstance().getPackages());
        for (int i=0; i < lgPackages.size(); i++) {
          for (          String linkurl : links) {
            for (            DownloadLink dll : lgPackages.get(i).getDownloadLinks()) {
              if (linkurl.equals(dll.getBrowserUrl())) {
                LinkGrabberPanel.getLinkGrabber().confirmPackage(lgPackages.get(i),null,i);
              }
            }
          }
        }
      }
    }
    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);
    ArrayList<LinkGrabberFilePackage> packagesBefore=null;
    ArrayList<LinkGrabberFilePackage> packages=null;
    if (request.getRequestUrl().matches("String_Node_Str")) {
      packagesBefore=new ArrayList<LinkGrabberFilePackage>();
      packagesBefore.addAll(LinkGrabberController.getInstance().getPackages());
    }
    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,false,false);
        try {
          Thread.sleep(3000);
        }
 catch (        Exception e) {
          JDLogger.exception(e);
        }
        container.delete();
      }
 catch (      Exception e) {
        JDLogger.exception(e);
      }
    }
 else {
      JDUtilities.getController().loadContainerFile(new File(dlcfilestr),false,false);
    }
    if (request.getRequestUrl().matches("String_Node_Str")) {
      try {
        Thread.sleep(3000);
      }
 catch (      InterruptedException e) {
        logger.warning(e.toString());
      }
      while (grabberIsBusy) {
        try {
          Thread.sleep(1000);
        }
 catch (        InterruptedException e) {
          logger.warning(e.toString());
        }
      }
synchronized (LinkGrabberController.ControllerLock) {
        packages=new ArrayList<LinkGrabberFilePackage>();
        packages.addAll(LinkGrabberController.getInstance().getPackages());
        for (        LinkGrabberFilePackage packa : packages) {
          for (          LinkGrabberFilePackage packb : packagesBefore) {
            if (packa.equals(packb)) {
              packages.remove(packa);
            }
          }
        }
        for (int i=0; i < packages.size(); i++) {
          LinkGrabberPanel.getLinkGrabber().confirmPackage(packages.get(i),null,i);
        }
      }
    }
    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> lgPackages=new ArrayList<LinkGrabberFilePackage>();
        ArrayList<FilePackage> packages=new ArrayList<FilePackage>();
synchronized (LinkGrabberController.ControllerLock) {
          lgPackages.addAll(LinkGrabberController.getInstance().getPackages());
          for (int i=0; i < lgPackages.size(); i++) {
            DownloadLink dl=null;
            for (            DownloadLink link : lgPackages.get(i).getDownloadLinks()) {
              dllinks.add(link);
              link.setEnabled(false);
              if (dl == null)               dl=link;
            }
            LinkGrabberPanel.getLinkGrabber().confirmPackage(lgPackages.get(i),null,i);
            packages.add(dl.getFilePackage());
          }
          JDUtilities.getController().saveDLC(new File(dlcfilestr),dllinks);
          for (          FilePackage fp : packages) {
            JDUtilities.getDownloadController().removePackage(fp);
          }
        }
      }
    }
 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")) {
    if (LinkGrabberPanel.getLinkGrabber().isRunning()) {
      response.addContent(ERROR_LINK_GRABBER_RUNNING);
    }
 else {
      ArrayList<LinkGrabberFilePackage> srcPackages=new ArrayList<LinkGrabberFilePackage>();
      String[] packagenames=Encoding.htmlDecode(new Regex(request.getRequestUrl(),"String_Node_Str").getMatch(0)).split("String_Node_Str");
synchronized (LinkGrabberController.ControllerLock) {
        LinkGrabberFilePackage destPackage=LinkGrabberController.getInstance().getFPwithName(packagenames[0]);
        if (destPackage == null) {
          response.addContent("String_Node_Str" + packagenames[0] + "String_Node_Str");
        }
 else {
          for (          LinkGrabberFilePackage pack : LinkGrabberController.getInstance().getPackages()) {
            for (            String src : packagenames) {
              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() < packagenames.length - 1) {
              response.addContent("String_Node_Str");
            }
            response.addContent("String_Node_Str" + srcPackages.size() + "String_Node_Str"+ packagenames[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" + packagenames[0] + "String_Node_Str");
          }
        }
      }
    }
  }
 else   if (request.getRequestUrl().matches("String_Node_Str")) {
    if (LinkGrabberPanel.getLinkGrabber().isRunning()) {
      response.addContent(ERROR_LINK_GRABBER_RUNNING);
    }
 else {
      String[] packagenames=Encoding.htmlDecode(new Regex(request.getRequestUrl(),"String_Node_Str").getMatch(0)).split("String_Node_Str");
synchronized (LinkGrabberController.ControllerLock) {
        LinkGrabberFilePackage destPackage=LinkGrabberController.getInstance().getFPwithName(packagenames[0]);
        if (destPackage == null) {
          response.addContent("String_Node_Str" + packagenames[0] + "String_Node_Str");
        }
 else {
          destPackage.setName(packagenames[1]);
          LinkGrabberController.getInstance().throwRefresh();
          response.addContent("String_Node_Str" + packagenames[0] + "String_Node_Str"+ packagenames[1]+ "String_Node_Str");
        }
      }
    }
  }
 else   if (request.getRequestUrl().matches("String_Node_Str")) {
    if (LinkGrabberPanel.getLinkGrabber().isRunning()) {
      response.addContent(ERROR_LINK_GRABBER_RUNNING);
    }
 else {
      ArrayList<LinkGrabberFilePackage> packages=new ArrayList<LinkGrabberFilePackage>();
synchronized (LinkGrabberController.ControllerLock) {
        packages.addAll(LinkGrabberController.getInstance().getPackages());
        for (int i=0; i < packages.size(); i++) {
          LinkGrabberPanel.getLinkGrabber().confirmPackage(packages.get(i),null,i);
        }
        response.addContent("String_Node_Str");
      }
    }
  }
 else   if (request.getRequestUrl().matches("String_Node_Str")) {
    if (LinkGrabberPanel.getLinkGrabber().isRunning()) {
      response.addContent(ERROR_LINK_GRABBER_RUNNING);
    }
 else {
      ArrayList<LinkGrabberFilePackage> addedlist=new ArrayList<LinkGrabberFilePackage>();
      ArrayList<LinkGrabberFilePackage> packages=new ArrayList<LinkGrabberFilePackage>();
      String[] packagenames=Encoding.htmlDecode(new Regex(request.getRequestUrl(),"String_Node_Str").getMatch(0)).split("String_Node_Str");
synchronized (LinkGrabberController.ControllerLock) {
        packages.addAll(LinkGrabberController.getInstance().getPackages());
        for (int i=0; i < packages.size(); i++) {
          LinkGrabberFilePackage fp=packages.get(i);
          for (          String name : packagenames) {
            if (name.equalsIgnoreCase(fp.getName())) {
              LinkGrabberPanel.getLinkGrabber().confirmPackage(fp,null,i);
              addedlist.add(fp);
            }
          }
        }
        response.addContent("String_Node_Str");
        for (int i=0; i < addedlist.size(); i++) {
          if (i != 0)           response.addContent("String_Node_Str");
          response.addContent("String_Node_Str" + addedlist.get(i).getName() + "String_Node_Str");
        }
      }
    }
  }
 else   if (request.getRequestUrl().matches("String_Node_Str")) {
    if (LinkGrabberPanel.getLinkGrabber().isRunning()) {
      response.addContent(ERROR_LINK_GRABBER_RUNNING);
    }
 else {
      ArrayList<String> delLinks=new ArrayList<String>();
      ArrayList<String> delPackages=new ArrayList<String>();
      String[] types=Encoding.htmlDecode(new Regex(request.getRequestUrl(),"String_Node_Str").getMatch(0)).split("String_Node_Str");
synchronized (LinkGrabberController.ControllerLock) {
        ArrayList<LinkGrabberFilePackage> packages=new ArrayList<LinkGrabberFilePackage>();
        packages.addAll(LinkGrabberController.getInstance().getPackages());
        response.addContent("String_Node_Str");
        for (int i=0; i < types.length; ++i) {
          if (i != 0)           response.addContent("String_Node_Str");
          if (types[i].equals(LINK_TYPE_OFFLINE) || types[i].equals(LINK_TYPE_AVAIL)) {
            response.addContent(types[i]);
          }
 else {
            response.addContent("String_Node_Str" + types[i] + "String_Node_Str");
          }
        }
        for (        LinkGrabberFilePackage fp : packages) {
          ArrayList<DownloadLink> links=new ArrayList<DownloadLink>(fp.getDownloadLinks());
          for (          DownloadLink link : links) {
            for (            String type : types) {
              if ((type.equals(LINK_TYPE_OFFLINE) && link.getAvailableStatus().equals(AvailableStatus.FALSE)) || (type.equals(LINK_TYPE_AVAIL) && link.getLinkStatus().hasStatus(LinkStatus.ERROR_ALREADYEXISTS))) {
                fp.remove(link);
                delLinks.add(link.getDownloadURL());
              }
            }
          }
          if (fp.getDownloadLinks().size() == 0) {
            delPackages.add(fp.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   if (request.getRequestUrl().matches("String_Node_Str")) {
    if (LinkGrabberPanel.getLinkGrabber().isRunning()) {
      response.addContent(ERROR_LINK_GRABBER_RUNNING);
    }
 else {
      ArrayList<LinkGrabberFilePackage> packages=new ArrayList<LinkGrabberFilePackage>();
synchronized (LinkGrabberController.ControllerLock) {
        packages.addAll(LinkGrabberController.getInstance().getPackages());
        for (        LinkGrabberFilePackage fp : packages) {
          LinkGrabberController.getInstance().removePackage(fp);
        }
        response.addContent("String_Node_Str");
      }
    }
  }
 else   if (request.getRequestUrl().matches("String_Node_Str")) {
    String[] packagenames=Encoding.htmlDecode(new Regex(request.getRequestUrl(),"String_Node_Str").getMatch(0)).split("String_Node_Str");
    if (LinkGrabberPanel.getLinkGrabber().isRunning()) {
      response.addContent(ERROR_LINK_GRABBER_RUNNING);
    }
 else {
      ArrayList<LinkGrabberFilePackage> packages=new ArrayList<LinkGrabberFilePackage>();
      ArrayList<LinkGrabberFilePackage> removelist=new ArrayList<LinkGrabberFilePackage>();
synchronized (LinkGrabberController.ControllerLock) {
        packages.addAll(LinkGrabberController.getInstance().getPackages());
        for (int i=0; i < packages.size(); i++) {
          LinkGrabberFilePackage fp=packages.get(i);
          for (          String name : packagenames) {
            if (name.equalsIgnoreCase(fp.getName())) {
              LinkGrabberController.getInstance().removePackage(fp);
              removelist.add(fp);
            }
          }
        }
        response.addContent("String_Node_Str");
        for (int i=0; i < removelist.size(); i++) {
          if (i != 0)           response.addContent("String_Node_Str");
          response.addContent("String_Node_Str" + removelist.get(i).getName() + "String_Node_Str");
        }
      }
    }
  }
 else   if (request.getRequestUrl().matches("String_Node_Str")) {
    ArrayList<FilePackage> packages=new ArrayList<FilePackage>();
    packages.addAll(DownloadController.getInstance().getPackages());
    for (    FilePackage fp : packages) {
      DownloadController.getInstance().removePackage(fp);
    }
    response.addContent("String_Node_Str");
  }
 else   if (request.getRequestUrl().matches("String_Node_Str")) {
    ArrayList<FilePackage> packages=new ArrayList<FilePackage>();
    ArrayList<FilePackage> removelist=new ArrayList<FilePackage>();
    String[] packagenames=Encoding.htmlDecode(new Regex(request.getRequestUrl(),"String_Node_Str").getMatch(0)).split("String_Node_Str");
    packages.addAll(DownloadController.getInstance().getPackages());
    for (int i=0; i < packages.size(); i++) {
      FilePackage fp=packages.get(i);
      for (      String name : packagenames) {
        if (name.equalsIgnoreCase(fp.getName())) {
          DownloadController.getInstance().removePackage(fp);
          removelist.add(fp);
        }
      }
    }
    response.addContent("String_Node_Str");
    for (int i=0; i < removelist.size(); i++) {
      if (i != 0)       response.addContent("String_Node_Str");
      response.addContent("String_Node_Str" + removelist.get(i).getName() + "String_Node_Str");
    }
  }
 else {
    response.addContent(ERROR_MALFORMED_REQUEST);
  }
}