Apache camel ApacheCamel-比较方法违反了其一般约定

Apache camel ApacheCamel-比较方法违反了其一般约定,apache-camel,Apache Camel,似乎Apache Camel的某个内部类对GenericFile类的Comparator实现有误 我使用的是ApacheCamel版本2.17.3,但是2.18.3也会出现同样的问题 我意识到这只发生在一个场景中: 我有一个处理器,它监视一个目录(和子目录)寻找zip文件,当它们被找到时,它会将它们解压缩到另一个目录 另一个处理器监视提取的目录,在那里查找任何类型的文件 e、 g: 即使我把它们放在不同的文件夹里,也会把骆驼里面的东西弄得一团糟。以下是StackTrace: 2017-04-03

似乎Apache Camel的某个内部类对
GenericFile
类的Comparator实现有误

我使用的是ApacheCamel版本
2.17.3
,但是
2.18.3
也会出现同样的问题

我意识到这只发生在一个场景中:

我有一个处理器,它监视一个目录(和子目录)寻找zip文件,当它们被找到时,它会将它们解压缩到另一个目录

另一个处理器监视提取的目录,在那里查找任何类型的文件

e、 g:

即使我把它们放在不同的文件夹里,也会把骆驼里面的东西弄得一团糟。以下是StackTrace:

2017-04-03T14:08:18.846 WARN  - [Camel (CORE-AARE) thread #16 - file://...] - [org.apache.camel.component.file.FileConsumer] - Consumer Consumer[file://...] Will try again at next poll. Caused by: [java.lang.IllegalArgumentException - Comparison method violates its general contract!] 
java.lang.IllegalArgumentException: Comparison method violates its general contract!
at java.util.TimSort.mergeHi(TimSort.java:899)
at java.util.TimSort.mergeAt(TimSort.java:516)
at java.util.TimSort.mergeCollapse(TimSort.java:441)
at java.util.TimSort.sort(TimSort.java:245)
at java.util.Arrays.sort(Arrays.java:1512)
at java.util.ArrayList.sort(ArrayList.java:1454)
at java.util.Collections.sort(Collections.java:175)
at org.apache.camel.component.file.GenericFileConsumer.poll(GenericFileConsumer.java:152)
at org.apache.camel.impl.ScheduledPollConsumer.doRun(ScheduledPollConsumer.java:175)
at org.apache.camel.impl.ScheduledPollConsumer.run(ScheduledPollConsumer.java:102)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)

我在使用最新版本的
2.18.3
时遇到了同样的问题。你能解释一下你的问题吗?你想解决什么问题?
- zip1.zip
  - a1.txt
  - a2.txt 
- zip2.zip
  - a1.txt
  - a2.txt
2017-04-03T14:08:18.846 WARN  - [Camel (CORE-AARE) thread #16 - file://...] - [org.apache.camel.component.file.FileConsumer] - Consumer Consumer[file://...] Will try again at next poll. Caused by: [java.lang.IllegalArgumentException - Comparison method violates its general contract!] 
java.lang.IllegalArgumentException: Comparison method violates its general contract!
at java.util.TimSort.mergeHi(TimSort.java:899)
at java.util.TimSort.mergeAt(TimSort.java:516)
at java.util.TimSort.mergeCollapse(TimSort.java:441)
at java.util.TimSort.sort(TimSort.java:245)
at java.util.Arrays.sort(Arrays.java:1512)
at java.util.ArrayList.sort(ArrayList.java:1454)
at java.util.Collections.sort(Collections.java:175)
at org.apache.camel.component.file.GenericFileConsumer.poll(GenericFileConsumer.java:152)
at org.apache.camel.impl.ScheduledPollConsumer.doRun(ScheduledPollConsumer.java:175)
at org.apache.camel.impl.ScheduledPollConsumer.run(ScheduledPollConsumer.java:102)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)