CPD Results

The following document contains the results of PMD's CPD 4.3.

Duplications

FileLine
goldengate\common\database\model\DbModelMysql.java220
goldengate\common\database\model\DbModelPostgresql.java162
        String primaryKey = " PRIMARY KEY ";
        String notNull = " NOT NULL ";

        // Example
        String action = createTableH2 + DbDataModel.table + "(";
        DbDataModel.Columns[] ccolumns = DbDataModel.Columns
                .values();
        for (int i = 0; i < ccolumns.length - 1; i ++) {
            action += ccolumns[i].name() +
                    DBType.getType(DbDataModel.dbTypes[i]) + notNull +
                    ", ";
        }
        action += ccolumns[ccolumns.length - 1].name() +
                DBType.getType(DbDataModel.dbTypes[ccolumns.length - 1]) +
                primaryKey + ")";
        logger.warn(action);
        DbRequest request = new DbRequest(session);
        try {
            request.query(action);
        } catch (GoldenGateDatabaseNoConnectionException e) {
            logger.warn("CreateTables Error", e);
            return;
        } catch (GoldenGateDatabaseSqlException e) {
            logger.warn("CreateTables Error", e);
            return;
        } finally {
            request.close();
        }
        // Index Example
        action = "CREATE INDEX IDX_RUNNER ON "+ DbDataModel.table + "(";
        DbDataModel.Columns[] icolumns = DbDataModel.indexes;
        for (int i = 0; i < icolumns.length-1; i ++) {
            action += icolumns[i].name()+ ", ";
        }
        action += icolumns[icolumns.length-1].name()+ ")";
        logger.warn(action);
        try {
            request.query(action);
        } catch (GoldenGateDatabaseNoConnectionException e) {
            logger.warn("CreateTables Error", e);
            return;
        } catch (GoldenGateDatabaseSqlException e) {
            return;
        } finally {
            request.close();
        }

        // example sequence
        /*
         * # Table to handle any number of sequences:
            CREATE TABLE Sequences (
              name VARCHAR(22) NOT NULL,
              seq INT UNSIGNED NOT NULL,  # (or BIGINT)
              PRIMARY KEY name
            );

            # Create a Sequence:
            INSERT INTO Sequences (name, seq) VALUES (?, 0);
            # Drop a Sequence:
            DELETE FROM Sequences WHERE name = ?;

            # Get a sequence number:
            UPDATE Sequences
              SET seq = LAST_INSERT_ID(seq + 1)
              WHERE name = ?;
            $seq = $db->LastInsertId();
         */
        action = "CREATE TABLE Sequences (name VARCHAR(22) NOT NULL PRIMARY KEY,"+
FileLine
goldengate\common\file\filesystembased\FilesystemBasedFileImpl.java355
goldengate\common\file\passthrough\PassthroughBasedFileImpl.java306
            long newposition = ((FilesystemBasedRestartImpl) restart)
                    .getPosition();
            try {
                setPosition(newposition);
            } catch (IOException e) {
                throw new Reply502Exception("Cannot set the marker position");
            }
            return true;
        } catch (NoRestartException e) {
        }
        return false;
    }

    public boolean retrieve() throws CommandAbstractException {
        checkIdentify();
        if (isReady) {
            restartMarker(getSession().getRestart());
            return canRead();
        }
        return false;
    }

    public boolean store() throws CommandAbstractException {
        checkIdentify();
        if (isReady) {
            restartMarker(getSession().getRestart());
            return canWrite();
        }
        return false;
    }

    public DataBlock readDataBlock() throws FileTransferException,
            FileEndOfTransferException {
        if (isReady) {
            DataBlock dataBlock = new DataBlock();
            ChannelBuffer buffer = null;
            buffer = getBlock(getSession().getBlockSize());
            if (buffer != null) {
                dataBlock.setBlock(buffer);
                if (dataBlock.getByteCount() < getSession().getBlockSize()) {
                    dataBlock.setEOF(true);
                }
                return dataBlock;
            }
        }
        throw new FileTransferException("No file is ready");
    }

    public void writeDataBlock(DataBlock dataBlock)
            throws FileTransferException {
        if (isReady) {
            if (dataBlock.isEOF()) {
                writeBlockEnd(dataBlock.getBlock());
                return;
            }
            writeBlock(dataBlock.getBlock());
            return;
        }
        throw new FileTransferException("No file is ready");
    }

    /**
     * Valid Position of this file
     */
    private long position = 0;
