[ https://issues.apache.org/jira/browse/FLUME-2620?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15272559#comment-15272559 ]
Jarek Jarcec Cecho commented on FLUME-2620: ------------------------------------------- I have two comments to the [latest patch|https://issues.apache.org/jira/secure/attachment/12802350/FLUME-2620.patch]: * Our code style is to put opening bracket next to the previous statement. E.g. {{if(headerVal.getValue()==null) {}} on one single line rather then two. Can you please fix the method {{checkAndReplaceNullInHeaders}} to look like that? * Can we introduce a configuration option that will allow user to configure the default "replacement" value for {{null}}? I'm concerned that someone might need to distinguish the case of value being {{null}} or empty. > File channel throws NullPointerException if a header value is null > ------------------------------------------------------------------ > > Key: FLUME-2620 > URL: https://issues.apache.org/jira/browse/FLUME-2620 > Project: Flume > Issue Type: Bug > Components: File Channel > Reporter: Santiago M. Mola > Assignee: Neerja Khattar > Attachments: FLUME-2620.patch, FLUME-2620.patch > > > File channel throws NullPointerException if a header value is null. > If this is intended, it should be reported correctly in the logs. > Sample trace: > org.apache.flume.ChannelException: Unable to put batch on required channel: > FileChannel chan { dataDirs: [/var/lib/ingestion-csv/chan/data] } > at > org.apache.flume.channel.ChannelProcessor.processEventBatch(ChannelProcessor.java:200) > at > org.apache.flume.source.SpoolDirectorySource$SpoolDirectoryRunnable.run(SpoolDirectorySource.java:236) > at > java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) > at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:304) > at > java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:178) > at > java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) > at java.lang.Thread.run(Thread.java:745) > Caused by: java.lang.NullPointerException > at > org.apache.flume.channel.file.proto.ProtosFactory$FlumeEventHeader$Builder.setValue(ProtosFactory.java:7415) > at org.apache.flume.channel.file.Put.writeProtos(Put.java:85) > at > org.apache.flume.channel.file.TransactionEventRecord.toByteBuffer(TransactionEventRecord.java:174) > at org.apache.flume.channel.file.Log.put(Log.java:622) > at > org.apache.flume.channel.file.FileChannel$FileBackedTransaction.doPut(FileChannel.java:469) > at > org.apache.flume.channel.BasicTransactionSemantics.put(BasicTransactionSemantics.java:93) > at > org.apache.flume.channel.BasicChannelSemantics.put(BasicChannelSemantics.java:80) > at > org.apache.flume.channel.ChannelProcessor.processEventBatch(ChannelProcessor.java:189) -- This message was sent by Atlassian JIRA (v6.3.4#6332)