You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by "Evgeniya Maenkova (JIRA)" <ji...@apache.org> on 2007/11/04 20:42:50 UTC

[jira] Created: (HARMONY-5067) [drlvm][jit] Incorrect string comparison

[drlvm][jit] Incorrect string comparison
----------------------------------------

                 Key: HARMONY-5067
                 URL: https://issues.apache.org/jira/browse/HARMONY-5067
             Project: Harmony
          Issue Type: Bug
          Components: DRLVM
         Environment: windows32
            Reporter: Evgeniya Maenkova


The test mentioned below produces incorrect resuls starting from some iteration(r591816), works fine with interpreter. This bug isn;t reproducible on, say, r572955.

C:\ecl_311_ws\SPECjvm2007\bin1>C:\Harmony_to_run\trunk\working_vm\build\win_ia32_msvc_release\deploy\jdk\jre\bin\java -cp . Test

CRASH30 30(loop: 199751) 

C:\ecl_311_ws\SPECjvm2007\bin1>C:\Harmony_to_run\trunk\working_vm\build\win_ia32_msvc_release\deploy\jdk\jre\bin\java -Xint Test 

C:\ecl_311_ws\SPECjvm2007\bin1>

 Test:


import java.util.Arrays;

 

public class Test {

            public static class MyObj implements Comparable<MyObj> {

                        String dir;

                        String name;

                        public MyObj(String name, String dir) {

                                    this.dir = dir;

                                    this.name = name;

                        }

                        

                        public int compareTo(MyObj other) {                                    

                    String otherD = other.dir;                

                    if (dir != otherD) {

                        int c = dir.compareTo(otherD);

                        if (c != 0)

                            return c;

                    }

                    return name.compareTo(other.name);

                }

 

            }

            

            static MyObj[] arr = new MyObj[] {              

                        new MyObj("WriteAbortedException.class","java\\io"),

                        new MyObj("Writer.class","java\\io"),

                        new MyObj("WriteAbortedException.class","java\\io"),

                        new MyObj("Writer.class","java\\io"),

                        new MyObj("WriteAbortedException.class","java\\io"),

                        new MyObj("Writer.class","java\\io"),

                        new MyObj("WriteAbortedException.class","java\\io"),

                        new MyObj("Writer.class","java\\io"),

                        new MyObj("WriteAbortedException.class","java\\io"),

                        new MyObj("Writer.class","java\\io"),

                        new MyObj("WriteAbortedException.class","java\\io"),

                        new MyObj("Writer.class","java\\io"),

                        new MyObj("WriteAbortedException.class","java\\io"),

                        new MyObj("Writer.class","java\\io"),

                        new MyObj("WriteAbortedException.class","java\\io"),

                        new MyObj("Writer.class","java\\io"),

                        new MyObj("WriteAbortedException.class","java\\io"),

                        new MyObj("Writer.class","java\\io"),

                        new MyObj("WriteAbortedException.class","java\\io"),

                        new MyObj("Writer.class","java\\io"),

                        new MyObj("WriteAbortedException.class","java\\io"),

                        new MyObj("Writer.class","java\\io"),

                        new MyObj("WriteAbortedException.class","java\\io"),

                        new MyObj("Writer.class","java\\io"),

                        new MyObj("WriteAbortedException.class","java\\io"),

                        new MyObj("Writer.class","java\\io"),

                        new MyObj("WriteAbortedException.class","java\\io"),

                        new MyObj("Writer.class","java\\io"),            

                        new MyObj("WriteAbortedException.class","java\\io"),

                        new MyObj("Writer.class","java\\io"),

                        new MyObj("AbstractMethodError.class","java\\lang"),

        new MyObj("AbstractStringBuilder.class","java\\lang"),

        new MyObj("Appendable.class","java\\lang"),        

        new MyObj("VirtualMachineError.class","java\\lang"),

        new MyObj("Void.class","java\\lang"),

        new MyObj("ref","java\\lang"),

        new MyObj("reflect","java\\lang"),

        new MyObj("ReferenceQueue.class","java\\lang\\ref"),

        new MyObj("AnnotatedElement.class","java\\lang\\reflect"),

        new MyObj("GenericArrayType.class","java\\lang\\reflect"),

        new MyObj("GenericDeclaration.class","java\\lang\\reflect"),

        new MyObj("AnnotatedElement.class","java\\lang\\reflect"),

        new MyObj("GenericArrayType.class","java\\lang\\reflect"),

        new MyObj("GenericDeclaration.class","java\\lang\\reflect"),

        new MyObj("AnnotatedElement.class","java\\lang\\reflect"),

        new MyObj("GenericArrayType.class","java\\lang\\reflect"),

        new MyObj("GenericDeclaration.class","java\\lang\\reflect"),

        new MyObj("AnnotatedElement.class","java\\lang\\reflect"),

        new MyObj("GenericArrayType.class","java\\lang\\reflect"),

        new MyObj("GenericDeclaration.class","java\\lang\\reflect"),

        new MyObj("AnnotatedElement.class","java\\lang\\reflect"),

        new MyObj("GenericArrayType.class","java\\lang\\reflect"),

        new MyObj("GenericDeclaration.class","java\\lang\\reflect"),

        new MyObj("AnnotatedElement.class","java\\lang\\reflect"),

        new MyObj("GenericArrayType.class","java\\lang\\reflect"),

        new MyObj("GenericDeclaration.class","java\\lang\\reflect"),

        new MyObj("AnnotatedElement.class","java\\lang\\reflect"),

        new MyObj("GenericArrayType.class","java\\lang\\reflect"),

        new MyObj("GenericDeclaration.class","java\\lang\\reflect"),

        new MyObj("AnnotatedElement.class","java\\lang\\reflect"),

        new MyObj("GenericArrayType.class","java\\lang\\reflect"),

        new MyObj("GenericDeclaration.class","java\\lang\\reflect"),

        new MyObj("AnnotatedElement.class","java\\lang\\reflect"),

        new MyObj("GenericArrayType.class","java\\lang\\reflect"),

        new MyObj("GenericDeclaration.class","java\\lang\\reflect"),

        new MyObj("AnnotatedElement.class","java\\lang\\reflect"),

        new MyObj("GenericArrayType.class","java\\lang\\reflect"),

        new MyObj("GenericDeclaration.class","java\\lang\\reflect"),

        new MyObj("AnnotatedElement.class","java\\lang\\reflect"),

        new MyObj("GenericArrayType.class","java\\lang\\reflect"),

        new MyObj("GenericDeclaration.class","java\\lang\\reflect"),

        new MyObj("AnnotatedElement.class","java\\lang\\reflect"),

        new MyObj("GenericArrayType.class","java\\lang\\reflect"),

        new MyObj("GenericDeclaration.class","java\\lang\\reflect"),

        new MyObj("AnnotatedElement.class","java\\lang\\reflect"),

        new MyObj("GenericArrayType.class","java\\lang\\reflect"),

        new MyObj("GenericDeclaration.class","java\\lang\\reflect"),

        new MyObj("AnnotatedElement.class","java\\lang\\reflect"),

        new MyObj("GenericArrayType.class","java\\lang\\reflect"),

        new MyObj("GenericDeclaration.class","java\\lang\\reflect"),

        new MyObj("AnnotatedElement.class","java\\lang\\reflect"),

        new MyObj("GenericArrayType.class","java\\lang\\reflect"),

        new MyObj("GenericDeclaration.class","java\\lang\\reflect"),

        new MyObj("AnnotatedElement.class","java\\lang\\reflect"),

        new MyObj("GenericArrayType.class","java\\lang\\reflect"),

        new MyObj("GenericDeclaration.class","java\\lang\\reflect"),

        

            };

            

 

            

            public static void main(String[] args) {

                        for (int i = 0; i <1000000; i ++) {

                         int from = -Arrays.binarySearch(arr,

                new MyObj(String.valueOf(Character.MIN_VALUE), "java\\lang")) - 1;

                        int to = -Arrays.binarySearch(arr,

                new MyObj(String.valueOf(Character.MAX_VALUE), "java\\lang")) - 1;

                         if (to != 37 || from !=30) { 

                            System.out.println("CRASH" + from + " " + to +  "(loop: " + i + ")");

                            System.exit(0);

                         }   

               }       

                        

            }

}





-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (HARMONY-5067) [drlvm][jit] Incorrect string comparison

Posted by "Dmitry Pronichkin (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HARMONY-5067?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12540406 ] 

Dmitry Pronichkin commented on HARMONY-5067:
--------------------------------------------

The problem is in result operand creation when current compared characters are not equal.
Current code does following actions:
mov         si,word ptr [esi]
sub          si,word ptr [edi]
movsx     eax,si

where esi, edi - positions of current compared symbols, eax - result.
So there will be a mistake while comparing, for example, 0xFFFF and 0x0042 (the result will be negative).

My opinion is to replace the code with smth like this:
movzx        eax,word ptr [esi]
sub            eax,word ptr [edi]

This conversion from 16bit to 32bit result would be correct.