FileLine
goldengate\common\crypto\DynamicKeyManager.java65
goldengate\common\crypto\KeyManager.java54
    public List<String> initFromList(List<String> keys, String extension) {
        LinkedList<String> wrong = new LinkedList<String>();
        for (String filename: keys) {
            File file = new File(filename);
            if (file.canRead()) {
                String basename = file.getName();
                int lastpos = basename.lastIndexOf(extension);
                if (lastpos <= 0) {
                    wrong.add(filename);
                    continue;
                }
                String firstname = basename.substring(0, lastpos - 1);
                int len = (int) file.length();
                byte[] key = new byte[len];
                FileInputStream inputStream = null;
                try {
                    inputStream = new FileInputStream(file);
                } catch (FileNotFoundException e) {
                    // should not be
                    wrong.add(filename);
                    continue;
                }
                int read = 0;
                int offset = 0;
                while (read > 0) {
                    try {
                        read = inputStream.read(key, offset, len);
                    } catch (IOException e) {
                        wrong.add(filename);
                        read = -2;
                        break;
                    }
                    offset += read;
                    if (offset < len) {
                        len -= read;
                    } else {
                        break;
                    }
                }
FileLine
goldengate\common\database\model\DbModelOracle.java184
goldengate\common\database\model\DbModelPostgresql.java111
        VARBINARY(Types.VARBINARY, " BLOB "),
        DATE(Types.DATE, " DATE "),
        TIMESTAMP(Types.TIMESTAMP, " TIMESTAMP ");

        public int type;

        public String constructor;

        private DBType(int type, String constructor) {
            this.type = type;
            this.constructor = constructor;
        }

        public static String getType(int sqltype) {
            switch (sqltype) {
                case Types.CHAR:
                    return CHAR.constructor;
                case Types.VARCHAR:
                    return VARCHAR.constructor;
                case Types.LONGVARCHAR:
                    return LONGVARCHAR.constructor;
                case Types.BIT:
                    return BIT.constructor;
                case Types.TINYINT:
                    return TINYINT.constructor;
                case Types.SMALLINT:
                    return SMALLINT.constructor;
                case Types.INTEGER:
                    return INTEGER.constructor;
                case Types.BIGINT:
                    return BIGINT.constructor;
                case Types.REAL:
                    return REAL.constructor;
                case Types.DOUBLE:
                    return DOUBLE.constructor;
                case Types.VARBINARY:
                    return VARBINARY.constructor;
                case Types.DATE:
                    return DATE.constructor;
                case Types.TIMESTAMP:
                    return TIMESTAMP.constructor;
                default:
                    return null;
            }
        }
    }

    @Override
    public void createTables(DbSession session) throws GoldenGateDatabaseNoConnectionException {
        // Create tables: configuration, hosts, rules, runner, cptrunner
        String createTableH2 = "CREATE TABLE ";
        String constraint = " CONSTRAINT ";
FileLine
goldengate\common\database\model\DbModelMysql.java166
goldengate\common\database\model\DbModelOracle.java183
        DOUBLE(Types.DOUBLE, " DOUBLE "),
        VARBINARY(Types.VARBINARY, " BLOB "),
        DATE(Types.DATE, " DATE "),
        TIMESTAMP(Types.TIMESTAMP, " TIMESTAMP ");

        public int type;

        public String constructor;

        private DBType(int type, String constructor) {
            this.type = type;
            this.constructor = constructor;
        }

        public static String getType(int sqltype) {
            switch (sqltype) {
                case Types.CHAR:
                    return CHAR.constructor;
                case Types.VARCHAR:
                    return VARCHAR.constructor;
                case Types.LONGVARCHAR:
                    return LONGVARCHAR.constructor;
                case Types.BIT:
                    return BIT.constructor;
                case Types.TINYINT:
                    return TINYINT.constructor;
                case Types.SMALLINT:
                    return SMALLINT.constructor;
                case Types.INTEGER:
                    return INTEGER.constructor;
                case Types.BIGINT:
                    return BIGINT.constructor;
                case Types.REAL:
                    return REAL.constructor;
                case Types.DOUBLE:
                    return DOUBLE.constructor;
                case Types.VARBINARY:
                    return VARBINARY.constructor;
                case Types.DATE:
                    return DATE.constructor;
                case Types.TIMESTAMP:
                    return TIMESTAMP.constructor;
                default:
                    return null;
            }
        }
    }
FileLine
goldengate\common\database\model\DbModelH2.java189
goldengate\common\database\model\DbModelMysql.java216
    @Override
    public void createTables(DbSession session) throws GoldenGateDatabaseNoConnectionException {
        // Create tables: configuration, hosts, rules, runner, cptrunner
        String createTableH2 = "CREATE TABLE IF NOT EXISTS ";
        String primaryKey = " PRIMARY KEY ";
        String notNull = " NOT NULL ";

        // Example
        String action = createTableH2 + DbDataModel.table + "(";
        DbDataModel.Columns[] ccolumns = DbDataModel.Columns
                .values();
        for (int i = 0; i < ccolumns.length - 1; i ++) {
            action += ccolumns[i].name() +
                    DBType.getType(DbDataModel.dbTypes[i]) + notNull +
                    ", ";
        }
        action += ccolumns[ccolumns.length - 1].name() +
                DBType.getType(DbDataModel.dbTypes[ccolumns.length - 1]) +
                primaryKey + ")";
        logger.warn(action);
        DbRequest request = new DbRequest(session);
        try {
            request.query(action);
        } catch (GoldenGateDatabaseNoConnectionException e) {
            logger.warn("CreateTables Error", e);
            return;
        } catch (GoldenGateDatabaseSqlException e) {
            logger.warn("CreateTables Error", e);
            return;
        } finally {
            request.close();
        }

        // Index example
        action = "CREATE INDEX IF NOT EXISTS IDX_RUNNER ON "+ DbDataModel.table + "(";
FileLine
goldengate\common\database\model\DbModelMysql.java167
goldengate\common\database\model\DbModelPostgresql.java111
        VARBINARY(Types.VARBINARY, " BLOB "),
        DATE(Types.DATE, " DATE "),
        TIMESTAMP(Types.TIMESTAMP, " TIMESTAMP ");

        public int type;

        public String constructor;

        private DBType(int type, String constructor) {
            this.type = type;
            this.constructor = constructor;
        }

        public static String getType(int sqltype) {
            switch (sqltype) {
                case Types.CHAR:
                    return CHAR.constructor;
                case Types.VARCHAR:
                    return VARCHAR.constructor;
                case Types.LONGVARCHAR:
                    return LONGVARCHAR.constructor;
                case Types.BIT:
                    return BIT.constructor;
                case Types.TINYINT:
                    return TINYINT.constructor;
                case Types.SMALLINT:
                    return SMALLINT.constructor;
                case Types.INTEGER:
                    return INTEGER.constructor;
                case Types.BIGINT:
                    return BIGINT.constructor;
                case Types.REAL:
                    return REAL.constructor;
                case Types.DOUBLE:
                    return DOUBLE.constructor;
                case Types.VARBINARY:
                    return VARBINARY.constructor;
                case Types.DATE:
                    return DATE.constructor;
                case Types.TIMESTAMP:
                    return TIMESTAMP.constructor;
                default:
                    return null;
            }
        }
    }
FileLine
goldengate\common\database\model\DbModelH2.java193
goldengate\common\database\model\DbModelPostgresql.java162
        String primaryKey = " PRIMARY KEY ";
        String notNull = " NOT NULL ";

        // Example
        String action = createTableH2 + DbDataModel.table + "(";
        DbDataModel.Columns[] ccolumns = DbDataModel.Columns
                .values();
        for (int i = 0; i < ccolumns.length - 1; i ++) {
            action += ccolumns[i].name() +
                    DBType.getType(DbDataModel.dbTypes[i]) + notNull +
                    ", ";
        }
        action += ccolumns[ccolumns.length - 1].name() +
                DBType.getType(DbDataModel.dbTypes[ccolumns.length - 1]) +
                primaryKey + ")";
        logger.warn(action);
        DbRequest request = new DbRequest(session);
        try {
            request.query(action);
        } catch (GoldenGateDatabaseNoConnectionException e) {
            logger.warn("CreateTables Error", e);
            return;
        } catch (GoldenGateDatabaseSqlException e) {
            logger.warn("CreateTables Error", e);
            return;
        } finally {
            request.close();
        }

        // Index example
        action = "CREATE INDEX IF NOT EXISTS IDX_RUNNER ON "+ DbDataModel.table + "(";
FileLine
goldengate\common\cpu\CpuManagement.java57
goldengate\common\cpu\CpuManagementSysmon.java76
        CpuManagement cpuManagement = new CpuManagement();
        System.err.println("LA: " + cpuManagement.getLoadAverage());
        for (int i = 0; i < 1000 * 1000 * 1000; i ++) {
            // keep ourselves busy for a while ...
            // note: we had to add some "work" into the loop or Java 6
            // optimizes it away. Thanks to Daniel Einspanjer for
            // pointing that out.
            total += i;
            total *= 10;
        }
        System.err.println("LA: " + cpuManagement.getLoadAverage());

        total = 0;
        for (int i = 0; i < 1000 * 1000 * 1000; i ++) {
            // keep ourselves busy for a while ...
            // note: we had to add some "work" into the loop or Java 6
            // optimizes it away. Thanks to Daniel Einspanjer for
            // pointing that out.
            total += i;
            total *= 10;
        }
        System.err.println("LA: " + cpuManagement.getLoadAverage());
        try {
            Thread.sleep(10000);
        } catch (InterruptedException e) {
        }
        System.err.println("LA: " + cpuManagement.getLoadAverage());

        total = 0;
        for (int i = 0; i < 1000 * 1000 * 1000; i ++) {
            // keep ourselves busy for a while ...
            // note: we had to add some "work" into the loop or Java 6
            // optimizes it away. Thanks to Daniel Einspanjer for
            // pointing that out.
            total += i;
            total *= 10;
        }
        System.err.println("LA: " + cpuManagement.getLoadAverage());
    }
}
FileLine
goldengate\common\database\model\DbModelH2.java274
goldengate\common\database\model\DbModelPostgresql.java242
            logger.warn("ResetSequences Error", e);
            return;
        } finally {
            request.close();
        }
        logger.warn(action);
    }

    /*
     * (non-Javadoc)
     *
     * @see openr66.database.model.DbModel#nextSequence()
     */
    @Override
    public long nextSequence(DbSession dbSession)
        throws GoldenGateDatabaseNoConnectionException,
            GoldenGateDatabaseSqlException, GoldenGateDatabaseNoDataException {
        long result = DbConstant.ILLEGALVALUE;
        String action = "SELECT NEXTVAL('" + DbDataModel.fieldseq + "')";
        DbPreparedStatement preparedStatement = new DbPreparedStatement(
                dbSession);
        try {
            preparedStatement.createPrepareStatement(action);
            // Limit the search
            preparedStatement.executeQuery();
            if (preparedStatement.getNext()) {
                try {
                    result = preparedStatement.getResultSet().getLong(1);
                } catch (SQLException e) {
                    throw new GoldenGateDatabaseSqlException(e);
                }
                return result;
            } else {
                throw new GoldenGateDatabaseNoDataException(
                        "No sequence found. Must be initialized first");
            }
        } finally {
            preparedStatement.realClose();
        }
    }

    /* (non-Javadoc)
     * @see goldengate.common.database.model.DbModelAbstract#validConnectionString()
     */
    @Override
    protected String validConnectionString() {
        return "select 1";
    }

    @Override
    public String limitRequest(String allfields, String request, int nb) {
        return request+" LIMIT "+nb;
    }

}
FileLine
goldengate\common\database\model\DbModelH2.java140
goldengate\common\database\model\DbModelMysql.java169
goldengate\common\database\model\DbModelOracle.java186
goldengate\common\database\model\DbModelPostgresql.java113
        BLOB(Types.BLOB, " BLOB ");

        public int type;

        public String constructor;

        private DBType(int type, String constructor) {
            this.type = type;
            this.constructor = constructor;
        }

        public static String getType(int sqltype) {
            switch (sqltype) {
                case Types.CHAR:
                    return CHAR.constructor;
                case Types.VARCHAR:
                    return VARCHAR.constructor;
                case Types.LONGVARCHAR:
                    return LONGVARCHAR.constructor;
                case Types.BIT:
                    return BIT.constructor;
                case Types.TINYINT:
                    return TINYINT.constructor;
                case Types.SMALLINT:
                    return SMALLINT.constructor;
                case Types.INTEGER:
                    return INTEGER.constructor;
                case Types.BIGINT:
                    return BIGINT.constructor;
                case Types.REAL:
                    return REAL.constructor;
                case Types.DOUBLE:
                    return DOUBLE.constructor;
                case Types.VARBINARY:
                    return VARBINARY.constructor;
                case Types.DATE:
                    return DATE.constructor;
                case Types.TIMESTAMP:
                    return TIMESTAMP.constructor;
FileLine
goldengate\common\database\model\DbModelOracle.java260
goldengate\common\database\model\DbModelPostgresql.java186
            return;
        } finally {
            request.close();
        }
        // Index example
        action = "CREATE INDEX IDX_RUNNER ON "+ DbDataModel.table + "(";
        DbDataModel.Columns[] icolumns = DbDataModel.indexes;
        for (int i = 0; i < icolumns.length-1; i ++) {
            action += icolumns[i].name()+ ", ";
        }
        action += icolumns[icolumns.length-1].name()+ ")";
        logger.warn(action);
        try {
            request.query(action);
        } catch (GoldenGateDatabaseNoConnectionException e) {
            logger.warn("CreateTables Error", e);
            return;
        } catch (GoldenGateDatabaseSqlException e) {
            return;
        } finally {
            request.close();
        }

        // example sequence
        action = "CREATE SEQUENCE " + DbDataModel.fieldseq +
                " MINVALUE " + (DbConstant.ILLEGALVALUE + 1)+
FileLine
goldengate\common\tar\TarUtility.java125
goldengate\common\tar\TarUtility.java170
    public static boolean createTarFromFiles(List<File> files, String filename) {
        File saveFile = new File(filename);
        // recursive call
        TarArchiveOutputStream taos;
        try {
            taos = new TarArchiveOutputStream(new FileOutputStream(saveFile));
        } catch (FileNotFoundException e) {
            return false;
        }
        taos.setLongFileMode(TarArchiveOutputStream.LONGFILE_GNU);
        for (File file: files) {
            try {
                addFile(file, taos);
            } catch (IOException e) {
                try {
                    taos.close();
                } catch (IOException e1) {
                    // ignore
                }
                return false;
            }
        }
        try {
            taos.finish();
        } catch (IOException e1) {
            // ignore
        }
        try {
            taos.flush();
        } catch (IOException e) {
            // ignore
        }
        try {
            taos.close();
        } catch (IOException e) {
            // ignore
        }
        return true;
    }
FileLine
goldengate\common\tar\ZipUtility.java125
goldengate\common\tar\ZipUtility.java168
    public static boolean createZipFromFiles(List<File> files, String filename) {
        File saveFile = new File(filename);
        ZipArchiveOutputStream zaos;
        try {
            zaos = new ZipArchiveOutputStream(new FileOutputStream(saveFile));
        } catch (FileNotFoundException e) {
            return false;
        }
        for (File file: files) {
            try {
                addFile(file, zaos);
            } catch (IOException e) {
                try {
                    zaos.close();
                } catch (IOException e1) {
                    // ignore
                }
                return false;
            }
        }
        try {
            zaos.finish();
        } catch (IOException e1) {
            // ignore
        }
        try {
            zaos.flush();
        } catch (IOException e) {
            // ignore
        }
        try {
            zaos.close();
        } catch (IOException e) {
            // ignore
        }
        return true;
    }
FileLine
goldengate\common\database\model\DbModelMysql.java244
goldengate\common\database\model\DbModelOracle.java260
            return;
        } finally {
            request.close();
        }
        // Index Example
        action = "CREATE INDEX IDX_RUNNER ON "+ DbDataModel.table + "(";
        DbDataModel.Columns[] icolumns = DbDataModel.indexes;
        for (int i = 0; i < icolumns.length-1; i ++) {
            action += icolumns[i].name()+ ", ";
        }
        action += icolumns[icolumns.length-1].name()+ ")";
        logger.warn(action);
        try {
            request.query(action);
        } catch (GoldenGateDatabaseNoConnectionException e) {
            logger.warn("CreateTables Error", e);
            return;
        } catch (GoldenGateDatabaseSqlException e) {
            return;
        } finally {
            request.close();
        }

        // example sequence
        /*
         * # Table to handle any number of sequences:
            CREATE TABLE Sequences (
              name VARCHAR(22) NOT NULL,
              seq INT UNSIGNED NOT NULL,  # (or BIGINT)
              PRIMARY KEY name
            );

            # Create a Sequence:
            INSERT INTO Sequences (name, seq) VALUES (?, 0);
            # Drop a Sequence:
            DELETE FROM Sequences WHERE name = ?;

            # Get a sequence number:
            UPDATE Sequences
              SET seq = LAST_INSERT_ID(seq + 1)
              WHERE name = ?;
            $seq = $db->LastInsertId();
         */
        action = "CREATE TABLE Sequences (name VARCHAR(22) NOT NULL PRIMARY KEY,"+
