Example usage for java.io FileReader close

List of usage examples for java.io FileReader close

Introduction

In this page you can find the example usage for java.io FileReader close.

Prototype

public void close() throws IOException 

Source Link

Usage

From source file:org.apache.flink.runtime.operators.DataSinkTaskTest.java

@Test
@SuppressWarnings("unchecked")
public void testSortingDataSinkTask() {

    int keyCnt = 100;
    int valCnt = 20;
    double memoryFraction = 1.0;

    super.initEnvironment(MEMORY_MANAGER_SIZE, NETWORK_BUFFER_SIZE);
    super.addInput(new UniformRecordGenerator(keyCnt, valCnt, true), 0);

    DataSinkTask<Record> testTask = new DataSinkTask<Record>();

    // set sorting
    super.getTaskConfig().setInputLocalStrategy(0, LocalStrategy.SORT);
    super.getTaskConfig().setInputComparator(new RecordComparatorFactory(new int[] { 1 },
            ((Class<? extends Key<?>>[]) new Class[] { IntValue.class })), 0);
    super.getTaskConfig().setRelativeMemoryInput(0, memoryFraction);
    super.getTaskConfig().setFilehandlesInput(0, 8);
    super.getTaskConfig().setSpillingThresholdInput(0, 0.8f);

    super.registerFileOutputTask(testTask, MockOutputFormat.class, new File(tempTestPath).toURI().toString());

    try {/*from  w  w  w .  j  a  v a2  s.  c  o m*/
        testTask.invoke();
    } catch (Exception e) {
        LOG.debug(e);
        Assert.fail("Invoke method caused exception.");
    }

    File tempTestFile = new File(this.tempTestPath);

    Assert.assertTrue("Temp output file does not exist", tempTestFile.exists());

    FileReader fr = null;
    BufferedReader br = null;
    try {
        fr = new FileReader(tempTestFile);
        br = new BufferedReader(fr);

        Set<Integer> keys = new HashSet<Integer>();

        int curVal = -1;
        while (br.ready()) {
            String line = br.readLine();

            Integer key = Integer.parseInt(line.substring(0, line.indexOf("_")));
            Integer val = Integer.parseInt(line.substring(line.indexOf("_") + 1, line.length()));

            // check that values are in correct order
            Assert.assertTrue("Values not in ascending order", val >= curVal);
            // next value hit
            if (val > curVal) {
                if (curVal != -1) {
                    // check that we saw 100 distinct keys for this values
                    Assert.assertTrue("Keys missing for value", keys.size() == 100);
                }
                // empty keys set
                keys.clear();
                // update current value
                curVal = val;
            }

            Assert.assertTrue("Duplicate key for value", keys.add(key));
        }

    } catch (FileNotFoundException e) {
        Assert.fail("Out file got lost...");
    } catch (IOException ioe) {
        Assert.fail("Caught IOE while reading out file");
    } finally {
        if (br != null) {
            try {
                br.close();
            } catch (Throwable t) {
            }
        }
        if (fr != null) {
            try {
                fr.close();
            } catch (Throwable t) {
            }
        }
    }
}

From source file:eu.stratosphere.pact.runtime.task.DataSinkTaskTest.java

@Test
public void testDataSinkTask() {

    int keyCnt = 100;
    int valCnt = 20;

    super.initEnvironment(MEMORY_MANAGER_SIZE, NETWORK_BUFFER_SIZE);
    super.addInput(new UniformRecordGenerator(keyCnt, valCnt, false), 0);

    DataSinkTask<Record> testTask = new DataSinkTask<Record>();

    super.registerFileOutputTask(testTask, MockOutputFormat.class, new File(tempTestPath).toURI().toString());

    try {/*  ww  w.  jav  a  2 s .c  o  m*/
        testTask.invoke();
    } catch (Exception e) {
        LOG.debug(e);
        Assert.fail("Invoke method caused exception.");
    }

    File tempTestFile = new File(this.tempTestPath);

    Assert.assertTrue("Temp output file does not exist", tempTestFile.exists());

    FileReader fr = null;
    BufferedReader br = null;
    try {
        fr = new FileReader(tempTestFile);
        br = new BufferedReader(fr);

        HashMap<Integer, HashSet<Integer>> keyValueCountMap = new HashMap<Integer, HashSet<Integer>>(keyCnt);

        while (br.ready()) {
            String line = br.readLine();

            Integer key = Integer.parseInt(line.substring(0, line.indexOf("_")));
            Integer val = Integer.parseInt(line.substring(line.indexOf("_") + 1, line.length()));

            if (!keyValueCountMap.containsKey(key)) {
                keyValueCountMap.put(key, new HashSet<Integer>());
            }
            keyValueCountMap.get(key).add(val);
        }

        Assert.assertTrue("Invalid key count in out file. Expected: " + keyCnt + " Actual: "
                + keyValueCountMap.keySet().size(), keyValueCountMap.keySet().size() == keyCnt);

        for (Integer key : keyValueCountMap.keySet()) {
            Assert.assertTrue("Invalid value count for key: " + key + ". Expected: " + valCnt + " Actual: "
                    + keyValueCountMap.get(key).size(), keyValueCountMap.get(key).size() == valCnt);
        }

    } catch (FileNotFoundException e) {
        Assert.fail("Out file got lost...");
    } catch (IOException ioe) {
        Assert.fail("Caught IOE while reading out file");
    } finally {
        if (br != null) {
            try {
                br.close();
            } catch (Throwable t) {
            }
        }
        if (fr != null) {
            try {
                fr.close();
            } catch (Throwable t) {
            }
        }
    }
}

From source file:org.apache.jetspeed.modules.actions.portlets.PsmlUpdateAction.java

/**
 * Load a PSMLDOcument from disk/* ww  w .ja  v  a 2s  . c o  m*/
 *
 * @param fileOrUrl a String representing either an absolute URL or an
 * absolute filepath
 */