> [drlvm][jit] Incorrect string comparison
> ----------------------------------------
>
>                 Key: HARMONY-5067
>                 URL: https://issues.apache.org/jira/browse/HARMONY-5067
>             Project: Harmony
>          Issue Type: Bug
>          Components: DRLVM
>         Environment: windows32
>            Reporter: Evgeniya Maenkova
>         Attachments: Test.java, Test_2.java, Test_2.java
>
>
> The test mentioned below produces incorrect resuls starting from some iteration(r591816), works fine with interpreter. This bug isn;t reproducible on, say, r572955.
> C:\ecl_311_ws\SPECjvm2007\bin1>C:\Harmony_to_run\trunk\working_vm\build\win_ia32_msvc_release\deploy\jdk\jre\bin\java -cp . Test
> CRASH30 30(loop: 199751) 
> C:\ecl_311_ws\SPECjvm2007\bin1>C:\Harmony_to_run\trunk\working_vm\build\win_ia32_msvc_release\deploy\jdk\jre\bin\java -Xint Test 
> C:\ecl_311_ws\SPECjvm2007\bin1>
>  Test:
> import java.util.Arrays;
>  
> public class Test {
>             public static class MyObj implements Comparable<MyObj> {
>                         String dir;
>                         String name;
>                         public MyObj(String name, String dir) {
>                                     this.dir = dir;
>                                     this.name = name;
>                         }
>                         
>                         public int compareTo(MyObj other) {                                    
>                     String otherD = other.dir;                
>                     if (dir != otherD) {
>                         int c = dir.compareTo(otherD);
>                         if (c != 0)
>                             return c;
>                     }
>                     return name.compareTo(other.name);
>                 }
>  
>             }
>             
>             static MyObj[] arr = new MyObj[] {              
>                         new MyObj("WriteAbortedException.class","java\\io"),
>                         new MyObj("Writer.class","java\\io"),
>                         new MyObj("WriteAbortedException.class","java\\io"),
>                         new MyObj("Writer.class","java\\io"),
>                         new MyObj("WriteAbortedException.class","java\\io"),
>                         new MyObj("Writer.class","java\\io"),
>                         new MyObj("WriteAbortedException.class","java\\io"),
>                         new MyObj("Writer.class","java\\io"),
>                         new MyObj("WriteAbortedException.class","java\\io"),
>                         new MyObj("Writer.class","java\\io"),
>                         new MyObj("WriteAbortedException.class","java\\io"),
>                         new MyObj("Writer.class","java\\io"),
>                         new MyObj("WriteAbortedException.class","java\\io"),
>                         new MyObj("Writer.class","java\\io"),
>                         new MyObj("WriteAbortedException.class","java\\io"),
>                         new MyObj("Writer.class","java\\io"),
>                         new MyObj("WriteAbortedException.class","java\\io"),
>                         new MyObj("Writer.class","java\\io"),
>                         new MyObj("WriteAbortedException.class","java\\io"),
>                         new MyObj("Writer.class","java\\io"),
>                         new MyObj("WriteAbortedException.class","java\\io"),
>                         new MyObj("Writer.class","java\\io"),
>                         new MyObj("WriteAbortedException.class","java\\io"),
>                         new MyObj("Writer.class","java\\io"),
>                         new MyObj("WriteAbortedException.class","java\\io"),
>                         new MyObj("Writer.class","java\\io"),
>                         new MyObj("WriteAbortedException.class","java\\io"),
>                         new MyObj("Writer.class","java\\io"),            
>                         new MyObj("WriteAbortedException.class","java\\io"),
>                         new MyObj("Writer.class","java\\io"),
>                         new MyObj("AbstractMethodError.class","java\\lang"),
>         new MyObj("AbstractStringBuilder.class","java\\lang"),
>         new MyObj("Appendable.class","java\\lang"),        
>         new MyObj("VirtualMachineError.class","java\\lang"),
>         new MyObj("Void.class","java\\lang"),
>         new MyObj("ref","java\\lang"),
>         new MyObj("reflect","java\\lang"),
>         new MyObj("ReferenceQueue.class","java\\lang\\ref"),
>         new MyObj("AnnotatedElement.class","java\\lang\\reflect"),
>         new MyObj("GenericArrayType.class","java\\lang\\reflect"),
>         new MyObj("GenericDeclaration.class","java\\lang\\reflect"),
>         new MyObj("AnnotatedElement.class","java\\lang\\reflect"),
>         new MyObj("GenericArrayType.class","java\\lang\\reflect"),
>         new MyObj("GenericDeclaration.class","java\\lang\\reflect"),
>         new MyObj("AnnotatedElement.class","java\\lang\\reflect"),
>         new MyObj("GenericArrayType.class","java\\lang\\reflect"),
>         new MyObj("GenericDeclaration.class","java\\lang\\reflect"),
>         new MyObj("AnnotatedElement.class","java\\lang\\reflect"),
>         new MyObj("GenericArrayType.class","java\\lang\\reflect"),
>         new MyObj("GenericDeclaration.class","java\\lang\\reflect"),
>         new MyObj("AnnotatedElement.class","java\\lang\\reflect"),
>         new MyObj("GenericArrayType.class","java\\lang\\reflect"),
>         new MyObj("GenericDeclaration.class","java\\lang\\reflect"),
>         new MyObj("AnnotatedElement.class","java\\lang\\reflect"),
>         new MyObj("GenericArrayType.class","java\\lang\\reflect"),
>         new MyObj("GenericDeclaration.class","java\\lang\\reflect"),
>         new MyObj("AnnotatedElement.class","java\\lang\\reflect"),
>         new MyObj("GenericArrayType.class","java\\lang\\reflect"),
>         new MyObj("GenericDeclaration.class","java\\lang\\reflect"),
>         new MyObj("AnnotatedElement.class","java\\lang\\reflect"),
>         new MyObj("GenericArrayType.class","java\\lang\\reflect"),
>         new MyObj("GenericDeclaration.class","java\\lang\\reflect"),
>         new MyObj("AnnotatedElement.class","java\\lang\\reflect"),
>         new MyObj("GenericArrayType.class","java\\lang\\reflect"),
>         new MyObj("GenericDeclaration.class","java\\lang\\reflect"),
>         new MyObj("AnnotatedElement.class","java\\lang\\reflect"),
>         new MyObj("GenericArrayType.class","java\\lang\\reflect"),
>         new MyObj("GenericDeclaration.class","java\\lang\\reflect"),
>         new MyObj("AnnotatedElement.class","java\\lang\\reflect"),
>         new MyObj("GenericArrayType.class","java\\lang\\reflect"),
>         new MyObj("GenericDeclaration.class","java\\lang\\reflect"),
>         new MyObj("AnnotatedElement.class","java\\lang\\reflect"),
>         new MyObj("GenericArrayType.class","java\\lang\\reflect"),
>         new MyObj("GenericDeclaration.class","java\\lang\\reflect"),
>         new MyObj("AnnotatedElement.class","java\\lang\\reflect"),
>         new MyObj("GenericArrayType.class","java\\lang\\reflect"),
>         new MyObj("GenericDeclaration.class","java\\lang\\reflect"),
>         new MyObj("AnnotatedElement.class","java\\lang\\reflect"),
>         new MyObj("GenericArrayType.class","java\\lang\\reflect"),
>         new MyObj("GenericDeclaration.class","java\\lang\\reflect"),
>         new MyObj("AnnotatedElement.class","java\\lang\\reflect"),
>         new MyObj("GenericArrayType.class","java\\lang\\reflect"),
>         new MyObj("GenericDeclaration.class","java\\lang\\reflect"),
>         new MyObj("AnnotatedElement.class","java\\lang\\reflect"),
>         new MyObj("GenericArrayType.class","java\\lang\\reflect"),
>         new MyObj("GenericDeclaration.class","java\\lang\\reflect"),
>         
>             };
>             
>  
>             
>             public static void main(String[] args) {
>                         for (int i = 0; i <1000000; i ++) {
>                          int from = -Arrays.binarySearch(arr,
>                 new MyObj(String.valueOf(Character.MIN_VALUE), "java\\lang")) - 1;
>                         int to = -Arrays.binarySearch(arr,
>                 new MyObj(String.valueOf(Character.MAX_VALUE), "java\\lang")) - 1;
>                          if (to != 37 || from !=30) { 
>                             System.out.println("CRASH" + from + " " + to +  "(loop: " + i + ")");
>                             System.exit(0);
>                          }   
>                }       
>                         
>             }
> }

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (HARMONY-5067) [drlvm][jit] Incorrect string comparison

Posted by "George Timoshenko (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/HARMONY-5067?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

George Timoshenko updated HARMONY-5067:
---------------------------------------

    Attachment: HARMONY-5067_fix_and_regtest.patch

fix and regression test

