[WARNING]
java.lang.ClassCastException: java.util.concurrent.FutureTask cannot be cast to java.lang.Comparable
at java.util.concurrent.PriorityBlockingQueue.siftUpComparable (PriorityBlockingQueue.java:357)
at java.util.concurrent.PriorityBlockingQueue.offer (PriorityBlockingQueue.java:489)
at java.util.concurrent.ThreadPoolExecutor.execute (ThreadPoolExecutor.java:1371)
at java.util.concurrent.AbstractExecutorService.submit (AbstractExecutorService.java:112)
at MyThreadFactory.main (MyThreadFactory.java:33)
at org.codehaus.mojo.exec.ExecJavaMojo$1.run (ExecJavaMojo.java:254)
at java.lang.Thread.run (Thread.java:748)
И зависает. В моей программе нет «Сравнимой» реализации PriorityBlockingQueue, откуда взялось это исключение?
У меня очень простая программа: [code] public static void main(String[] args) throws Exception { class MyThread2 implements Runnable{ @Override public void run() { while (true) { try { if (Thread.interrupted()) { System.out.println("Terminated!"); throw new InterruptedException(); } } catch (InterruptedException e) { return; } } } } ThreadPoolExecutor executor = new ThreadPoolExecutor( 2, 2, 1, TimeUnit.SECONDS, new PriorityBlockingQueue(), Executors.defaultThreadFactory()); executor.submit(new MyThread2()); executor.submit(new MyThread2()); executor.submit(new MyThread2()); executor.shutdownNow(); } [/code] При запуске с помощью maven выводится: [code][WARNING] java.lang.ClassCastException: java.util.concurrent.FutureTask cannot be cast to java.lang.Comparable at java.util.concurrent.PriorityBlockingQueue.siftUpComparable (PriorityBlockingQueue.java:357) at java.util.concurrent.PriorityBlockingQueue.offer (PriorityBlockingQueue.java:489) at java.util.concurrent.ThreadPoolExecutor.execute (ThreadPoolExecutor.java:1371) at java.util.concurrent.AbstractExecutorService.submit (AbstractExecutorService.java:112) at MyThreadFactory.main (MyThreadFactory.java:33) at org.codehaus.mojo.exec.ExecJavaMojo$1.run (ExecJavaMojo.java:254) at java.lang.Thread.run (Thread.java:748) [/code] И зависает. В моей программе нет «Сравнимой» реализации PriorityBlockingQueue, откуда взялось это исключение?