private PSMLDocument loadDocument(String fileOrUrl) {
    PSMLDocument doc = null;

    if (fileOrUrl != null) {

        // we'll assume the name is the the location of the file
        File f = null;

        f = new File(fileOrUrl);

        if (!f.exists()) {
            return null;
        }

        doc = new BasePSMLDocument();
        doc.setName(fileOrUrl);

        // now that we have a file reference, try to load the serialized PSML
        Portlets portlets = null;
        FileReader reader = null;
        try {
            reader = new FileReader(f);

            Unmarshaller unmarshaller = new Unmarshaller(this.loadMapping());
            portlets = (Portlets) unmarshaller.unmarshal(reader);

            doc.setPortlets(portlets);

        } catch (IOException e) {
            logger.error("PSMLUpdateAction: Could not load the file " + f.getAbsolutePath(), e);
        } catch (MarshalException e) {
            logger.error("PSMLUpdateAction: Could not unmarshal the file " + f.getAbsolutePath(), e);
        } catch (MappingException e) {
            logger.error("PSMLUpdateAction: Could not unmarshal the file " + f.getAbsolutePath(), e);
        } catch (ValidationException e) {
            logger.error("PSMLUpdateAction: document " + f.getAbsolutePath() + " is not valid", e);
        } catch (Exception e) {
            logger.error("PSMLUpdateAction: Error while loading  " + f.getAbsolutePath(), e);
        } finally {
            try {
                reader.close();
            } catch (IOException e) {
            }
        }
    }

    return doc;
}

From source file:eu.stratosphere.pact.runtime.task.DataSinkTaskTest.java

@Test
public void testUnionDataSinkTask() {

    int keyCnt = 100;
    int valCnt = 20;

    super.initEnvironment(MEMORY_MANAGER_SIZE, NETWORK_BUFFER_SIZE);
    super.addInput(new UniformRecordGenerator(keyCnt, valCnt, 0, 0, false), 0);
    super.addInput(new UniformRecordGenerator(keyCnt, valCnt, keyCnt, 0, false), 0);
    super.addInput(new UniformRecordGenerator(keyCnt, valCnt, keyCnt * 2, 0, false), 0);
    super.addInput(new UniformRecordGenerator(keyCnt, valCnt, keyCnt * 3, 0, false), 0);

    DataSinkTask<Record> testTask = new DataSinkTask<Record>();

    super.registerFileOutputTask(testTask, MockOutputFormat.class, new File(tempTestPath).toURI().toString());

    try {/*from   ww  w.  j  a  v  a2 s.c o m*/
        testTask.invoke();
    } catch (Exception e) {
        LOG.debug(e);
        Assert.fail("Invoke method caused exception.");
    }

    File tempTestFile = new File(this.tempTestPath);

    Assert.assertTrue("Temp output file does not exist", tempTestFile.exists());

    FileReader fr = null;
    BufferedReader br = null;
    try {
        fr = new FileReader(tempTestFile);
        br = new BufferedReader(fr);

        HashMap<Integer, HashSet<Integer>> keyValueCountMap = new HashMap<Integer, HashSet<Integer>>(keyCnt);

        while (br.ready()) {
            String line = br.readLine();

            Integer key = Integer.parseInt(line.substring(0, line.indexOf("_")));
            Integer val = Integer.parseInt(line.substring(line.indexOf("_") + 1, line.length()));

            if (!keyValueCountMap.containsKey(key)) {
                keyValueCountMap.put(key, new HashSet<Integer>());
            }
            keyValueCountMap.get(key).add(val);
        }

        Assert.assertTrue("Invalid key count in out file. Expected: " + keyCnt + " Actual: "
                + keyValueCountMap.keySet().size(), keyValueCountMap.keySet().size() == keyCnt * 4);

        for (Integer key : keyValueCountMap.keySet()) {
            Assert.assertTrue("Invalid value count for key: " + key + ". Expected: " + valCnt + " Actual: "
                    + keyValueCountMap.get(key).size(), keyValueCountMap.get(key).size() == valCnt);
        }

    } catch (FileNotFoundException e) {
        Assert.fail("Out file got lost...");
    } catch (IOException ioe) {
        Assert.fail("Caught IOE while reading out file");
    } finally {
        if (br != null) {
            try {
                br.close();
            } catch (Throwable t) {
            }
        }
        if (fr != null) {
            try {
                fr.close();
            } catch (Throwable t) {
            }
        }
    }
}

From source file:org.jlinda.core.coregistration.estimation.utils.JamaUtils.java

public static Matrix loadSparseMatrix(File file) {
    FileReader fileReader = null;
    try {/*from   w w  w.  ja v  a 2 s. c  o m*/

        fileReader = new FileReader(file);
        BufferedReader reader = new BufferedReader(fileReader);
        int lineNumber = 0;
        String line = null;
        String[] split = null;
        int rows = -1, cols = -1;

        // read the matrix size
        while ((line = reader.readLine()) != null) {
            lineNumber++;

            // skip lines that don't start with a number
            if (!line.matches("^\\d+?.*"))
                continue;

            split = line.split("[\\s,;]");

            if (split.length != 2) {
                throw new IllegalArgumentException(
                        "Invalid matrix file format:  file must start with the size of the matrix.  Error on line number "
                                + lineNumber + ".");
            }

            rows = Integer.parseInt(split[0]);
            cols = Integer.parseInt(split[1]);
            break;
        }

        Matrix matrix = new Matrix(rows, cols);
        int row = 0;

        // read each line of the matrix, skipping non-matrix rows
        while ((line = reader.readLine()) != null) {
            lineNumber++;

            // skip lines that don't start with a number
            if (!line.matches("^\\d+?.*"))
                continue;

            split = line.split("[\\s,;]");
            // detect a full matrix specification
            if (split.length == cols) {
                for (int col = 0; col < cols; col++) {
                    matrix.set(row, col, Double.parseDouble(split[col]));
                }
            } else if (split.length == 3) {
                matrix.set(Integer.parseInt(split[0]), Integer.parseInt(split[1]),
                        Double.parseDouble(split[2]));
            } else {
                throw new IllegalArgumentException(
                        "Invalid matrix file format:  must be either a full or sparse specification.  Error on line number "
                                + lineNumber + ".");
            }
            row++;
        }

        return matrix;

    } catch (IOException e) {
        System.err.println("Invalid file:  " + file.getAbsolutePath());
    } finally {
        try {
            fileReader.close();
        } catch (Exception e) {
        }
    }

    return null;
}

From source file:eus.ixa.ixa.pipe.convert.AbsaSemEval.java