> [drlvm][jit] Incorrect string comparison
> ----------------------------------------
>
>                 Key: HARMONY-5067
>                 URL: https://issues.apache.org/jira/browse/HARMONY-5067
>             Project: Harmony
>          Issue Type: Bug
>          Components: DRLVM
>         Environment: windows32
>            Reporter: Evgeniya Maenkova
>         Attachments: HARMONY-5067_fix_and_regtest.patch, Test.java, Test_2.java, Test_2.java
>
>
> The test mentioned below produces incorrect resuls starting from some iteration(r591816), works fine with interpreter. This bug isn;t reproducible on, say, r572955.
> C:\ecl_311_ws\SPECjvm2007\bin1>C:\Harmony_to_run\trunk\working_vm\build\win_ia32_msvc_release\deploy\jdk\jre\bin\java -cp . Test
> CRASH30 30(loop: 199751) 
> C:\ecl_311_ws\SPECjvm2007\bin1>C:\Harmony_to_run\trunk\working_vm\build\win_ia32_msvc_release\deploy\jdk\jre\bin\java -Xint Test 
> C:\ecl_311_ws\SPECjvm2007\bin1>
>  Test:
> import java.util.Arrays;
>  
> public class Test {
>             public static class MyObj implements Comparable<MyObj> {
>                         String dir;
>                         String name;
>                         public MyObj(String name, String dir) {
>                                     this.dir = dir;
>                                     this.name = name;
>                         }
>                         
>                         public int compareTo(MyObj other) {                                    
>                     String otherD = other.dir;                
>                     if (dir != otherD) {
>                         int c = dir.compareTo(otherD);
>                         if (c != 0)
>                             return c;
>                     }
>                     return name.compareTo(other.name);
>                 }
>  
>             }
>             
>             static MyObj[] arr = new MyObj[] {              
>                         new MyObj("WriteAbortedException.class","java\\io"),
>                         new MyObj("Writer.class","java\\io"),
>                         new MyObj("WriteAbortedException.class","java\\io"),
>                         new MyObj("Writer.class","java\\io"),
>                         new MyObj("WriteAbortedException.class","java\\io"),
>                         new MyObj("Writer.class","java\\io"),
>                         new MyObj("WriteAbortedException.class","java\\io"),
>                         new MyObj("Writer.class","java\\io"),
>                         new MyObj("WriteAbortedException.class","java\\io"),
>                         new MyObj("Writer.class","java\\io"),
>                         new MyObj("WriteAbortedException.class","java\\io"),
>                         new MyObj("Writer.class","java\\io"),
>                         new MyObj("WriteAbortedException.class","java\\io"),
>                         new MyObj("Writer.class","java\\io"),
>                         new MyObj("WriteAbortedException.class","java\\io"),
>                         new MyObj("Writer.class","java\\io"),
>                         new MyObj("WriteAbortedException.class","java\\io"),
>                         new MyObj("Writer.class","java\\io"),
>                         new MyObj("WriteAbortedException.class","java\\io"),
>                         new MyObj("Writer.class","java\\io"),
>                         new MyObj("WriteAbortedException.class","java\\io"),
>                         new MyObj("Writer.class","java\\io"),
>                         new MyObj("WriteAbortedException.class","java\\io"),
>                         new MyObj("Writer.class","java\\io"),
>                         new MyObj("WriteAbortedException.class","java\\io"),
>                         new MyObj("Writer.class","java\\io"),
>                         new MyObj("WriteAbortedException.class","java\\io"),
>                         new MyObj("Writer.class","java\\io"),            
>                         new MyObj("WriteAbortedException.class","java\\io"),
>                         new MyObj("Writer.class","java\\io"),
>                         new MyObj("AbstractMethodError.class","java\\lang"),
>         new MyObj("AbstractStringBuilder.class","java\\lang"),
>         new MyObj("Appendable.class","java\\lang"),        
>         new MyObj("VirtualMachineError.class","java\\lang"),
>         new MyObj("Void.class","java\\lang"),
>         new MyObj("ref","java\\lang"),
>         new MyObj("reflect","java\\lang"),
>         new MyObj("ReferenceQueue.class","java\\lang\\ref"),
>         new MyObj("AnnotatedElement.class","java\\lang\\reflect"),
>         new MyObj("GenericArrayType.class","java\\lang\\reflect"),
>         new MyObj("GenericDeclaration.class","java\\lang\\reflect"),
>         new MyObj("AnnotatedElement.class","java\\lang\\reflect"),
>         new MyObj("GenericArrayType.class","java\\lang\\reflect"),
>         new MyObj("GenericDeclaration.class","java\\lang\\reflect"),
>         new MyObj("AnnotatedElement.class","java\\lang\\reflect"),
>         new MyObj("GenericArrayType.class","java\\lang\\reflect"),
>         new MyObj("GenericDeclaration.class","java\\lang\\reflect"),
>         new MyObj("AnnotatedElement.class","java\\lang\\reflect"),
>         new MyObj("GenericArrayType.class","java\\lang\\reflect"),
>         new MyObj("GenericDeclaration.class","java\\lang\\reflect"),
>         new MyObj("AnnotatedElement.class","java\\lang\\reflect"),
>         new MyObj("GenericArrayType.class","java\\lang\\reflect"),
>         new MyObj("GenericDeclaration.class","java\\lang\\reflect"),
>         new MyObj("AnnotatedElement.class","java\\lang\\reflect"),
>         new MyObj("GenericArrayType.class","java\\lang\\reflect"),
>         new MyObj("GenericDeclaration.class","java\\lang\\reflect"),
>         new MyObj("AnnotatedElement.class","java\\lang\\reflect"),
>         new MyObj("GenericArrayType.class","java\\lang\\reflect"),
>         new MyObj("GenericDeclaration.class","java\\lang\\reflect"),
>         new MyObj("AnnotatedElement.class","java\\lang\\reflect"),
>         new MyObj("GenericArrayType.class","java\\lang\\reflect"),
>         new MyObj("GenericDeclaration.class","java\\lang\\reflect"),
>         new MyObj("AnnotatedElement.class","java\\lang\\reflect"),
>         new MyObj("GenericArrayType.class","java\\lang\\reflect"),
>         new MyObj("GenericDeclaration.class","java\\lang\\reflect"),
>         new MyObj("AnnotatedElement.class","java\\lang\\reflect"),
>         new MyObj("GenericArrayType.class","java\\lang\\reflect"),
>         new MyObj("GenericDeclaration.class","java\\lang\\reflect"),
>         new MyObj("AnnotatedElement.class","java\\lang\\reflect"),
>         new MyObj("GenericArrayType.class","java\\lang\\reflect"),
>         new MyObj("GenericDeclaration.class","java\\lang\\reflect"),
>         new MyObj("AnnotatedElement.class","java\\lang\\reflect"),
>         new MyObj("GenericArrayType.class","java\\lang\\reflect"),
>         new MyObj("GenericDeclaration.class","java\\lang\\reflect"),
>         new MyObj("AnnotatedElement.class","java\\lang\\reflect"),
>         new MyObj("GenericArrayType.class","java\\lang\\reflect"),
>         new MyObj("GenericDeclaration.class","java\\lang\\reflect"),
>         new MyObj("AnnotatedElement.class","java\\lang\\reflect"),
>         new MyObj("GenericArrayType.class","java\\lang\\reflect"),
>         new MyObj("GenericDeclaration.class","java\\lang\\reflect"),
>         new MyObj("AnnotatedElement.class","java\\lang\\reflect"),
>         new MyObj("GenericArrayType.class","java\\lang\\reflect"),
>         new MyObj("GenericDeclaration.class","java\\lang\\reflect"),
>         new MyObj("AnnotatedElement.class","java\\lang\\reflect"),
>         new MyObj("GenericArrayType.class","java\\lang\\reflect"),
>         new MyObj("GenericDeclaration.class","java\\lang\\reflect"),
>         
>             };
>             
>  
>             
>             public static void main(String[] args) {
>                         for (int i = 0; i <1000000; i ++) {
>                          int from = -Arrays.binarySearch(arr,
>                 new MyObj(String.valueOf(Character.MIN_VALUE), "java\\lang")) - 1;
>                         int to = -Arrays.binarySearch(arr,
>                 new MyObj(String.valueOf(Character.MAX_VALUE), "java\\lang")) - 1;
>                          if (to != 37 || from !=30) { 
>                             System.out.println("CRASH" + from + " " + to +  "(loop: " + i + ")");
>                             System.exit(0);
>                          }   
>                }       
>                         
>             }
> }

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (HARMONY-5067) [drlvm][jit] Incorrect string comparison

Posted by "George Timoshenko (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/HARMONY-5067?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

George Timoshenko updated HARMONY-5067:
---------------------------------------

    Attachment: Test_2.java

