2017-01-25 4 views
1

私はお詫びしますが、自分でMuTectを実行することで問題を解決することができませんでした。私の議論に問題があるのか​​、自分の入力に問題があるのか​​、あるいはJava自体でさえ問題があるのか​​は分かりません。このエラーが表示されます。比較方法は一般契約に違反しています! (TimSort)

Error processing 1:12855123 
    java.lang.IllegalArgumentException: Comparison method violates its general contract! 
    at java.util.TimSort.mergeLo(TimSort.java:747) 
    at java.util.TimSort.mergeAt(TimSort.java:483) 
    at java.util.TimSort.mergeCollapse(TimSort.java:410) 
    at java.util.TimSort.sort(TimSort.java:214) 
    at java.util.TimSort.sort(TimSort.java:173) 
    at java.util.Arrays.sort(Arrays.java:659) 
    at java.util.Collections.sort(Collections.java:217) 
    at org.broadinstitute.cga.tools.gatk.walkers.cancer.mutect.MuTectWalker.map(MuTectWalker.java:664) 
    at org.broadinstitute.cga.tools.gatk.walkers.cancer.mutect.MuTectWalker.map(MuTectWalker.java:34) 
    at org.broadinstitute.sting.gatk.traversals.TraverseLoci.traverse(TraverseLoci.java:77) 
    at org.broadinstitute.sting.gatk.traversals.TraverseLoci.traverse(TraverseLoci.java:18) 
    at org.broadinstitute.sting.gatk.executive.LinearMicroScheduler.execute(LinearMicroScheduler.java:61) 
    at org.broadinstitute.sting.gatk.GenomeAnalysisEngine.execute(GenomeAnalysisEngine.java:225) 
    at org.broadinstitute.sting.gatk.CommandLineExecutable.execute(CommandLineExecutable.java:104) 
    at org.broadinstitute.sting.commandline.CommandLineProgram.start(CommandLineProgram.java:227) 
    at org.broadinstitute.sting.gatk.CommandLineGATK.main(CommandLineGATK.java:89) 

マイコード:

Comparator<OfferInfo> comparator = new ComparaterClosesyTOMe(); 

    public class ComparaterClosesyTOMe implements Comparator<OfferInfo> { 
     @Override 
     public int compare(OfferInfo arg0, OfferInfo arg1) { 

      double distance = Utils.getDistance(gpsTracker.getLatitude(), gpsTracker.getLongitude(), arg0.latitude, arg0.longitude, "M"); 
      double distance1 = Utils.getDistance(gpsTracker.getLatitude(), gpsTracker.getLongitude(), arg1.latitude, arg1.longitude, "M"); 

      if (distance > distance1) 
       return 1; 
      else 
       return -1; 

     } 
    } 
+0

カスタム 'コンパレータ'を使用していますか? – beeb

+0

はい、ソートリストにコンパレータを使用しています –

+0

コンパレータのコードを投稿してください。 – beeb

答えて

0

使用非常にサンプルコードを使用して変換する

旧コード:

if (distance > distance1) 
    return 1; 
else 
    return -1; 

新しいコード:

if (distance == distance1) 
     return 1; 
else 
     return -1; 
関連する問題