public static String absa2015Toabsa2015AnotatedWithMultipleDocClasModelsX(String fileName, String modelsList) {
    //reading the ABSA xml file
    SAXBuilder sax = new SAXBuilder();
    XPathFactory xFactory = XPathFactory.instance();
    Document doc = null;//ww w. j a va  2  s  . c  o  m
    try {
        doc = sax.build(fileName);
        XPathExpression<Element> expr = xFactory.compile("//sentence", Filters.element());
        List<Element> sentences = expr.evaluate(doc);

        //int cantSent = 0;

        for (Element sent : sentences) {

            Element opinionsElement = sent.getChild("Opinions");
            if (opinionsElement != null) {
                //iterating over every opinion in the opinions element
                List<Element> opinionList = opinionsElement.getChildren();
                for (int i = opinionList.size() - 1; i >= 0; i--) {
                    Element opinion = opinionList.get(i);
                    opinionsElement.removeContent(opinion);
                }
            }

            Path pathx = FileSystems.getDefault().getPath("./", "TEXT.txt");
            Files.deleteIfExists(pathx);

            File f = new File("TEXT.txt");
            FileUtils.writeStringToFile(f, sent.getChildText("text"), "UTF-8");

            /*Path path1 = FileSystems.getDefault().getPath("./", "NAF1.txt");
            Files.deleteIfExists(path1);
            String[] cmd1 = { "/bin/sh", "-c", "cat TEXT.txt | java -jar /home/vector/Documents/Ixa-git/ixa-pipe-tok/target/ixa-pipe-tok-1.8.5-exec.jar tok -l en > NAF1.txt" };
            Process proc1 = Runtime.getRuntime().exec(cmd1);
                    
            try {
             if(!proc1.waitFor(30, TimeUnit.MINUTES)) {
                 //timeout - kill the process. 
                 proc1.destroy(); // consider using destroyForcibly instead
                 throw new Exception("TimeOut Expired in IXA-PIPE-TOK");
             }
            }catch (Exception e) {
             System.out.println("   ERROR: ");
            }*/

            //System.err.println(kaf.toString());

            File file = new File(modelsList);
            FileReader fileReader = new FileReader(file);
            BufferedReader bufferedReader = new BufferedReader(fileReader);
            String line;
            String nextCommand = "";

            //int port = 2000;
            while ((line = bufferedReader.readLine()) != null) {
                //System.err.println("-" + line + "-" + kaf.getLang());
                System.err.println("   Model: " + line);

                //nextCommand +=" | java -jar /home/vector/Documents/Ixa-git/ixa-pipe-doc/target/ixa-pipe-doc-0.0.2-exec.jar client -p " + port;

                nextCommand += " | java -jar /home/vector/Documents/Ixa-git/ixa-pipe-doc/target/ixa-pipe-doc-0.0.2-exec.jar tag -m "
                        + line;

                //File fileTmp = new File("NAF.txt");
                //File fileTmp2 = new File("NAF1.txt");
                //Files.copy(fileTmp.toPath(), fileTmp2.toPath(), StandardCopyOption.REPLACE_EXISTING);
                //Files.delete(fileTmp.toPath());

                //port ++;
            }
            fileReader.close();

            String[] cmd = { "/bin/sh", "-c",
                    "cat TEXT.txt | java -jar /home/vector/Documents/Ixa-git/ixa-pipe-tok/target/ixa-pipe-tok-1.8.5-exec.jar tok -l en"
                            + nextCommand + " > NAF.txt" };

            //System.err.println("cat TEXT.txt | java -jar /home/vector/Documents/Ixa-git/ixa-pipe-tok/target/ixa-pipe-tok-1.8.5-exec.jar tok -l en" + nextCommand + " > NAF.txt");

            Process proc = Runtime.getRuntime().exec(cmd);

            try {
                if (!proc.waitFor(30, TimeUnit.MINUTES)) {
                    //timeout - kill the process. 
                    proc.destroy(); // consider using destroyForcibly instead
                    throw new Exception("TimeOut Expired in IXA");
                }
            } catch (Exception e) {
                System.out.println("   ERROR: ");
            }

            //System.err.println(kaf.toString());
            //cantSent++;

            /*try {
                  Thread.sleep(1000);
              } catch (InterruptedException e) {
                  e.printStackTrace();
              }*/

            File fileDir = new File("NAF.txt");

            System.err.println("Terminado: " + sent.getChildText("text"));

            BufferedReader breader1 = new BufferedReader(
                    new InputStreamReader(new FileInputStream(fileDir), "UTF-8"));

            KAFDocument kaf = null;

            try {
                kaf = KAFDocument.createFromStream(breader1);
            } catch (Exception e) {
                System.err.println("ENTRA A ERROR");
                e.printStackTrace();
                continue;
            }

            List<Topic> topicList = kaf.getTopics();
            for (Topic topic : topicList) {
                //System.err.println(topic.getTopicValue());
                if (!topic.getTopicValue().equals("NO")) {
                    Element opinionElem = new Element("Opinion");
                    opinionElem.setAttribute("target", "na");
                    opinionElem.setAttribute("category", topic.getTopicValue());
                    //TODO we still do not have polarity here
                    opinionElem.setAttribute("polarity", "na");
                    opinionElem.setAttribute("from", "0");
                    opinionElem.setAttribute("to", "0");
                    opinionsElement.addContent(opinionElem);
                }
            }

        } //end of sentence
    } catch (JDOMException | IOException e) {
        e.printStackTrace();
    }

    XMLOutputter xmlOutput = new XMLOutputter();
    Format format = Format.getPrettyFormat();
    xmlOutput.setFormat(format);
    return xmlOutput.outputString(doc);
}

From source file:com.ah.be.common.NmsUtil.java

/**
 * read File by line// w  ww.  ja va 2  s . c om
 * if File is not exist,return null
 *
 * @param filePath -
 * @return List<String>
 * @throws IOException
 */
public static List<String> readFileByLines(String filePath) throws IOException {
    List<String> result = null;
    File file = new File(filePath);
    if (!file.exists()) {
        return result;
    }
    FileReader fr = null;
    BufferedReader reader = null;
    try {
        fr = new FileReader(file);
        reader = new BufferedReader(fr);
        String tempString;
        result = new ArrayList<String>();
        while ((tempString = reader.readLine()) != null) {
            result.add(tempString);
        }
    } finally {
        if (reader != null) {
            try {
                reader.close();
            } catch (IOException e) {
                log.error("readFileByLines", "IO Close Error.", e);
            }
        }

        if (fr != null) {
            try {
                fr.close();
            } catch (IOException e) {
                log.error("readFileByLines", "IO Close Error.", e);
            }
        }
    }
    return result;
}