> [drlvm][jit] Incorrect string comparison
> ----------------------------------------
>
>                 Key: HARMONY-5067
>                 URL: https://issues.apache.org/jira/browse/HARMONY-5067
>             Project: Harmony
>          Issue Type: Bug
>          Components: DRLVM
>         Environment: windows32
>            Reporter: Evgeniya Maenkova
>         Attachments: Test.java, Test_2.java, Test_2.java
>
>
> The test mentioned below produces incorrect resuls starting from some iteration(r591816), works fine with interpreter. This bug isn;t reproducible on, say, r572955.
> C:\ecl_311_ws\SPECjvm2007\bin1>C:\Harmony_to_run\trunk\working_vm\build\win_ia32_msvc_release\deploy\jdk\jre\bin\java -cp . Test
> CRASH30 30(loop: 199751) 
> C:\ecl_311_ws\SPECjvm2007\bin1>C:\Harmony_to_run\trunk\working_vm\build\win_ia32_msvc_release\deploy\jdk\jre\bin\java -Xint Test 
> C:\ecl_311_ws\SPECjvm2007\bin1>
>  Test:
> import java.util.Arrays;
>  
> public class Test {
>             public static class MyObj implements Comparable<MyObj> {
>                         String dir;
>                         String name;
>                         public MyObj(String name, String dir) {
>                                     this.dir = dir;
>                                     this.name = name;
>                         }
>                         
>                         public int compareTo(MyObj other) {                                    
>                     String otherD = other.dir;                
>                     if (dir != otherD) {
>                         int c = dir.compareTo(otherD);
>                         if (c != 0)
>                             return c;
>                     }
>                     return name.compareTo(other.name);
>                 }
>  
>             }
>             
>             static MyObj[] arr = new MyObj[] {              
>                         new MyObj("WriteAbortedException.class","java\\io"),
>                         new MyObj("Writer.class","java\\io"),
>                         new MyObj("WriteAbortedException.class","java\\io"),
>                         new MyObj("Writer.class","java\\io"),
>                         new MyObj("WriteAbortedException.class","java\\io"),
>                         new MyObj("Writer.class","java\\io"),
>                         new MyObj("WriteAbortedException.class","java\\io"),
>                         new MyObj("Writer.class","java\\io"),
>                         new MyObj("WriteAbortedException.class","java\\io"),
>                         new MyObj("Writer.class","java\\io"),
>                         new MyObj("WriteAbortedException.class","java\\io"),
>                         new MyObj("Writer.class","java\\io"),
>                         new MyObj("WriteAbortedException.class","java\\io"),
>                         new MyObj("Writer.class","java\\io"),
>                         new MyObj("WriteAbortedException.class","java\\io"),
>                         new MyObj("Writer.class","java\\io"),
>                         new MyObj("WriteAbortedException.class","java\\io"),
>                         new MyObj("Writer.class","java\\io"),
>                         new MyObj("WriteAbortedException.class","java\\io"),
>                         new MyObj("Writer.class","java\\io"),
>                         new MyObj("WriteAbortedException.class","java\\io"),
>                         new MyObj("Writer.class","java\\io"),
>                         new MyObj("WriteAbortedException.class","java\\io"),
>                         new MyObj("Writer.class","java\\io"),
>                         new MyObj("WriteAbortedException.class","java\\io"),
>                         new MyObj("Writer.class","java\\io"),
>                         new MyObj("WriteAbortedException.class","java\\io"),
>                         new MyObj("Writer.class","java\\io"),            
>                         new MyObj("WriteAbortedException.class","java\\io"),
>                         new MyObj("Writer.class","java\\io"),
>                         new MyObj("AbstractMethodError.class","java\\lang"),
>         new MyObj("AbstractStringBuilder.class","java\\lang"),
>         new MyObj("Appendable.class","java\\lang"),        
>         new MyObj("VirtualMachineError.class","java\\lang"),
>         new MyObj("Void.class","java\\lang"),
>         new MyObj("ref","java\\lang"),
>         new MyObj("reflect","java\\lang"),
>         new MyObj("ReferenceQueue.class","java\\lang\\ref"),
>         new MyObj("AnnotatedElement.class","java\\lang\\reflect"),
>         new MyObj("GenericArrayType.class","java\\lang\\reflect"),
>         new MyObj("GenericDeclaration.class","java\\lang\\reflect"),
>         new MyObj("AnnotatedElement.class","java\\lang\\reflect"),
>         new MyObj("GenericArrayType.class","java\\lang\\reflect"),
>         new MyObj("GenericDeclaration.class","java\\lang\\reflect"),
>         new MyObj("AnnotatedElement.class","java\\lang\\reflect"),
>         new MyObj("GenericArrayType.class","java\\lang\\reflect"),
>         new MyObj("GenericDeclaration.class","java\\lang\\reflect"),
>         new MyObj("AnnotatedElement.class","java\\lang\\reflect"),
>         new MyObj("GenericArrayType.class","java\\lang\\reflect"),
>         new MyObj("GenericDeclaration.class","java\\lang\\reflect"),
>         new MyObj("AnnotatedElement.class","java\\lang\\reflect"),
>         new MyObj("GenericArrayType.class","java\\lang\\reflect"),
>         new MyObj("GenericDeclaration.class","java\\lang\\reflect"),
>         new MyObj("AnnotatedElement.class","java\\lang\\reflect"),
>         new MyObj("GenericArrayType.class","java\\lang\\reflect"),
>         new MyObj("GenericDeclaration.class","java\\lang\\reflect"),
>         new MyObj("AnnotatedElement.class","java\\lang\\reflect"),
>         new MyObj("GenericArrayType.class","java\\lang\\reflect"),
>         new MyObj("GenericDeclaration.class","java\\lang\\reflect"),
>         new MyObj("AnnotatedElement.class","java\\lang\\reflect"),
>         new MyObj("GenericArrayType.class","java\\lang\\reflect"),
>         new MyObj("GenericDeclaration.class","java\\lang\\reflect"),
>         new MyObj("AnnotatedElement.class","java\\lang\\reflect"),
>         new MyObj("GenericArrayType.class","java\\lang\\reflect"),
>         new MyObj("GenericDeclaration.class","java\\lang\\reflect"),
>         new MyObj("AnnotatedElement.class","java\\lang\\reflect"),
>         new MyObj("GenericArrayType.class","java\\lang\\reflect"),
>         new MyObj("GenericDeclaration.class","java\\lang\\reflect"),
>         new MyObj("AnnotatedElement.class","java\\lang\\reflect"),
>         new MyObj("GenericArrayType.class","java\\lang\\reflect"),
>         new MyObj("GenericDeclaration.class","java\\lang\\reflect"),
>         new MyObj("AnnotatedElement.class","java\\lang\\reflect"),
>         new MyObj("GenericArrayType.class","java\\lang\\reflect"),
>         new MyObj("GenericDeclaration.class","java\\lang\\reflect"),
>         new MyObj("AnnotatedElement.class","java\\lang\\reflect"),
>         new MyObj("GenericArrayType.class","java\\lang\\reflect"),
>         new MyObj("GenericDeclaration.class","java\\lang\\reflect"),
>         new MyObj("AnnotatedElement.class","java\\lang\\reflect"),
>         new MyObj("GenericArrayType.class","java\\lang\\reflect"),
>         new MyObj("GenericDeclaration.class","java\\lang\\reflect"),
>         new MyObj("AnnotatedElement.class","java\\lang\\reflect"),
>         new MyObj("GenericArrayType.class","java\\lang\\reflect"),
>         new MyObj("GenericDeclaration.class","java\\lang\\reflect"),
>         new MyObj("AnnotatedElement.class","java\\lang\\reflect"),
>         new MyObj("GenericArrayType.class","java\\lang\\reflect"),
>         new MyObj("GenericDeclaration.class","java\\lang\\reflect"),
>         
>             };
>             
>  
>             
>             public static void main(String[] args) {
>                         for (int i = 0; i <1000000; i ++) {
>                          int from = -Arrays.binarySearch(arr,
>                 new MyObj(String.valueOf(Character.MIN_VALUE), "java\\lang")) - 1;
>                         int to = -Arrays.binarySearch(arr,
>                 new MyObj(String.valueOf(Character.MAX_VALUE), "java\\lang")) - 1;
>                          if (to != 37 || from !=30) { 
>                             System.out.println("CRASH" + from + " " + to +  "(loop: " + i + ")");
>                             System.exit(0);
>                          }   
>                }       
>                         
>             }
> }

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (HARMONY-5067) [drlvm][jit] Incorrect string comparison

Posted by "Evgeniya Maenkova (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/HARMONY-5067?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Evgeniya Maenkova updated HARMONY-5067:
---------------------------------------

    Attachment: Test.java

test case

> [drlvm][jit] Incorrect string comparison
> ----------------------------------------
>
>                 Key: HARMONY-5067
>                 URL: https://issues.apache.org/jira/browse/HARMONY-5067
>             Project: Harmony
>          Issue Type: Bug
>          Components: DRLVM
>         Environment: windows32
>            Reporter: Evgeniya Maenkova
>         Attachments: Test.java
>
>
> The test mentioned below produces incorrect resuls starting from some iteration(r591816), works fine with interpreter. This bug isn;t reproducible on, say, r572955.
> C:\ecl_311_ws\SPECjvm2007\bin1>C:\Harmony_to_run\trunk\working_vm\build\win_ia32_msvc_release\deploy\jdk\jre\bin\java -cp . Test
> CRASH30 30(loop: 199751) 
> C:\ecl_311_ws\SPECjvm2007\bin1>C:\Harmony_to_run\trunk\working_vm\build\win_ia32_msvc_release\deploy\jdk\jre\bin\java -Xint Test 
> C:\ecl_311_ws\SPECjvm2007\bin1>
>  Test:
> import java.util.Arrays;
>  
> public class Test {
>             public static class MyObj implements Comparable<MyObj> {
>                         String dir;
>                         String name;
>                         public MyObj(String name, String dir) {
>                                     this.dir = dir;
>                                     this.name = name;
>                         }
>                         
>                         public int compareTo(MyObj other) {                                    
>                     String otherD = other.dir;                
>                     if (dir != otherD) {
>                         int c = dir.compareTo(otherD);
>                         if (c != 0)
>                             return c;
>                     }
>                     return name.compareTo(other.name);
>                 }
>  
>             }
>             
>             static MyObj[] arr = new MyObj[] {              
>                         new MyObj("WriteAbortedException.class","java\\io"),
>                         new MyObj("Writer.class","java\\io"),
>                         new MyObj("WriteAbortedException.class","java\\io"),
>                         new MyObj("Writer.class","java\\io"),
>                         new MyObj("WriteAbortedException.class","java\\io"),
>                         new MyObj("Writer.class","java\\io"),
>                         new MyObj("WriteAbortedException.class","java\\io"),
>                         new MyObj("Writer.class","java\\io"),
>                         new MyObj("WriteAbortedException.class","java\\io"),
>                         new MyObj("Writer.class","java\\io"),
>                         new MyObj("WriteAbortedException.class","java\\io"),
>                         new MyObj("Writer.class","java\\io"),
>                         new MyObj("WriteAbortedException.class","java\\io"),
>                         new MyObj("Writer.class","java\\io"),
>                         new MyObj("WriteAbortedException.class","java\\io"),
>                         new MyObj("Writer.class","java\\io"),
>                         new MyObj("WriteAbortedException.class","java\\io"),
>                         new MyObj("Writer.class","java\\io"),
>                         new MyObj("WriteAbortedException.class","java\\io"),
>                         new MyObj("Writer.class","java\\io"),
>                         new MyObj("WriteAbortedException.class","java\\io"),
>                         new MyObj("Writer.class","java\\io"),
>                         new MyObj("WriteAbortedException.class","java\\io"),
>                         new MyObj("Writer.class","java\\io"),
>                         new MyObj("WriteAbortedException.class","java\\io"),
>                         new MyObj("Writer.class","java\\io"),
>                         new MyObj("WriteAbortedException.class","java\\io"),
>                         new MyObj("Writer.class","java\\io"),            
>                         new MyObj("WriteAbortedException.class","java\\io"),
>                         new MyObj("Writer.class","java\\io"),
>                         new MyObj("AbstractMethodError.class","java\\lang"),
>         new MyObj("AbstractStringBuilder.class","java\\lang"),
>         new MyObj("Appendable.class","java\\lang"),        
>         new MyObj("VirtualMachineError.class","java\\lang"),
>         new MyObj("Void.class","java\\lang"),
>         new MyObj("ref","java\\lang"),
>         new MyObj("reflect","java\\lang"),
>         new MyObj("ReferenceQueue.class","java\\lang\\ref"),
>         new MyObj("AnnotatedElement.class","java\\lang\\reflect"),
>         new MyObj("GenericArrayType.class","java\\lang\\reflect"),
>         new MyObj("GenericDeclaration.class","java\\lang\\reflect"),
>         new MyObj("AnnotatedElement.class","java\\lang\\reflect"),
>         new MyObj("GenericArrayType.class","java\\lang\\reflect"),
>         new MyObj("GenericDeclaration.class","java\\lang\\reflect"),
>         new MyObj("AnnotatedElement.class","java\\lang\\reflect"),
>         new MyObj("GenericArrayType.class","java\\lang\\reflect"),
>         new MyObj("GenericDeclaration.class","java\\lang\\reflect"),
>         new MyObj("AnnotatedElement.class","java\\lang\\reflect"),
>         new MyObj("GenericArrayType.class","java\\lang\\reflect"),
>         new MyObj("GenericDeclaration.class","java\\lang\\reflect"),
>         new MyObj("AnnotatedElement.class","java\\lang\\reflect"),
>         new MyObj("GenericArrayType.class","java\\lang\\reflect"),
>         new MyObj("GenericDeclaration.class","java\\lang\\reflect"),
>         new MyObj("AnnotatedElement.class","java\\lang\\reflect"),
>         new MyObj("GenericArrayType.class","java\\lang\\reflect"),
>         new MyObj("GenericDeclaration.class","java\\lang\\reflect"),
>         new MyObj("AnnotatedElement.class","java\\lang\\reflect"),
>         new MyObj("GenericArrayType.class","java\\lang\\reflect"),
>         new MyObj("GenericDeclaration.class","java\\lang\\reflect"),
>         new MyObj("AnnotatedElement.class","java\\lang\\reflect"),
>         new MyObj("GenericArrayType.class","java\\lang\\reflect"),
>         new MyObj("GenericDeclaration.class","java\\lang\\reflect"),
>         new MyObj("AnnotatedElement.class","java\\lang\\reflect"),
>         new MyObj("GenericArrayType.class","java\\lang\\reflect"),
>         new MyObj("GenericDeclaration.class","java\\lang\\reflect"),
>         new MyObj("AnnotatedElement.class","java\\lang\\reflect"),
>         new MyObj("GenericArrayType.class","java\\lang\\reflect"),
>         new MyObj("GenericDeclaration.class","java\\lang\\reflect"),
>         new MyObj("AnnotatedElement.class","java\\lang\\reflect"),
>         new MyObj("GenericArrayType.class","java\\lang\\reflect"),
>         new MyObj("GenericDeclaration.class","java\\lang\\reflect"),
>         new MyObj("AnnotatedElement.class","java\\lang\\reflect"),
>         new MyObj("GenericArrayType.class","java\\lang\\reflect"),
>         new MyObj("GenericDeclaration.class","java\\lang\\reflect"),
>         new MyObj("AnnotatedElement.class","java\\lang\\reflect"),
>         new MyObj("GenericArrayType.class","java\\lang\\reflect"),
>         new MyObj("GenericDeclaration.class","java\\lang\\reflect"),
>         new MyObj("AnnotatedElement.class","java\\lang\\reflect"),
>         new MyObj("GenericArrayType.class","java\\lang\\reflect"),
>         new MyObj("GenericDeclaration.class","java\\lang\\reflect"),
>         new MyObj("AnnotatedElement.class","java\\lang\\reflect"),
>         new MyObj("GenericArrayType.class","java\\lang\\reflect"),
>         new MyObj("GenericDeclaration.class","java\\lang\\reflect"),
>         new MyObj("AnnotatedElement.class","java\\lang\\reflect"),
>         new MyObj("GenericArrayType.class","java\\lang\\reflect"),
>         new MyObj("GenericDeclaration.class","java\\lang\\reflect"),
>         
>             };
>             
>  
>             
>             public static void main(String[] args) {
>                         for (int i = 0; i <1000000; i ++) {
>                          int from = -Arrays.binarySearch(arr,
>                 new MyObj(String.valueOf(Character.MIN_VALUE), "java\\lang")) - 1;
>                         int to = -Arrays.binarySearch(arr,
>                 new MyObj(String.valueOf(Character.MAX_VALUE), "java\\lang")) - 1;
>                          if (to != 37 || from !=30) { 
>                             System.out.println("CRASH" + from + " " + to +  "(loop: " + i + ")");
>                             System.exit(0);
>                          }   
>                }       
>                         
>             }
> }

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Assigned: (HARMONY-5067) [drlvm][jit] Incorrect string comparison