FileLine
goldengate\common\file\filesystembased\FilesystemBasedFileImpl.java144
goldengate\common\file\passthrough\PassthroughBasedFileImpl.java138
    }

    public void clear() throws CommandAbstractException {
        closeFile();
        isReady = false;
        currentFile = null;
        isAppend = false;
    }

    public void checkIdentify() throws Reply530Exception {
        if (!getSession().getAuth().isIdentified()) {
            throw new Reply530Exception("User not authentified");
        }
    }

    public SessionInterface getSession() {
        return session;
    }

    public DirInterface getDir() {
        return dir;
    }

    /**
     * Get the File from this path, checking first its validity
     *
     * @param path
     * @return the FileInterface
     * @throws CommandAbstractException
     */
    protected File getFileFromPath(String path) throws CommandAbstractException {
        String newdir = getDir().validatePath(path);
        String truedir = auth.getAbsolutePath(newdir);
        return new File(truedir);
    }

    /**
     * Get the relative path (without mount point)
     *
     * @param file
     * @return the relative path
     */
    protected String getRelativePath(File file) {
        return auth.getRelativePath(FilesystemBasedDirImpl.normalizePath(file
FileLine
goldengate\common\database\model\DbModelH2.java243
goldengate\common\database\model\DbModelPostgresql.java211
                " START WITH " + (DbConstant.ILLEGALVALUE + 1);
        logger.warn(action);
        try {
            request.query(action);
        } catch (GoldenGateDatabaseNoConnectionException e) {
            logger.warn("CreateTables Error", e);
            return;
        } catch (GoldenGateDatabaseSqlException e) {
            logger.warn("CreateTables Error", e);
            return;
        } finally {
            request.close();
        }
    }

    /*
     * (non-Javadoc)
     *
     * @see openr66.database.model.DbModel#resetSequence()
     */
    @Override
    public void resetSequence(DbSession session, long newvalue) throws GoldenGateDatabaseNoConnectionException {
        String action = "ALTER SEQUENCE " + DbDataModel.fieldseq +
                " RESTART WITH " + newvalue;
        DbRequest request = new DbRequest(session);
        try {
            request.query(action);
        } catch (GoldenGateDatabaseNoConnectionException e) {
            logger.warn("ResetSequences Error", e);
FileLine
goldengate\common\database\model\DbModelH2.java223
goldengate\common\database\model\DbModelMysql.java249
goldengate\common\database\model\DbModelOracle.java265
goldengate\common\database\model\DbModelPostgresql.java191
        action = "CREATE INDEX IF NOT EXISTS IDX_RUNNER ON "+ DbDataModel.table + "(";
        DbDataModel.Columns[] icolumns = DbDataModel.indexes;
        for (int i = 0; i < icolumns.length-1; i ++) {
            action += icolumns[i].name()+ ", ";
        }
        action += icolumns[icolumns.length-1].name()+ ")";
        logger.warn(action);
        try {
            request.query(action);
        } catch (GoldenGateDatabaseNoConnectionException e) {
            logger.warn("CreateTables Error", e);
            return;
        } catch (GoldenGateDatabaseSqlException e) {
            return;
        } finally {
            request.close();
        }

        // example sequence
        action = "CREATE SEQUENCE IF NOT EXISTS " + DbDataModel.fieldseq +
FileLine
goldengate\common\file\filesystembased\FilesystemBasedDirImpl.java230
goldengate\common\file\passthrough\PassthroughBasedDirImpl.java168
        return ((FilesystemBasedAuthImpl) getSession().getAuth())
                .getRelativePath(normalizePath(file.getAbsolutePath()));
    }

    public boolean changeDirectory(String path) throws CommandAbstractException {
        checkIdentify();
        String newpath = consolidatePath(path);
        List<String> paths = wildcardFiles(newpath);
        if (paths.size() != 1) {
            logger.warn("CD error: {}", newpath);
            throw new Reply550Exception("Directory not found: " + paths.size() +
                    " founds");
        }
        String extDir = paths.get(0);
        extDir = this.validatePath(extDir);
        if (isDirectory(extDir)) {
FileLine
goldengate\common\database\model\DbModelH2.java193
goldengate\common\database\model\DbModelMysql.java220
goldengate\common\database\model\DbModelOracle.java236
goldengate\common\database\model\DbModelPostgresql.java162
        String primaryKey = " PRIMARY KEY ";
        String notNull = " NOT NULL ";

        // Example
        String action = createTableH2 + DbDataModel.table + "(";
        DbDataModel.Columns[] ccolumns = DbDataModel.Columns
                .values();
        for (int i = 0; i < ccolumns.length - 1; i ++) {
            action += ccolumns[i].name() +
                    DBType.getType(DbDataModel.dbTypes[i]) + notNull +
                    ", ";
        }
        action += ccolumns[ccolumns.length - 1].name() +
                DBType.getType(DbDataModel.dbTypes[ccolumns.length - 1]) +
FileLine
goldengate\common\file\filesystembased\FilesystemBasedDirImpl.java264
goldengate\common\file\passthrough\PassthroughBasedDirImpl.java193
    }

    public String mkdir(String directory) throws CommandAbstractException {
        checkIdentify();
        String newdirectory = consolidatePath(directory);
        File dir = new File(newdirectory);
        String parent = dir.getParentFile().getPath();
        List<String> paths = wildcardFiles(normalizePath(parent));
        if (paths.size() != 1) {
            throw new Reply550Exception("Base Directory not found: " +
                    paths.size() + " founds");
        }
        String newDir = paths.get(0) + SEPARATOR + dir.getName();
        newDir = this.validatePath(newDir);
FileLine
goldengate\common\file\filesystembased\FilesystemBasedDirImpl.java194
goldengate\common\file\passthrough\PassthroughBasedDirImpl.java135
        String truedir = ((FilesystemBasedAuthImpl) getSession().getAuth())
                .getAbsolutePath(newdir);
        return new File(truedir);
    }

    /**
     * Get the true file from the path
     *
     * @param path
     * @return the true File from the path
     * @throws CommandAbstractException
     */
    protected File getTrueFile(String path) throws CommandAbstractException {
        checkIdentify();
        String newpath = consolidatePath(path);
        List<String> paths = wildcardFiles(normalizePath(newpath));
        if (paths.size() != 1) {
            throw new Reply550Exception("File not found: " + paths.size() +
                    " founds");
        }
        String extDir = paths.get(0);
        extDir = this.validatePath(extDir);
        File file = getFileFromPath(extDir);
FileLine
goldengate\common\database\data\AbstractDbData.java204
goldengate\common\database\data\AbstractDbDataWithCommit.java84
            isSaved = true;
        } finally {
            preparedStatement.realClose();
        }
    }
    /**
     * Update object to table
     * @throws GoldenGateDatabaseException
     */
    public void update() throws GoldenGateDatabaseException {
        if (isSaved) {
            return;
        }
        if (dbSession == null) {
            isSaved = true;
            return;
        }
        setToArray();
        DbPreparedStatement preparedStatement = new DbPreparedStatement(
                dbSession);
        try {
            preparedStatement.createPrepareStatement("UPDATE " + getTable() +
                    " SET " + getUpdateAllFields() + " WHERE " +
                    getWherePrimaryKey());
            setValues(preparedStatement, allFields);
            int count = preparedStatement.executeUpdate();
            if (count <= 0) {
                throw new GoldenGateDatabaseNoDataException("No row found");
            }
FileLine
goldengate\common\tar\TarUtility.java254
goldengate\common\tar\ZipUtility.java250
                    "   option=3 means tar and source is a list of files comma separated");
            System.exit(1);
        }
        int option = Integer.parseInt(args[0]);
        String tarfile = args[1];
        String tarsource = args[2];
        String []tarfiles = null;
        if (option == 3) {
            tarfiles = args[2].split(",");
            File []files = new File[tarfiles.length];
            for (int i = 0; i < tarfiles.length; i++) {
                files[i] = new File(tarfiles[i]);
            }
            if (createTarFromFiles(files, tarfile)) {
FileLine
goldengate\common\xml\XmlUtil.java262
goldengate\common\xml\XmlUtil.java439
        for (int i = 0; i < pathes.length - 1; i ++) {
            String nodename = pathes[i];
            if (nodename.length() > 0) {
                Element exist = current.element(nodename);
                if (exist == null) {
                    current = current.addElement(nodename);
                } else {
                    current = exist;
                }
            }
        }
        String nodename = pathes[pathes.length - 1];
        if (nodename.length() > 0) {
            current = current.addElement(nodename);
        }
        return current;
    }

    /**
     * 
     * @param ref
     * @param path
     * @return the parent element associated with the path relatively to the
     *         referent element
     * @throws DocumentException
     */
    static public Element getParentElement(Element ref, String path)
FileLine
goldengate\common\xml\XmlUtil.java368
goldengate\common\xml\XmlUtil.java419
    static public Element addOrGetElement(Document doc, String path) {
        String[] pathes = path.split("/");
        int rank = 0;
        for (rank = 0; rank < pathes.length; rank ++) {
            if (pathes[rank].length() > 0) {
                break; // found
            }
        }
        if (rank >= pathes.length) {
            return null; // Should not be !
        }
        Element current = (Element) doc.selectSingleNode(pathes[rank]);
        if (current == null) {
            current = doc.addElement(pathes[rank]);
        }