From source file:skoa.helpers.Graficos.java

private void unificarDatosFicheros() {
    Vector<String> nombresFicheros2 = new Vector<String>(nombresFicheros); //Copiamos los nombres
    String nombreFicheroEscogido;
    String nombreFicheroReferencia = nombresFicheros2.get(0); //Se coge el 1 fichero de referencia, al que se le irn aadiendo los datos.
    nombresFicheros2.remove(0);/*from   ww w .  j  av  a 2s.  co  m*/
    crearFicheroTemporal(nombreFicheroReferencia);
    for (int i = 0; i < nombresFicheros2.size(); i++) {
        nombreFicheroEscogido = nombresFicheros2.elementAt(i);
        File archivo = new File(ruta + nombreFicheroEscogido);
        FileReader fr = null;
        BufferedReader linea = null;
        String line;
        try {
            fr = new FileReader(archivo);
            linea = new BufferedReader(fr);
            while ((line = linea.readLine()) != null) { //Lectura del fichero
                incluirDatos(line);
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            try {
                if (null != fr)
                    fr.close(); //Se cierra si todo va bien.
            } catch (Exception e2) { //Sino salta una excepcion.
                e2.printStackTrace();
            }
        }
    } //fin for
}

From source file:SWTAddressBook.java

private void openAddressBook() {
    FileDialog fileDialog = new FileDialog(shell, SWT.OPEN);

    fileDialog.setFilterExtensions(new String[] { "*.adr;", "*.*" });
    fileDialog.setFilterNames(new String[] { "Book_filter_name" + " (*.adr)", "All_filter_name" + " (*.*)" });
    String name = fileDialog.open();

    if (name == null)
        return;/*www .j  a  va 2s.  co m*/
    File file = new File(name);
    if (!file.exists()) {
        displayError("File" + file.getName() + " " + "Does_not_exist");
        return;
    }

    Cursor waitCursor = new Cursor(shell.getDisplay(), SWT.CURSOR_WAIT);
    shell.setCursor(waitCursor);

    FileReader fileReader = null;
    BufferedReader bufferedReader = null;
    String[] data = new String[0];
    try {
        fileReader = new FileReader(file.getAbsolutePath());
        bufferedReader = new BufferedReader(fileReader);
        String nextLine = bufferedReader.readLine();
        while (nextLine != null) {
            String[] newData = new String[data.length + 1];
            System.arraycopy(data, 0, newData, 0, data.length);
            newData[data.length] = nextLine;
            data = newData;
            nextLine = bufferedReader.readLine();
        }
    } catch (FileNotFoundException e) {
        displayError("File_not_found" + "\n" + file.getName());
        return;
    } catch (IOException e) {
        displayError("IO_error_read" + "\n" + file.getName());
        return;
    } finally {

        shell.setCursor(null);
        waitCursor.dispose();

        if (fileReader != null) {
            try {
                fileReader.close();
            } catch (IOException e) {
                displayError("IO_error_close" + "\n" + file.getName());
                return;
            }
        }
    }

    String[][] tableInfo = new String[data.length][table.getColumnCount()];
    int writeIndex = 0;
    for (int i = 0; i < data.length; i++) {
        String[] line = decodeLine(data[i]);
        if (line != null)
            tableInfo[writeIndex++] = line;
    }
    if (writeIndex != data.length) {
        String[][] result = new String[writeIndex][table.getColumnCount()];
        System.arraycopy(tableInfo, 0, result, 0, writeIndex);
        tableInfo = result;
    }
    Arrays.sort(tableInfo, new RowComparator(0));

    for (int i = 0; i < tableInfo.length; i++) {
        TableItem item = new TableItem(table, SWT.NONE);
        item.setText(tableInfo[i]);
    }
    shell.setText("Title_bar" + fileDialog.getFileName());
    isModified = false;
    this.file = file;
}

From source file:fsi_admin.admon.JAyudaPaginaDlg.java

public void GenerarAyuda(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    short idmensaje = -1;
    String mensaje = "";

    idmensaje = 0;//from w  ww .  j a va 2s. c o  m
    mensaje = "Las pginas de ayuda y la configuracion de inicios de ayuda se generaron con xito";

    JAdmVariablesSet var = new JAdmVariablesSet(null);
    var.ConCat(true);
    var.m_Where = "ID_Variable = 'TOMCAT'";
    var.Open();

    if (var.getAbsRow(0).getVAlfanumerico().equals("NC")) {
        idmensaje = 1;
        mensaje = "PRECAUCION: La variable TOMCAT (ruta de instalacion de tomcat) no est definida... No se puede generar la ayuda";
        getSesion(request).setID_Mensaje(idmensaje, mensaje);
        irApag("/forsetiadmin/caja_mensajes.jsp", request, response);
        return;
    }

    //carga los archivos de ayuda que contienen la plantilla completa y sencilla html
    String p = "", ps = "";
    FileReader file = new FileReader("/usr/local/forseti/bin/forseti_doc/forseti_doc.html");
    BufferedReader buff = new BufferedReader(file);
    boolean eof = false;
    while (!eof) {
        String line = buff.readLine();
        if (line == null)
            eof = true;
        else
            p += line + "\n";
    }
    buff.close();
    file.close();
    buff = null;
    file = null;

    file = new FileReader("/usr/local/forseti/bin/forseti_doc/forseti_doc_simple.html");
    buff = new BufferedReader(file);
    eof = false;
    while (!eof) {
        String line = buff.readLine();
        if (line == null)
            eof = true;
        else
            ps += line + "\n";
    }
    buff.close();
    file.close();
    buff = null;
    file = null;

    // genera las paginas html con el contenido de la ayuda
    int ini_index = p.indexOf("<!--_menu_ini-->");
    String fin_plant = p.substring(0, ini_index);
    // genera los menus
    int fin_index = p.indexOf("<!--_menu_fin-->");
    String t_menus = "", f_menus = "";
    String p_menus = p.substring(ini_index + 16, fin_index);
    // p_menu:  <td height="30" align="center" valign="middle" bgcolor="fsi-bgcolor-menu"><a class="txtMenu" href="fsi-href-menu" target="_self">fsi-descripcion-menu</a></td>
    JAyudaTipoSet menu = new JAyudaTipoSet(null);
    menu.m_OrderBy = "ID_Tipo ASC";
    menu.ConCat(true);
    menu.Open();
    for (int i = 0; i < menu.getNumRows(); i++) {
        int mod = i % 2;

        t_menus = p_menus;
        String bgcolor;
        if (menu.getAbsRow(i).getDescripcion().equals("CEF"))
            bgcolor = "#0099FF"; // Azul Cef
        else if (menu.getAbsRow(i).getDescripcion().equals("SAF"))
            bgcolor = "#FF6600"; // Naranja Saf ( Color principal forseti )
        else if (menu.getAbsRow(i).getDescripcion().equals("REF"))
            bgcolor = "#FFCC00";
        else if (menu.getAbsRow(i).getDescripcion().equals("SOF"))
            bgcolor = "#339933"; // Verde CEF ( Da concordancia con openSUSE )
        else
            bgcolor = mod == 0 ? "#999999" : "#888888";
        //CC0099 Morado para DIF Desarrollo Integral Forseti V5
        t_menus = JUtil.replace(t_menus, "fsi-bgcolor-menu", bgcolor);

        JAyudaPaginasSubTiposTiposSet st = new JAyudaPaginasSubTiposTiposSet(null);
        st.m_OrderBy = "ID_SubTipo DESC, ID_Pagina ASC";
        st.m_Where = "ID_Tipo = '" + p(menu.getAbsRow(i).getID_Tipo()) + "' and Status = '2'";
        st.ConCat(true);
        st.Open();
        if (st.getNumRows() > 0) {
            JAyudaPaginaSet pagset = new JAyudaPaginaSet(null);
            pagset.ConCat(true);
            pagset.m_Where = "ID_Pagina = '" + p(st.getAbsRow(0).getID_Pagina()) + "'";
            pagset.Open();
            t_menus = JUtil.replace(t_menus, "fsi-href-menu", pagset.getAbsRow(0).getID_Pagina() + ".html");
        } else
            t_menus = JUtil.replace(t_menus, "fsi-href-menu", "#");

        t_menus = JUtil.replace(t_menus, "fsi-descripcion-menu", menu.getAbsRow(i).getDescripcion());

        f_menus += t_menus + "\n";
    }

    ini_index = p.indexOf("<!--_cuerpo_completo_ini-->");
    fin_plant += f_menus + p.substring(fin_index + 16, ini_index);
    fin_plant += "_cuerpo_completo";
    fin_index = p.indexOf("<!--_cuerpo_completo_fin-->");
    fin_plant += p.substring(fin_index + 27);
    //ahora genera la plantilla de cuerpo
    ini_index = p.indexOf("<!--_cuerpo_completo_ini-->") + 27;
    fin_index = p.indexOf("<!--_cuerpo_completo_fin-->");

    String cuerpo_plant = p.substring(ini_index, fin_index);
    p = null; //libera memoria de p que ya no se utilizar

    //Empieza con el archivo index
    String pag = fin_plant;

    JAyudaSubTipoSet submenu = new JAyudaSubTipoSet(null);
    submenu.ConCat(true);
    submenu.m_Where = "ID_Tipo = '01'"; // Menus de generalidades
    submenu.m_OrderBy = "ID_SubTipo ASC";
    submenu.Open();

    JAyudaPaginaModuloSet pags = new JAyudaPaginaModuloSet(request, "");
    pags.m_Where = "Status = '3'";
    pags.ConCat(true);
    pags.Open();
    //System.out.println("Pags Status: 3 = " + pags.getNumRows());
    if (pags.getNumRows() > 0) {
        JAyudaPaginaSet pagset = new JAyudaPaginaSet(null);
        pagset.ConCat(true);
        pagset.m_Where = "ID_Pagina = '" + p(pags.getAbsRow(0).getID_Pagina()) + "'";
        pagset.Open();

        String menu01 = "<table width=\"100%\" border=\"0\" cellpadding=\"5\" cellspacing=\"0\">\n";

        //System.out.println("SetSubTipo: 01 = " + setsub.getNumRows());
        if (submenu.getNumRows() > 0 && submenu.getNumRows() < 4) {
            menu01 += "<tr>\n";
            for (int i = 1; i < 3; i++) {
                menu01 += "<td valign=\"top\" width=\"30%\"><strong>" + submenu.getAbsRow(i).getDescripcion()
                        + "</strong><br>\n";
                JAyudaPaginaModuloSet pagsub = new JAyudaPaginaModuloSet(request, "");
                pagsub.ConCat(true);
                pagsub.m_Where = "ID_SubTipo = '" + p(submenu.getAbsRow(i).getID_SubTipo())
                        + "' and Status <> '3'";
                pagsub.m_OrderBy = "ID_Pagina ASC";

                pagsub.Open();
                for (int j = 0; j < pagsub.getNumRows(); j++) {
                    menu01 += "<br><a href=\"" + pagsub.getAbsRow(j).getID_Pagina()
                            + ".html\" class=\"txtPag\" target=\"_self\"><font color=\"#FF6600\">"
                            + pagsub.getAbsRow(j).getDescripcion() + "</font></a><br><font color=\"#999999\">"
                            + pagsub.getAbsRow(j).getBusqueda() + "</font>\n";
                }
                menu01 += "</td>\n";

            }
            menu01 += "</tr>\n";
            menu01 += "</table>\n";

        }

        String pagcon01 = JUtil.replace(pagset.getAbsRow(0).getCuerpo(), "_GENERALIDADES_TABLE", menu01);
        pag = JUtil.replace(fin_plant, "_cuerpo_completo", pagcon01);
        System.out.println("PAGINA:" + menu01);

    }
    //Ahora guarda index.html
    FileWriter fw = new FileWriter(var.getAbsRow(0).getVAlfanumerico() + "/webapps/ROOT/forsetidoc/index.html");
    PrintWriter pw = new PrintWriter(fw);
    pw.println(pag);
    fw.close();

    //Ahora trabaja con cada plantilla y sus paginas
    ini_index = cuerpo_plant.indexOf("<!--_submenu_ini-->");
    fin_index = cuerpo_plant.indexOf("<!--_submenu_fin-->");
    String fin_cuerpo_plant = cuerpo_plant.substring(0, ini_index);
    String p_submenu = cuerpo_plant.substring(ini_index + 19, fin_index);
    ini_index = cuerpo_plant.indexOf("<!--_cuerpo_ini-->");
    fin_cuerpo_plant += "_submenu" + cuerpo_plant.substring(fin_index + 19, ini_index);
    fin_index = cuerpo_plant.indexOf("<!--_cuerpo_fin-->");
    String p_cuerpo = cuerpo_plant.substring(ini_index + 18, fin_index);
    ini_index = cuerpo_plant.indexOf("<!--_enlaces_ini-->");
    String p_enlacestit = cuerpo_plant.substring(fin_index + 18, ini_index);
    fin_index = cuerpo_plant.indexOf("<!--_enlaces_fin-->");
    String p_enlaces = cuerpo_plant.substring(ini_index + 19, fin_index);
    ini_index = cuerpo_plant.indexOf("<!--_paginas_ini-->");
    fin_cuerpo_plant += "_cuerpo_enlacestit_enlaces" + cuerpo_plant.substring(fin_index + 19, ini_index);
    fin_index = cuerpo_plant.indexOf("<!--_paginas_fin-->");
    String p_paginas = cuerpo_plant.substring(ini_index + 19, fin_index);
    fin_cuerpo_plant += "_paginas" + cuerpo_plant.substring(fin_index + 19);
    /*System.out.println(fin_cuerpo_plant);
    System.out.println(p_submenu);
    System.out.println(p_cuerpo);
    System.out.println(p_enlacestit);
    System.out.println(p_enlaces);
    System.out.println(p_paginas);*/

    //Ahora genera las pginas completas
    String cefrep_cuerpo_final = "";
    String safrep_cuerpo_final = "";
    String cefrep_pagina_final = "";
    String safrep_pagina_final = "";

    cuerpo_plant = null; //libera memoria del cuerpo          
    for (int i = 0; i < menu.getNumRows(); i++) {
        String mid = menu.getAbsRow(i).getID_Tipo();
        String color;
        if (menu.getAbsRow(i).getDescripcion().equals("CEF"))
            color = "#0099FF"; // Azul Cef
        else if (menu.getAbsRow(i).getDescripcion().equals("SAF"))
            color = "#FF6600"; // Naranja Saf ( Color principal forseti )
        else if (menu.getAbsRow(i).getDescripcion().equals("REF"))
            color = "#FFCC00"; //  FF0000 que es amarillo
        else if (menu.getAbsRow(i).getDescripcion().equals("SOF"))
            color = "#339933"; // Verde CEF ( Da concordancia con openSUSE )
        else
            color = "#444444";

        submenu.m_Where = "ID_Tipo = '" + p(mid) + "'";
        submenu.m_OrderBy = "ID_SubTipo ASC";
        submenu.ConCat(true);
        submenu.Open();

        //Construye este submenu
        String f_submenu = "", t_submenu = "";
        for (int ism = 0; ism < submenu.getNumRows(); ism++) {
            t_submenu = p_submenu;

            t_submenu = JUtil.replace(t_submenu, "fsi-color-submenu", color);

            JAyudaPaginasSubTiposTiposSet st = new JAyudaPaginasSubTiposTiposSet(null);
            st.m_OrderBy = "Status DESC, ID_Pagina ASC";
            st.m_Where = "ID_SubTipo = '" + p(submenu.getAbsRow(ism).getID_SubTipo())
                    + "' and (Status = '1' or Status = '2')";
            st.ConCat(true);
            st.Open();
            if (st.getNumRows() > 0)
                t_submenu = JUtil.replace(t_submenu, "fsi-href-submenu",
                        st.getAbsRow(0).getID_Pagina() + ".html");
            else
                t_submenu = JUtil.replace(t_submenu, "fsi-href-submenu", "#");

            t_submenu = JUtil.replace(t_submenu, "fsi-descripcion-submenu",
                    submenu.getAbsRow(ism).getDescripcion());

            f_submenu += t_submenu + "\n";
        }
        //Fin construccion submenu
        //System.out.println(f_submenu);

        for (int ism = 0; ism < submenu.getNumRows(); ism++) {
            pags.m_Where = "ID_SubTipo = '" + p(submenu.getAbsRow(ism).getID_SubTipo())
                    + "' and Status <> '3' and Tipo = 'COMPLETA'";
            pags.m_OrderBy = "ID_Pagina ASC";
            pags.ConCat(true);
            pags.Open();

            //construye paginas del submenu
            String f_paginas = "", t_paginas = "";
            for (int ip = 0; ip < pags.getNumRows(); ip++) {
                t_paginas = p_paginas;
                t_paginas = JUtil.replace(t_paginas, "fsi-color-paginas", color);
                t_paginas = JUtil.replace(t_paginas, "fsi-href-paginas",
                        pags.getAbsRow(ip).getID_Pagina() + ".html");
                t_paginas = JUtil.replace(t_paginas, "fsi-descripcion-paginas",
                        pags.getAbsRow(ip).getDescripcion());
                t_paginas = JUtil.replace(t_paginas, "fsi-busqueda-paginas", pags.getAbsRow(ip).getBusqueda());

                f_paginas += t_paginas + "\n";
            }
            //System.out.println(f_paginas);
            //fin construccion de paginas del submenu

            //Ahora si construye cada pgina del sitio
            String f_cuerpo = "", t_cuerpo = "", f_enlacestit = "", t_enlacestit = "", f_enlaces = "",
                    t_enlaces = "";
            for (int ip = 0; ip < pags.getNumRows(); ip++) {
                JAyudaPaginaSet pagset = new JAyudaPaginaSet(null);
                pagset.ConCat(true);
                pagset.m_Where = "ID_Pagina = '" + p(pags.getAbsRow(ip).getID_Pagina()) + "'";
                pagset.Open();

                f_cuerpo = "";
                t_cuerpo = p_cuerpo;
                t_cuerpo = JUtil.replace(t_cuerpo, "fsi-color-titulo", color);
                t_cuerpo = JUtil.replace(t_cuerpo, "fsi-cuerpo-titulo", pags.getAbsRow(ip).getDescripcion());
                //Si es la pgina de reportes del Saf o Cef manda a crearla
                if (pags.getAbsRow(ip).getID_Alternativo().equals("FSI-SAFREP"))
                    t_cuerpo = generarIndiceReportes(t_cuerpo, "fsi-cuerpo-todo", "SAF", color,
                            pags.getAbsRow(ip).getID_Alternativo());
                else if (pags.getAbsRow(ip).getID_Alternativo().equals("FSI-CEFREP"))
                    t_cuerpo = generarIndiceReportes(t_cuerpo, "fsi-cuerpo-todo", "CEF", color,
                            pags.getAbsRow(ip).getID_Alternativo());
                else
                    t_cuerpo = JUtil.replace(t_cuerpo, "fsi-cuerpo-todo", pagset.getAbsRow(0).getCuerpo());

                f_cuerpo = t_cuerpo + "\n";

                JAyudaPaginasEnlacesSet pvp = new JAyudaPaginasEnlacesSet(null);
                pvp.m_OrderBy = "ID_Pagina ASC";
                pvp.m_Where = "ID_Enlace = '" + p(pags.getAbsRow(ip).getID_Pagina()) + "'";
                pvp.ConCat(true);
                pvp.Open();

                f_enlacestit = "";
                f_enlaces = "";
                t_enlacestit = "";
                t_enlaces = "";

                if (pvp.getNumRows() > 0) {
                    t_enlacestit = p_enlacestit;
                    t_enlacestit = JUtil.replace(t_enlacestit, "fsi-color-enlacestit", color);
                    f_enlacestit += t_enlacestit + "\n";

                    for (int ie = 0; ie < pvp.getNumRows(); ie++) {
                        t_enlaces = p_enlaces;
                        t_enlaces = JUtil.replace(t_enlaces, "fsi-color-enlaces", color);
                        t_enlaces = JUtil.replace(t_enlaces, "fsi-href-enlaces",
                                pvp.getAbsRow(ie).getID_Pagina() + ".html");
                        t_enlaces = JUtil.replace(t_enlaces, "fsi-descripcion-enlaces",
                                pvp.getAbsRow(ie).getDescripcion());
                        t_enlaces = JUtil.replace(t_enlaces, "fsi-busqueda-enlaces",
                                pvp.getAbsRow(ie).getBusqueda());
                        f_enlaces += t_enlaces + "\n";
                    }
                    //System.out.println(f_enlacestit + f_enlaces);
                }

                //Guarda la pagina en forsetidoc
                String cuerpo_final = fin_cuerpo_plant;
                cuerpo_final = JUtil.replace(cuerpo_final, "_submenu", f_submenu);
                cuerpo_final = JUtil.replace(cuerpo_final, "_cuerpo", f_cuerpo);
                cuerpo_final = JUtil.replace(cuerpo_final, "_enlacestit", f_enlacestit);
                cuerpo_final = JUtil.replace(cuerpo_final, "_enlaces", f_enlaces);
                cuerpo_final = JUtil.replace(cuerpo_final, "_paginas", f_paginas);
                String pagina_final = fin_plant;
                pagina_final = JUtil.replace(pagina_final, "_cuerpo_completo", cuerpo_final);
                //Si es el de reportes del saf construye plantilla de pgina de reportes del SAF
                if (pags.getAbsRow(ip).getID_Alternativo().equals("FSI-SAFREP")) {
                    safrep_cuerpo_final = fin_cuerpo_plant;
                    safrep_cuerpo_final = JUtil.replace(safrep_cuerpo_final, "_submenu", f_submenu);
                    safrep_cuerpo_final = JUtil.replace(safrep_cuerpo_final, "_cuerpo", p_cuerpo);
                    safrep_cuerpo_final = JUtil.replace(safrep_cuerpo_final, "_enlacestit", f_enlacestit);
                    safrep_cuerpo_final = JUtil.replace(safrep_cuerpo_final, "_enlaces", f_enlaces);
                    safrep_cuerpo_final = JUtil.replace(safrep_cuerpo_final, "_paginas", f_paginas);
                    safrep_pagina_final = fin_plant;
                    safrep_pagina_final = JUtil.replace(safrep_pagina_final, "_cuerpo_completo",
                            safrep_cuerpo_final);
                }
                //Si es el de reportes del cef construye plantilla de pgina de reportes del CEF
                if (pags.getAbsRow(ip).getID_Alternativo().equals("FSI-CEFREP")) {
                    cefrep_cuerpo_final = fin_cuerpo_plant;
                    cefrep_cuerpo_final = JUtil.replace(cefrep_cuerpo_final, "_submenu", f_submenu);
                    cefrep_cuerpo_final = JUtil.replace(cefrep_cuerpo_final, "_cuerpo", p_cuerpo);
                    cefrep_cuerpo_final = JUtil.replace(cefrep_cuerpo_final, "_enlacestit", f_enlacestit);
                    cefrep_cuerpo_final = JUtil.replace(cefrep_cuerpo_final, "_enlaces", f_enlaces);
                    cefrep_cuerpo_final = JUtil.replace(cefrep_cuerpo_final, "_paginas", f_paginas);
                    cefrep_pagina_final = fin_plant;
                    cefrep_pagina_final = JUtil.replace(cefrep_pagina_final, "_cuerpo_completo",
                            cefrep_cuerpo_final);
                }
                //Ahora guarda el html
                //System.out.println(pags.getAbsRow(ip).getID_Pagina() + ".html");

                FileWriter fwp = new FileWriter(var.getAbsRow(0).getVAlfanumerico()
                        + "/webapps/ROOT/forsetidoc/" + pags.getAbsRow(ip).getID_Pagina() + ".html");
                PrintWriter pwp = new PrintWriter(fwp);
                pwp.println(pagina_final);
                fwp.close();
                // Fin de pagina guardada
                // Si contiene id_alterntivo, guarda una copia del id alternativo
                if (pags.getAbsRow(ip).getID_Alternativo() != null
                        && !pags.getAbsRow(ip).getID_Alternativo().equals("null")) {
                    fwp = new FileWriter(var.getAbsRow(0).getVAlfanumerico() + "/webapps/ROOT/forsetidoc/"
                            + pags.getAbsRow(ip).getID_Alternativo() + ".html");
                    pwp = new PrintWriter(fwp);
                    pwp.println(pagina_final);
                    fwp.close();
                }
                // Si esta pgina es la de reportes del SAF o CEF, genera las pginas de cada reporte sus estructuras
                if (pags.getAbsRow(ip).getID_Alternativo() != null
                        && (pags.getAbsRow(ip).getID_Alternativo().equals("FSI-SAFREP")
                                || pags.getAbsRow(ip).getID_Alternativo().equals("FSI-CEFREP"))) {
                    if (pags.getAbsRow(ip).getID_Alternativo().equals("FSI-SAFREP"))
                        GenerarAyudaReportes(var.getAbsRow(0).getVAlfanumerico() + "/webapps/ROOT/forsetidoc/",
                                safrep_pagina_final, "SAF", color);
                    else
                        GenerarAyudaReportes(var.getAbsRow(0).getVAlfanumerico() + "/webapps/ROOT/forsetidoc/",
                                cefrep_pagina_final, "CEF", color);
                }
            }
        }

    }

    //Ahora genera las paginas sencillas
    pags.m_Where = "Tipo = 'SENCILLA'";
    pags.m_OrderBy = "ID_Pagina ASC";
    pags.ConCat(true);
    pags.Open();
    for (int ip = 0; ip < pags.getNumRows(); ip++) {
        JAyudaPaginaSet pagset = new JAyudaPaginaSet(request);
        pagset.ConCat(true);
        pagset.m_Where = "ID_Pagina = '" + p(pags.getAbsRow(ip).getID_Pagina()) + "'";
        pagset.Open();

        //Guarda la pagina en forsetidoc
        String pagina_final = JUtil.replace(ps, "_cuerpo_completo", pagset.getAbsRow(0).getCuerpo());
        //Ahora guarda el html
        //System.out.println(pags.getAbsRow(ip).getID_Pagina() + ".html");

        FileWriter fwp = new FileWriter(var.getAbsRow(0).getVAlfanumerico() + "/webapps/ROOT/forsetidoc/"
                + pags.getAbsRow(ip).getID_Pagina() + ".html");
        PrintWriter pwp = new PrintWriter(fwp);
        pwp.println(pagina_final);
        fwp.close();

        // Fin de pagina guardada
    }
    ///////////////////////////////////////////////////////////////////////////
    //Ya gener el sitio web de ayuda, ahora genera la exportacion de ayuda.
    ///////////////////////////////////////////////////////////////////////////

    FileWriter fwp = new FileWriter("/usr/local/forseti/bin/.forseti_doc");
    PrintWriter pwp = new PrintWriter(fwp);

    String archivo = "_INI_TIPOS\n";
    JAyudaTipoSet ats = new JAyudaTipoSet(null);
    ats.m_OrderBy = "ID_Tipo ASC";
    ats.ConCat(true);
    ats.Open();
    for (int i = 0; i < ats.getNumRows(); i++) {
        archivo += ats.getAbsRow(i).getID_Tipo() + "|" + ats.getAbsRow(i).getDescripcion() + "\n";
        pwp.flush();
    }

    archivo += "_FIN_TIPOS\n\n_INI_SUBTIPOS\n";

    JAyudaSubTipoSet asts = new JAyudaSubTipoSet(null);
    asts.m_OrderBy = "ID_SubTipo ASC";
    asts.ConCat(true);
    asts.Open();
    for (int i = 0; i < asts.getNumRows(); i++) {
        archivo += asts.getAbsRow(i).getID_SubTipo() + "|" + asts.getAbsRow(i).getDescripcion() + "|"
                + asts.getAbsRow(i).getID_Tipo() + "\n";
        pwp.flush();
    }

    archivo += "_FIN_SUBTIPOS\n\n_INI_PAGINAS\n\n";

    JAyudaPaginaSet aps = new JAyudaPaginaSet(null);
    aps.m_OrderBy = "ID_Pagina ASC";
    aps.ConCat(true);
    aps.Open();
    for (int i = 0; i < aps.getNumRows(); i++) {
        archivo += "_INI_PAG\n" + aps.getAbsRow(i).getID_Pagina() + "|" + aps.getAbsRow(i).getDescripcion()
                + "|" + aps.getAbsRow(i).getBusqueda() + "|" + aps.getAbsRow(i).getStatus() + "|"
                + aps.getAbsRow(i).getTipo() + "|" + aps.getAbsRow(i).getID_Alternativo() + "\n_CUERPO_PAG\n";
        archivo += aps.getAbsRow(i).getCuerpo() + "\n_FIN_PAG\n\n";
        pwp.flush();
    }

    archivo += "_FIN_PAGINAS\n\n_INI_PAGINAS_ENLACES\n";

    JAyudaPaginasEnlacesSet ape = new JAyudaPaginasEnlacesSet(null);
    ape.ConCat(true);
    ape.Open();
    for (int i = 0; i < ape.getNumRows(); i++) {
        archivo += ape.getAbsRow(i).getID_Pagina() + "|" + ape.getAbsRow(i).getID_Enlace() + "\n";
        pwp.flush();
    }

    archivo += "_FIN_PAGINAS_ENLACES\n\n_INI_PAGINAS_SUBTIPOS\n\n";

    JAyudaPaginasSubTiposTiposSet apst = new JAyudaPaginasSubTiposTiposSet(null);
    apst.ConCat(true);
    apst.Open();
    for (int i = 0; i < apst.getNumRows(); i++) {
        archivo += apst.getAbsRow(i).getID_SubTipo() + "|" + apst.getAbsRow(i).getID_Pagina() + "\n";
        pwp.flush();
    }

    archivo += "\n_FIN_PAGINAS_SUBTIPOS\n\n";

    pwp.println(archivo);
    fwp.close();

    RDP("SAF", getSesion(request).getConBD(), (idmensaje == 0 ? "OK" : (idmensaje == 4 ? "AL" : "ER")),
            getSesion(request).getID_Usuario(), "ADMIN_AYUDA_GENERAR", "AYUP||||", mensaje);

    getSesion(request).setID_Mensaje(idmensaje, mensaje);
    irApag("/forsetiadmin/caja_mensajes.jsp", request, response);
    return;
}