Posted by "Alexey Varlamov (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/HARMONY-5067?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Alexey Varlamov reassigned HARMONY-5067:
----------------------------------------

    Assignee: Alexey Varlamov

> [drlvm][jit] Incorrect string comparison
> ----------------------------------------
>
>                 Key: HARMONY-5067
>                 URL: https://issues.apache.org/jira/browse/HARMONY-5067
>             Project: Harmony
>          Issue Type: Bug
>          Components: DRLVM
>         Environment: windows32
>            Reporter: Evgeniya Maenkova
>            Assignee: Alexey Varlamov
>         Attachments: HARMONY-5067_fix_and_regtest.patch, Test.java, Test_2.java, Test_2.java
>
>
> The test mentioned below produces incorrect resuls starting from some iteration(r591816), works fine with interpreter. This bug isn;t reproducible on, say, r572955.
> C:\ecl_311_ws\SPECjvm2007\bin1>C:\Harmony_to_run\trunk\working_vm\build\win_ia32_msvc_release\deploy\jdk\jre\bin\java -cp . Test
> CRASH30 30(loop: 199751) 
> C:\ecl_311_ws\SPECjvm2007\bin1>C:\Harmony_to_run\trunk\working_vm\build\win_ia32_msvc_release\deploy\jdk\jre\bin\java -Xint Test 
> C:\ecl_311_ws\SPECjvm2007\bin1>
>  Test:
> import java.util.Arrays;
>  
> public class Test {
>             public static class MyObj implements Comparable<MyObj> {
>                         String dir;
>                         String name;
>                         public MyObj(String name, String dir) {
>                                     this.dir = dir;
>                                     this.name = name;
>                         }
>                         
>                         public int compareTo(MyObj other) {                                    
>                     String otherD = other.dir;                
>                     if (dir != otherD) {
>                         int c = dir.compareTo(otherD);
>                         if (c != 0)
>                             return c;
>                     }
>                     return name.compareTo(other.name);
>                 }
>  
>             }
>             
>             static MyObj[] arr = new MyObj[] {              
>                         new MyObj("WriteAbortedException.class","java\\io"),
>                         new MyObj("Writer.class","java\\io"),
>                         new MyObj("WriteAbortedException.class","java\\io"),
>                         new MyObj("Writer.class","java\\io"),
>                         new MyObj("WriteAbortedException.class","java\\io"),
>                         new MyObj("Writer.class","java\\io"),
>                         new MyObj("WriteAbortedException.class","java\\io"),
>                         new MyObj("Writer.class","java\\io"),
>                         new MyObj("WriteAbortedException.class","java\\io"),
>                         new MyObj("Writer.class","java\\io"),
>                         new MyObj("WriteAbortedException.class","java\\io"),
>                         new MyObj("Writer.class","java\\io"),
>                         new MyObj("WriteAbortedException.class","java\\io"),
>                         new MyObj("Writer.class","java\\io"),
>                         new MyObj("WriteAbortedException.class","java\\io"),
>                         new MyObj("Writer.class","java\\io"),
>                         new MyObj("WriteAbortedException.class","java\\io"),
>                         new MyObj("Writer.class","java\\io"),
>                         new MyObj("WriteAbortedException.class","java\\io"),
>                         new MyObj("Writer.class","java\\io"),
>                         new MyObj("WriteAbortedException.class","java\\io"),
>                         new MyObj("Writer.class","java\\io"),
>                         new MyObj("WriteAbortedException.class","java\\io"),
>                         new MyObj("Writer.class","java\\io"),
>                         new MyObj("WriteAbortedException.class","java\\io"),
>                         new MyObj("Writer.class","java\\io"),
>                         new MyObj("WriteAbortedException.class","java\\io"),
>                         new MyObj("Writer.class","java\\io"),            
>                         new MyObj("WriteAbortedException.class","java\\io"),
>                         new MyObj("Writer.class","java\\io"),
>                         new MyObj("AbstractMethodError.class","java\\lang"),
>         new MyObj("AbstractStringBuilder.class","java\\lang"),
>         new MyObj("Appendable.class","java\\lang"),        
>         new MyObj("VirtualMachineError.class","java\\lang"),
>         new MyObj("Void.class","java\\lang"),
>         new MyObj("ref","java\\lang"),
>         new MyObj("reflect","java\\lang"),
>         new MyObj("ReferenceQueue.class","java\\lang\\ref"),
>         new MyObj("AnnotatedElement.class","java\\lang\\reflect"),
>         new MyObj("GenericArrayType.class","java\\lang\\reflect"),
>         new MyObj("GenericDeclaration.class","java\\lang\\reflect"),
>         new MyObj("AnnotatedElement.class","java\\lang\\reflect"),
>         new MyObj("GenericArrayType.class","java\\lang\\reflect"),
>         new MyObj("GenericDeclaration.class","java\\lang\\reflect"),
>         new MyObj("AnnotatedElement.class","java\\lang\\reflect"),
>         new MyObj("GenericArrayType.class","java\\lang\\reflect"),
>         new MyObj("GenericDeclaration.class","java\\lang\\reflect"),
>         new MyObj("AnnotatedElement.class","java\\lang\\reflect"),
>         new MyObj("GenericArrayType.class","java\\lang\\reflect"),
>         new MyObj("GenericDeclaration.class","java\\lang\\reflect"),
>         new MyObj("AnnotatedElement.class","java\\lang\\reflect"),
>         new MyObj("GenericArrayType.class","java\\lang\\reflect"),
>         new MyObj("GenericDeclaration.class","java\\lang\\reflect"),
>         new MyObj("AnnotatedElement.class","java\\lang\\reflect"),
>         new MyObj("GenericArrayType.class","java\\lang\\reflect"),
>         new MyObj("GenericDeclaration.class","java\\lang\\reflect"),
>         new MyObj("AnnotatedElement.class","java\\lang\\reflect"),
>         new MyObj("GenericArrayType.class","java\\lang\\reflect"),
>         new MyObj("GenericDeclaration.class","java\\lang\\reflect"),
>         new MyObj("AnnotatedElement.class","java\\lang\\reflect"),
>         new MyObj("GenericArrayType.class","java\\lang\\reflect"),
>         new MyObj("GenericDeclaration.class","java\\lang\\reflect"),
>         new MyObj("AnnotatedElement.class","java\\lang\\reflect"),
>         new MyObj("GenericArrayType.class","java\\lang\\reflect"),
>         new MyObj("GenericDeclaration.class","java\\lang\\reflect"),
>         new MyObj("AnnotatedElement.class","java\\lang\\reflect"),
>         new MyObj("GenericArrayType.class","java\\lang\\reflect"),
>         new MyObj("GenericDeclaration.class","java\\lang\\reflect"),
>         new MyObj("AnnotatedElement.class","java\\lang\\reflect"),
>         new MyObj("GenericArrayType.class","java\\lang\\reflect"),
>         new MyObj("GenericDeclaration.class","java\\lang\\reflect"),
>         new MyObj("AnnotatedElement.class","java\\lang\\reflect"),
>         new MyObj("GenericArrayType.class","java\\lang\\reflect"),
>         new MyObj("GenericDeclaration.class","java\\lang\\reflect"),
>         new MyObj("AnnotatedElement.class","java\\lang\\reflect"),
>         new MyObj("GenericArrayType.class","java\\lang\\reflect"),
>         new MyObj("GenericDeclaration.class","java\\lang\\reflect"),
>         new MyObj("AnnotatedElement.class","java\\lang\\reflect"),
>         new MyObj("GenericArrayType.class","java\\lang\\reflect"),
>         new MyObj("GenericDeclaration.class","java\\lang\\reflect"),
>         new MyObj("AnnotatedElement.class","java\\lang\\reflect"),
>         new MyObj("GenericArrayType.class","java\\lang\\reflect"),
>         new MyObj("GenericDeclaration.class","java\\lang\\reflect"),
>         new MyObj("AnnotatedElement.class","java\\lang\\reflect"),
>         new MyObj("GenericArrayType.class","java\\lang\\reflect"),
>         new MyObj("GenericDeclaration.class","java\\lang\\reflect"),
>         
>             };
>             
>  
>             
>             public static void main(String[] args) {
>                         for (int i = 0; i <1000000; i ++) {
>                          int from = -Arrays.binarySearch(arr,
>                 new MyObj(String.valueOf(Character.MIN_VALUE), "java\\lang")) - 1;
>                         int to = -Arrays.binarySearch(arr,
>                 new MyObj(String.valueOf(Character.MAX_VALUE), "java\\lang")) - 1;
>                          if (to != 37 || from !=30) { 
>                             System.out.println("CRASH" + from + " " + to +  "(loop: " + i + ")");
>                             System.exit(0);
>                          }   
>                }       
>                         
>             }
> }

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Resolved: (HARMONY-5067) [drlvm][jit] Incorrect string comparison

