Andrew Christianson created MINIFICPP-286:
---------------------------------------------

             Summary: PutFile fails if filename property includes a path
                 Key: MINIFICPP-286
                 URL: https://issues.apache.org/jira/browse/MINIFICPP-286
             Project: NiFi MiNiFi C++
          Issue Type: Bug
            Reporter: Andrew Christianson
            Assignee: Andrew Christianson
            Priority: Major


If a flowfile 'filename' property includes a path (i.e. nested subdirs), then 
PutFile fails due to improper creation of temporary write file.

Example ExecuteScript lua to update filename:

{code}
function onTrigger(context, session)
  flow_file = session:get()
  log:info('rename_file triggered')

  if flow_file ~= nil then
    file_name = flow_file:getAttribute('filename')
    new_file_name = 'a/b/' .. file_name
    log:info('renaming ' .. flow_file:getAttribute('filename') .. ' to ' .. 
new_file_name)
    flow_file:updateAttribute('filename', new_file_name)
    session:transfer(flow_file, REL_SUCCESS)
    log:info('rename_file success')
  else
    log:info('no work to do')
  end
end
{code}

Log output showing the error:

{code}
[2017-11-03 12:44:38.916] 
[org::apache::nifi::minifi::processors::ExecuteScript] [info] Using available 
lua script engine instance
[2017-11-03 12:44:38.916] 
[org::apache::nifi::minifi::processors::ExecuteScript] [info] rename_file 
triggered
[2017-11-03 12:44:38.916] 
[org::apache::nifi::minifi::processors::ExecuteScript] [info] renaming 
1509727478135549592 to a/b/1509727478135549592
[2017-11-03 12:44:38.916] 
[org::apache::nifi::minifi::processors::ExecuteScript] [info] rename_file 
success
[2017-11-03 12:44:38.916] 
[org::apache::nifi::minifi::processors::ExecuteScript] [info] Releasing lua 
script engine
[2017-11-03 12:44:38.921] [org::apache::nifi::minifi::processors::PutFile] 
[info] PutFile using temporary file 
data/.a/b/1509727478135549592.486467fe-c0b6-11e7-821e-b06ebf2c6de8
[2017-11-03 12:44:38.921] [org::apache::nifi::minifi::processors::PutFile] 
[info] PutFile writing file a/b/1509727478135549592 into directory data
[2017-11-03 12:44:38.921] [org::apache::nifi::minifi::processors::PutFile] 
[info] Committing data/a/b/1509727478135549592
[2017-11-03 12:44:38.921] 
[org::apache::nifi::minifi::processors::PutFile::ReadCallback] [info] PutFile 
committing put file operation to data/a/b/1509727478135549592
[2017-11-03 12:44:38.921] 
[org::apache::nifi::minifi::processors::PutFile::ReadCallback] [info] PutFile 
commit put file operation to data/a/b/1509727478135549592 failed because 
rename() call failed
{code}



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to