Uploaded image for project: 'Camel'
  1. Camel
  2. CAMEL-8768

hdfs2 component overwrite option is also being applied to directory filesystem path

Attach filesAttach ScreenshotVotersWatch issueWatchersCreate sub-taskLinkCloneUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments
    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 2.15.2
    • 2.15.3, 2.16.0
    • camel-hdfs
    • Unknown
    • Patch

    Description

      If you need to produce files into an existing HDFS2 path, the default behavoir is overwrite the path, which will delete all existing files on HDFS. If overwrite option is disabled, then the component will complain that the existing HDFS directory exists and will not work.

      The propose solution is to add the following if statement to ignore check if the HDFS directory exists. The overwrite option should only be used for files not directories.

      code snippet in HdfsOutputStream.java and patch is attached

      if (ret.info.getFileSystem().exists(new Path(ret.actualPath))) {
      //only check of not directory
      if (!ret.info.getFileSystem().isDirectory(new Path(ret.actualPath))) {
      if (configuration.isOverwrite())

      { ret.info.getFileSystem().delete(new Path(ret.actualPath), true); }

      else

      { throw new RuntimeCamelException("The file already exists"); }

      }
      }

      Attachments

        Activity

          This comment will be Viewable by All Users Viewable by All Users
          Cancel

          People

            davsclaus Claus Ibsen
            hfaouaz Hassan Faouaz
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Slack

                Issue deployment