Posted by "Alexey Varlamov (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/HARMONY-5067?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Alexey Varlamov resolved HARMONY-5067.
--------------------------------------

    Resolution: Fixed

Applied at revision: 592640, thanks!

> [drlvm][jit] Incorrect string comparison
> ----------------------------------------
>
>                 Key: HARMONY-5067
>                 URL: https://issues.apache.org/jira/browse/HARMONY-5067
>             Project: Harmony
>          Issue Type: Bug
>          Components: DRLVM
>         Environment: windows32
>            Reporter: Evgeniya Maenkova
>            Assignee: Alexey Varlamov
>         Attachments: HARMONY-5067_fix_and_regtest.patch, Test.java, Test_2.java, Test_2.java
>
>
> The test mentioned below produces incorrect resuls starting from some iteration(r591816), works fine with interpreter. This bug isn;t reproducible on, say, r572955.
> C:\ecl_311_ws\SPECjvm2007\bin1>C:\Harmony_to_run\trunk\working_vm\build\win_ia32_msvc_release\deploy\jdk\jre\bin\java -cp . Test
> CRASH30 30(loop: 199751) 
> C:\ecl_311_ws\SPECjvm2007\bin1>C:\Harmony_to_run\trunk\working_vm\build\win_ia32_msvc_release\deploy\jdk\jre\bin\java -Xint Test 
> C:\ecl_311_ws\SPECjvm2007\bin1>
>  Test:
> import java.util.Arrays;
>  
> public class Test {
>             public static class MyObj implements Comparable<MyObj> {
>                         String dir;
>                         String name;
>                         public MyObj(String name, String dir) {
>                                     this.dir = dir;
>                                     this.name = name;
>                         }
>                         
>                         public int compareTo(MyObj other) {                                    
>                     String otherD = other.dir;                
>                     if (dir != otherD) {
>                         int c = dir.compareTo(otherD);
>                         if (c != 0)
>                             return c;
>                     }
>                     return name.compareTo(other.name);
>                 }
>  
>             }
>             
>             static MyObj[] arr = new MyObj[] {              
>                         new MyObj("WriteAbortedException.class","java\\io"),
>                         new MyObj("Writer.class","java\\io"),
>                         new MyObj("WriteAbortedException.class","java\\io"),
>                         new MyObj("Writer.class","java\\io"),
>                         new MyObj("WriteAbortedException.class","java\\io"),
>                         new MyObj("Writer.class","java\\io"),
>                         new MyObj("WriteAbortedException.class","java\\io"),
>                         new MyObj("Writer.class","java\\io"),
>                         new MyObj("WriteAbortedException.class","java\\io"),
>                         new MyObj("Writer.class","java\\io"),
>                         new MyObj("WriteAbortedException.class","java\\io"),
>                         new MyObj("Writer.class","java\\io"),
>                         new MyObj("WriteAbortedException.class","java\\io"),
>                         new MyObj("Writer.class","java\\io"),
>                         new MyObj("WriteAbortedException.class","java\\io"),
>                         new MyObj("Writer.class","java\\io"),
>                         new MyObj("WriteAbortedException.class","java\\io"),
>                         new MyObj("Writer.class","java\\io"),
>                         new MyObj("WriteAbortedException.class","java\\io"),
>                         new MyObj("Writer.class","java\\io"),
>                         new MyObj("WriteAbortedException.class","java\\io"),
>                         new MyObj("Writer.class","java\\io"),
>                         new MyObj("WriteAbortedException.class","java\\io"),
>                         new MyObj("Writer.class","java\\io"),
>                         new MyObj("WriteAbortedException.class","java\\io"),
>                         new MyObj("Writer.class","java\\io"),
>                         new MyObj("WriteAbortedException.class","java\\io"),
>                         new MyObj("Writer.class","java\\io"),            
>                         new MyObj("WriteAbortedException.class","java\\io"),
>                         new MyObj("Writer.class","java\\io"),
>                         new MyObj("AbstractMethodError.class","java\\lang"),
>         new MyObj("AbstractStringBuilder.class","java\\lang"),
>         new MyObj("Appendable.class","java\\lang"),        
>         new MyObj("VirtualMachineError.class","java\\lang"),
>         new MyObj("Void.class","java\\lang"),
>         new MyObj("ref","java\\lang"),
>         new MyObj("reflect","java\\lang"),
>         new MyObj("ReferenceQueue.class","java\\lang\\ref"),
>         new MyObj("AnnotatedElement.class","java\\lang\\reflect"),
>         new MyObj("GenericArrayType.class","java\\lang\\reflect"),
>         new MyObj("GenericDeclaration.class","java\\lang\\reflect"),
>         new MyObj("AnnotatedElement.class","java\\lang\\reflect"),
>         new MyObj("GenericArrayType.class","java\\lang\\reflect"),
>         new MyObj("GenericDeclaration.class","java\\lang\\reflect"),
>         new MyObj("AnnotatedElement.class","java\\lang\\reflect"),
>         new MyObj("GenericArrayType.class","java\\lang\\reflect"),
>         new MyObj("GenericDeclaration.class","java\\lang\\reflect"),
>         new MyObj("AnnotatedElement.class","java\\lang\\reflect"),
>         new MyObj("GenericArrayType.class","java\\lang\\reflect"),
>         new MyObj("GenericDeclaration.class","java\\lang\\reflect"),
>         new MyObj("AnnotatedElement.class","java\\lang\\reflect"),
>         new MyObj("GenericArrayType.class","java\\lang\\reflect"),
>         new MyObj("GenericDeclaration.class","java\\lang\\reflect"),
>         new MyObj("AnnotatedElement.class","java\\lang\\reflect"),
>         new MyObj("GenericArrayType.class","java\\lang\\reflect"),
>         new MyObj("GenericDeclaration.class","java\\lang\\reflect"),
>         new MyObj("AnnotatedElement.class","java\\lang\\reflect"),
>         new MyObj("GenericArrayType.class","java\\lang\\reflect"),
>         new MyObj("GenericDeclaration.class","java\\lang\\reflect"),
>         new MyObj("AnnotatedElement.class","java\\lang\\reflect"),
>         new MyObj("GenericArrayType.class","java\\lang\\reflect"),
>         new MyObj("GenericDeclaration.class","java\\lang\\reflect"),
>         new MyObj("AnnotatedElement.class","java\\lang\\reflect"),
>         new MyObj("GenericArrayType.class","java\\lang\\reflect"),
>         new MyObj("GenericDeclaration.class","java\\lang\\reflect"),
>         new MyObj("AnnotatedElement.class","java\\lang\\reflect"),
>         new MyObj("GenericArrayType.class","java\\lang\\reflect"),
>         new MyObj("GenericDeclaration.class","java\\lang\\reflect"),
>         new MyObj("AnnotatedElement.class","java\\lang\\reflect"),
>         new MyObj("GenericArrayType.class","java\\lang\\reflect"),
>         new MyObj("GenericDeclaration.class","java\\lang\\reflect"),
>         new MyObj("AnnotatedElement.class","java\\lang\\reflect"),
>         new MyObj("GenericArrayType.class","java\\lang\\reflect"),
>         new MyObj("GenericDeclaration.class","java\\lang\\reflect"),
>         new MyObj("AnnotatedElement.class","java\\lang\\reflect"),
>         new MyObj("GenericArrayType.class","java\\lang\\reflect"),
>         new MyObj("GenericDeclaration.class","java\\lang\\reflect"),
>         new MyObj("AnnotatedElement.class","java\\lang\\reflect"),
>         new MyObj("GenericArrayType.class","java\\lang\\reflect"),
>         new MyObj("GenericDeclaration.class","java\\lang\\reflect"),
>         new MyObj("AnnotatedElement.class","java\\lang\\reflect"),
>         new MyObj("GenericArrayType.class","java\\lang\\reflect"),
>         new MyObj("GenericDeclaration.class","java\\lang\\reflect"),
>         new MyObj("AnnotatedElement.class","java\\lang\\reflect"),
>         new MyObj("GenericArrayType.class","java\\lang\\reflect"),
>         new MyObj("GenericDeclaration.class","java\\lang\\reflect"),
>         
>             };
>             
>  
>             
>             public static void main(String[] args) {
>                         for (int i = 0; i <1000000; i ++) {
>                          int from = -Arrays.binarySearch(arr,
>                 new MyObj(String.valueOf(Character.MIN_VALUE), "java\\lang")) - 1;
>                         int to = -Arrays.binarySearch(arr,
>                 new MyObj(String.valueOf(Character.MAX_VALUE), "java\\lang")) - 1;
>                          if (to != 37 || from !=30) { 
>                             System.out.println("CRASH" + from + " " + to +  "(loop: " + i + ")");
>                             System.exit(0);
>                          }   
>                }       
>                         
>             }
> }

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (HARMONY-5067) [drlvm][jit] Incorrect string comparison

