ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/jsr166/jsr166/src/test/jtreg/util/TreeMap/HeadTailTypeError.java
Revision: 1.1
Committed: Tue Sep 1 01:27:19 2009 UTC (14 years, 9 months ago) by jsr166
Branch: MAIN
Log Message:
import tests from openjdk

File Contents

# User Rev Content
1 jsr166 1.1 /*
2     * Copyright 1999 Sun Microsystems, Inc. All Rights Reserved.
3     * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4     *
5     * This code is free software; you can redistribute it and/or modify it
6     * under the terms of the GNU General Public License version 2 only, as
7     * published by the Free Software Foundation.
8     *
9     * This code is distributed in the hope that it will be useful, but WITHOUT
10     * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11     * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
12     * version 2 for more details (a copy is included in the LICENSE file that
13     * accompanied this code).
14     *
15     * You should have received a copy of the GNU General Public License version
16     * 2 along with this work; if not, write to the Free Software Foundation,
17     * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18     *
19     * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
20     * CA 95054 USA or visit www.sun.com if you need additional information or
21     * have any questions.
22     */
23    
24     /*
25     @test
26     @bug 4251519 4251520
27     @summary indexOf and lastIndex of used to let you look outside the
28     valid range in the backing array
29     */
30    
31     import java.util.*;
32    
33     public class HeadTailTypeError {
34     public static void main(String argv[]) throws Exception {
35     try{
36     SortedMap m = new TreeMap();
37     m.headMap(new Object());
38     throw new Exception("headMap, natural ordering");
39     } catch (ClassCastException e) {
40     }
41    
42     try{
43     SortedMap m = new TreeMap();
44     m.tailMap(new Object());
45     throw new Exception("tailMap, natural ordering");
46     } catch (ClassCastException e) {
47     }
48    
49    
50     try{
51     SortedMap m = new TreeMap(String.CASE_INSENSITIVE_ORDER);
52     m.headMap(new Integer(0));
53     throw new Exception("headMap, explicit comparator");
54     } catch (ClassCastException e) {
55     }
56    
57     try{
58     SortedMap m = new TreeMap(String.CASE_INSENSITIVE_ORDER);
59     m.tailMap(new Integer(0));
60     throw new Exception("tailMap, explicit comparator");
61     } catch (ClassCastException e) {
62     }
63    
64     try{
65     SortedSet m = new TreeSet();
66     m.headSet(new Object());
67     throw new Exception("headSet, natural ordering");
68     } catch (ClassCastException e) {
69     }
70    
71     try{
72     SortedSet m = new TreeSet();
73     m.tailSet(new Object());
74     throw new Exception("tailSet, natural ordering");
75     } catch (ClassCastException e) {
76     }
77    
78     try{
79     SortedSet m = new TreeSet(String.CASE_INSENSITIVE_ORDER);
80     m.headSet(new Integer(0));
81     throw new Exception("headSet, explicit comparator");
82     } catch (ClassCastException e) {
83     }
84    
85     try{
86     SortedSet m = new TreeSet(String.CASE_INSENSITIVE_ORDER);
87     m.tailSet(new Integer(0));
88     throw new Exception("tailSet, explicit comparator");
89     } catch (ClassCastException e) {
90     }
91    
92     try{
93     SortedMap m = new TreeMap();
94     m.headMap(null);
95     throw new Exception("(null endpoint)headMap, natural ordering");
96     } catch (NullPointerException e) {
97     }
98    
99     try{
100     SortedMap m = new TreeMap();
101     m.tailMap(null);
102     throw new Exception("(null endpoint)tailMap, natural ordering");
103     } catch (NullPointerException e) {
104     }
105    
106    
107     try{
108     SortedMap m = new TreeMap(String.CASE_INSENSITIVE_ORDER);
109     m.headMap(null);
110     throw new Exception("(null endpoint)headMap, explicit comparator");
111     } catch (NullPointerException e) {
112     }
113    
114     try{
115     SortedMap m = new TreeMap(String.CASE_INSENSITIVE_ORDER);
116     m.tailMap(null);
117     throw new Exception("(null endpoint)tailMap, explicit comparator");
118     } catch (NullPointerException e) {
119     }
120    
121     try{
122     SortedSet m = new TreeSet();
123     m.headSet(null);
124     throw new Exception("(null endpoint)headSet, natural ordering");
125     } catch (NullPointerException e) {
126     }
127    
128     try{
129     SortedSet m = new TreeSet();
130     m.tailSet(null);
131     throw new Exception("(null endpoint)tailSet, natural ordering");
132     } catch (NullPointerException e) {
133     }
134    
135     try{
136     SortedSet m = new TreeSet(String.CASE_INSENSITIVE_ORDER);
137     m.headSet(null);
138     throw new Exception("(null endpoint)headSet, explicit comparator");
139     } catch (NullPointerException e) {
140     }
141    
142     try{
143     SortedSet m = new TreeSet(String.CASE_INSENSITIVE_ORDER);
144     m.tailSet(null);
145     throw new Exception("(null endpoint)tailSet, explicit comparator");
146     } catch (NullPointerException e) {
147     }
148    
149     // These should not fail
150     SortedMap m = new TreeMap();
151     m.headMap(new Integer(0));
152     m.tailMap(new Integer(0));
153     m = new TreeMap(String.CASE_INSENSITIVE_ORDER);
154     m.headMap("llama");
155     m.tailMap("llama");
156    
157     SortedSet s = new TreeSet();
158     s.headSet(new Integer(0));
159     s.tailSet(new Integer(0));
160     s = new TreeSet(String.CASE_INSENSITIVE_ORDER);
161     s.headSet("drama");
162     s.tailSet("drama");
163     }
164     }