Posted by "Dmitry Pronichkin (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HARMONY-5067?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12540415 ] 

Dmitry Pronichkin commented on HARMONY-5067:
--------------------------------------------

Excuse me for a mistake:
actually, SUB instruction sign extends operands too. So we need to manually zero extend second symbol. Overall:
movzx eax,word ptr [esi]
movzx esi,word ptr [edi]
sub eax, esi

> [drlvm][jit] Incorrect string comparison
> ----------------------------------------
>
>                 Key: HARMONY-5067
>                 URL: https://issues.apache.org/jira/browse/HARMONY-5067
>             Project: Harmony
>          Issue Type: Bug
>          Components: DRLVM
>         Environment: windows32
>            Reporter: Evgeniya Maenkova
>         Attachments: Test.java, Test_2.java, Test_2.java
>
>
> The test mentioned below produces incorrect resuls starting from some iteration(r591816), works fine with interpreter. This bug isn;t reproducible on, say, r572955.
> C:\ecl_311_ws\SPECjvm2007\bin1>C:\Harmony_to_run\trunk\working_vm\build\win_ia32_msvc_release\deploy\jdk\jre\bin\java -cp . Test
> CRASH30 30(loop: 199751) 
> C:\ecl_311_ws\SPECjvm2007\bin1>C:\Harmony_to_run\trunk\working_vm\build\win_ia32_msvc_release\deploy\jdk\jre\bin\java -Xint Test 
> C:\ecl_311_ws\SPECjvm2007\bin1>
>  Test:
> import java.util.Arrays;
>  
> public class Test {
>             public static class MyObj implements Comparable<MyObj> {
>                         String dir;
>                         String name;
>                         public MyObj(String name, String dir) {
>                                     this.dir = dir;
>                                     this.name = name;
>                         }
>                         
>                         public int compareTo(MyObj other) {                                    
>                     String otherD = other.dir;                
>                     if (dir != otherD) {
>                         int c = dir.compareTo(otherD);
>                         if (c != 0)
>                             return c;
>                     }
>                     return name.compareTo(other.name);
>                 }
>  
>             }
>             
>             static MyObj[] arr = new MyObj[] {              
>                         new MyObj("WriteAbortedException.class","java\\io"),
>                         new MyObj("Writer.class","java\\io"),
>                         new MyObj("WriteAbortedException.class","java\\io"),
>                         new MyObj("Writer.class","java\\io"),
>                         new MyObj("WriteAbortedException.class","java\\io"),
>                         new MyObj("Writer.class","java\\io"),
>                         new MyObj("WriteAbortedException.class","java\\io"),
>                         new MyObj("Writer.class","java\\io"),
>                         new MyObj("WriteAbortedException.class","java\\io"),
>                         new MyObj("Writer.class","java\\io"),
>                         new MyObj("WriteAbortedException.class","java\\io"),
>                         new MyObj("Writer.class","java\\io"),
>                         new MyObj("WriteAbortedException.class","java\\io"),
>                         new MyObj("Writer.class","java\\io"),
>                         new MyObj("WriteAbortedException.class","java\\io"),
>                         new MyObj("Writer.class","java\\io"),
>                         new MyObj("WriteAbortedException.class","java\\io"),
>                         new MyObj("Writer.class","java\\io"),
>                         new MyObj("WriteAbortedException.class","java\\io"),
>                         new MyObj("Writer.class","java\\io"),
>                         new MyObj("WriteAbortedException.class","java\\io"),
>                         new MyObj("Writer.class","java\\io"),
>                         new MyObj("WriteAbortedException.class","java\\io"),
>                         new MyObj("Writer.class","java\\io"),
>                         new MyObj("WriteAbortedException.class","java\\io"),
>                         new MyObj("Writer.class","java\\io"),
>                         new MyObj("WriteAbortedException.class","java\\io"),
>                         new MyObj("Writer.class","java\\io"),            
>                         new MyObj("WriteAbortedException.class","java\\io"),
>                         new MyObj("Writer.class","java\\io"),
>                         new MyObj("AbstractMethodError.class","java\\lang"),
>         new MyObj("AbstractStringBuilder.class","java\\lang"),
>         new MyObj("Appendable.class","java\\lang"),        
>         new MyObj("VirtualMachineError.class","java\\lang"),
>         new MyObj("Void.class","java\\lang"),
>         new MyObj("ref","java\\lang"),
>         new MyObj("reflect","java\\lang"),
>         new MyObj("ReferenceQueue.class","java\\lang\\ref"),
>         new MyObj("AnnotatedElement.class","java\\lang\\reflect"),
>         new MyObj("GenericArrayType.class","java\\lang\\reflect"),
>         new MyObj("GenericDeclaration.class","java\\lang\\reflect"),
>         new MyObj("AnnotatedElement.class","java\\lang\\reflect"),
>         new MyObj("GenericArrayType.class","java\\lang\\reflect"),
>         new MyObj("GenericDeclaration.class","java\\lang\\reflect"),
>         new MyObj("AnnotatedElement.class","java\\lang\\reflect"),
>         new MyObj("GenericArrayType.class","java\\lang\\reflect"),
>         new MyObj("GenericDeclaration.class","java\\lang\\reflect"),
>         new MyObj("AnnotatedElement.class","java\\lang\\reflect"),
>         new MyObj("GenericArrayType.class","java\\lang\\reflect"),
>         new MyObj("GenericDeclaration.class","java\\lang\\reflect"),
>         new MyObj("AnnotatedElement.class","java\\lang\\reflect"),
>         new MyObj("GenericArrayType.class","java\\lang\\reflect"),
>         new MyObj("GenericDeclaration.class","java\\lang\\reflect"),
>         new MyObj("AnnotatedElement.class","java\\lang\\reflect"),
>         new MyObj("GenericArrayType.class","java\\lang\\reflect"),
>         new MyObj("GenericDeclaration.class","java\\lang\\reflect"),
>         new MyObj("AnnotatedElement.class","java\\lang\\reflect"),
>         new MyObj("GenericArrayType.class","java\\lang\\reflect"),
>         new MyObj("GenericDeclaration.class","java\\lang\\reflect"),
>         new MyObj("AnnotatedElement.class","java\\lang\\reflect"),
>         new MyObj("GenericArrayType.class","java\\lang\\reflect"),
>         new MyObj("GenericDeclaration.class","java\\lang\\reflect"),
>         new MyObj("AnnotatedElement.class","java\\lang\\reflect"),
>         new MyObj("GenericArrayType.class","java\\lang\\reflect"),
>         new MyObj("GenericDeclaration.class","java\\lang\\reflect"),
>         new MyObj("AnnotatedElement.class","java\\lang\\reflect"),
>         new MyObj("GenericArrayType.class","java\\lang\\reflect"),
>         new MyObj("GenericDeclaration.class","java\\lang\\reflect"),
>         new MyObj("AnnotatedElement.class","java\\lang\\reflect"),
>         new MyObj("GenericArrayType.class","java\\lang\\reflect"),
>         new MyObj("GenericDeclaration.class","java\\lang\\reflect"),
>         new MyObj("AnnotatedElement.class","java\\lang\\reflect"),
>         new MyObj("GenericArrayType.class","java\\lang\\reflect"),
>         new MyObj("GenericDeclaration.class","java\\lang\\reflect"),
>         new MyObj("AnnotatedElement.class","java\\lang\\reflect"),
>         new MyObj("GenericArrayType.class","java\\lang\\reflect"),
>         new MyObj("GenericDeclaration.class","java\\lang\\reflect"),
>         new MyObj("AnnotatedElement.class","java\\lang\\reflect"),
>         new MyObj("GenericArrayType.class","java\\lang\\reflect"),
>         new MyObj("GenericDeclaration.class","java\\lang\\reflect"),
>         new MyObj("AnnotatedElement.class","java\\lang\\reflect"),
>         new MyObj("GenericArrayType.class","java\\lang\\reflect"),
>         new MyObj("GenericDeclaration.class","java\\lang\\reflect"),
>         new MyObj("AnnotatedElement.class","java\\lang\\reflect"),
>         new MyObj("GenericArrayType.class","java\\lang\\reflect"),
>         new MyObj("GenericDeclaration.class","java\\lang\\reflect"),
>         
>             };
>             
>  
>             
>             public static void main(String[] args) {
>                         for (int i = 0; i <1000000; i ++) {
>                          int from = -Arrays.binarySearch(arr,
>                 new MyObj(String.valueOf(Character.MIN_VALUE), "java\\lang")) - 1;
>                         int to = -Arrays.binarySearch(arr,
>                 new MyObj(String.valueOf(Character.MAX_VALUE), "java\\lang")) - 1;
>                          if (to != 37 || from !=30) { 
>                             System.out.println("CRASH" + from + " " + to +  "(loop: " + i + ")");
>                             System.exit(0);
>                          }   
>                }       
>                         
>             }
> }

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (HARMONY-5067) [drlvm][jit] Incorrect string comparison

Posted by "George Timoshenko (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/HARMONY-5067?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

George Timoshenko updated HARMONY-5067:
---------------------------------------

    Attachment: Test_2.java

I made a smaller test.

the bug is reproducible when String_compareTo optimization is turned on.
To disable it use:

-XX:jit.arg.String_compareTo_as_magic=false

> [drlvm][jit] Incorrect string comparison
> ----------------------------------------
>
>                 Key: HARMONY-5067
>                 URL: https://issues.apache.org/jira/browse/HARMONY-5067
>             Project: Harmony
>          Issue Type: Bug
>          Components: DRLVM
>         Environment: windows32
>            Reporter: Evgeniya Maenkova
>         Attachments: Test.java, Test_2.java
>
>
> The test mentioned below produces incorrect resuls starting from some iteration(r591816), works fine with interpreter. This bug isn;t reproducible on, say, r572955.
> C:\ecl_311_ws\SPECjvm2007\bin1>C:\Harmony_to_run\trunk\working_vm\build\win_ia32_msvc_release\deploy\jdk\jre\bin\java -cp . Test
> CRASH30 30(loop: 199751) 
> C:\ecl_311_ws\SPECjvm2007\bin1>C:\Harmony_to_run\trunk\working_vm\build\win_ia32_msvc_release\deploy\jdk\jre\bin\java -Xint Test 
> C:\ecl_311_ws\SPECjvm2007\bin1>
>  Test:
> import java.util.Arrays;
>  
> public class Test {
>             public static class MyObj implements Comparable<MyObj> {
>                         String dir;
>                         String name;
>                         public MyObj(String name, String dir) {
>                                     this.dir = dir;
>                                     this.name = name;
>                         }
>                         
>                         public int compareTo(MyObj other) {                                    
>                     String otherD = other.dir;                
>                     if (dir != otherD) {
>                         int c = dir.compareTo(otherD);
>                         if (c != 0)
>                             return c;
>                     }
>                     return name.compareTo(other.name);
>                 }
>  
>             }
>             
>             static MyObj[] arr = new MyObj[] {              
>                         new MyObj("WriteAbortedException.class","java\\io"),
>                         new MyObj("Writer.class","java\\io"),
>                         new MyObj("WriteAbortedException.class","java\\io"),
>                         new MyObj("Writer.class","java\\io"),
>                         new MyObj("WriteAbortedException.class","java\\io"),
>                         new MyObj("Writer.class","java\\io"),
>                         new MyObj("WriteAbortedException.class","java\\io"),
>                         new MyObj("Writer.class","java\\io"),
>                         new MyObj("WriteAbortedException.class","java\\io"),
>                         new MyObj("Writer.class","java\\io"),
>                         new MyObj("WriteAbortedException.class","java\\io"),
>                         new MyObj("Writer.class","java\\io"),
>                         new MyObj("WriteAbortedException.class","java\\io"),
>                         new MyObj("Writer.class","java\\io"),
>                         new MyObj("WriteAbortedException.class","java\\io"),
>                         new MyObj("Writer.class","java\\io"),
>                         new MyObj("WriteAbortedException.class","java\\io"),
>                         new MyObj("Writer.class","java\\io"),
>                         new MyObj("WriteAbortedException.class","java\\io"),
>                         new MyObj("Writer.class","java\\io"),
>                         new MyObj("WriteAbortedException.class","java\\io"),
>                         new MyObj("Writer.class","java\\io"),
>                         new MyObj("WriteAbortedException.class","java\\io"),
>                         new MyObj("Writer.class","java\\io"),
>                         new MyObj("WriteAbortedException.class","java\\io"),
>                         new MyObj("Writer.class","java\\io"),
>                         new MyObj("WriteAbortedException.class","java\\io"),
>                         new MyObj("Writer.class","java\\io"),            
>                         new MyObj("WriteAbortedException.class","java\\io"),
>                         new MyObj("Writer.class","java\\io"),
>                         new MyObj("AbstractMethodError.class","java\\lang"),
>         new MyObj("AbstractStringBuilder.class","java\\lang"),
>         new MyObj("Appendable.class","java\\lang"),        
>         new MyObj("VirtualMachineError.class","java\\lang"),
>         new MyObj("Void.class","java\\lang"),
>         new MyObj("ref","java\\lang"),
>         new MyObj("reflect","java\\lang"),
>         new MyObj("ReferenceQueue.class","java\\lang\\ref"),
>         new MyObj("AnnotatedElement.class","java\\lang\\reflect"),
>         new MyObj("GenericArrayType.class","java\\lang\\reflect"),
>         new MyObj("GenericDeclaration.class","java\\lang\\reflect"),
>         new MyObj("AnnotatedElement.class","java\\lang\\reflect"),
>         new MyObj("GenericArrayType.class","java\\lang\\reflect"),
>         new MyObj("GenericDeclaration.class","java\\lang\\reflect"),
>         new MyObj("AnnotatedElement.class","java\\lang\\reflect"),
>         new MyObj("GenericArrayType.class","java\\lang\\reflect"),
>         new MyObj("GenericDeclaration.class","java\\lang\\reflect"),
>         new MyObj("AnnotatedElement.class","java\\lang\\reflect"),
>         new MyObj("GenericArrayType.class","java\\lang\\reflect"),
>         new MyObj("GenericDeclaration.class","java\\lang\\reflect"),
>         new MyObj("AnnotatedElement.class","java\\lang\\reflect"),
>         new MyObj("GenericArrayType.class","java\\lang\\reflect"),
>         new MyObj("GenericDeclaration.class","java\\lang\\reflect"),
>         new MyObj("AnnotatedElement.class","java\\lang\\reflect"),
>         new MyObj("GenericArrayType.class","java\\lang\\reflect"),
>         new MyObj("GenericDeclaration.class","java\\lang\\reflect"),
>         new MyObj("AnnotatedElement.class","java\\lang\\reflect"),
>         new MyObj("GenericArrayType.class","java\\lang\\reflect"),
>         new MyObj("GenericDeclaration.class","java\\lang\\reflect"),
>         new MyObj("AnnotatedElement.class","java\\lang\\reflect"),
>         new MyObj("GenericArrayType.class","java\\lang\\reflect"),
>         new MyObj("GenericDeclaration.class","java\\lang\\reflect"),
>         new MyObj("AnnotatedElement.class","java\\lang\\reflect"),
>         new MyObj("GenericArrayType.class","java\\lang\\reflect"),
>         new MyObj("GenericDeclaration.class","java\\lang\\reflect"),
>         new MyObj("AnnotatedElement.class","java\\lang\\reflect"),
>         new MyObj("GenericArrayType.class","java\\lang\\reflect"),
>         new MyObj("GenericDeclaration.class","java\\lang\\reflect"),
>         new MyObj("AnnotatedElement.class","java\\lang\\reflect"),
>         new MyObj("GenericArrayType.class","java\\lang\\reflect"),
>         new MyObj("GenericDeclaration.class","java\\lang\\reflect"),
>         new MyObj("AnnotatedElement.class","java\\lang\\reflect"),
>         new MyObj("GenericArrayType.class","java\\lang\\reflect"),
>         new MyObj("GenericDeclaration.class","java\\lang\\reflect"),
>         new MyObj("AnnotatedElement.class","java\\lang\\reflect"),
>         new MyObj("GenericArrayType.class","java\\lang\\reflect"),
>         new MyObj("GenericDeclaration.class","java\\lang\\reflect"),
>         new MyObj("AnnotatedElement.class","java\\lang\\reflect"),
>         new MyObj("GenericArrayType.class","java\\lang\\reflect"),
>         new MyObj("GenericDeclaration.class","java\\lang\\reflect"),
>         new MyObj("AnnotatedElement.class","java\\lang\\reflect"),
>         new MyObj("GenericArrayType.class","java\\lang\\reflect"),
>         new MyObj("GenericDeclaration.class","java\\lang\\reflect"),
>         new MyObj("AnnotatedElement.class","java\\lang\\reflect"),
>         new MyObj("GenericArrayType.class","java\\lang\\reflect"),
>         new MyObj("GenericDeclaration.class","java\\lang\\reflect"),
>         
>             };
>             
>  
>             
>             public static void main(String[] args) {
>                         for (int i = 0; i <1000000; i ++) {
>                          int from = -Arrays.binarySearch(arr,
>                 new MyObj(String.valueOf(Character.MIN_VALUE), "java\\lang")) - 1;
>                         int to = -Arrays.binarySearch(arr,
>                 new MyObj(String.valueOf(Character.MAX_VALUE), "java\\lang")) - 1;
>                          if (to != 37 || from !=30) { 
>                             System.out.println("CRASH" + from + " " + to +  "(loop: " + i + ")");
>                             System.exit(0);
>                          }   
>                }       
>                         
>             }
> }

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.