You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@harmony.apache.org by Mikhail Loenko <ml...@gmail.com> on 2006/06/16 06:14:07 UTC
[classlib][util] HARMONY-574: Java 5 Enhancement:new class java.util.PriorityQueue
Hi Paulex!
fyi the following method:
public int compare(Object object1, Object object2) {
// test cast
E e1 = (E) object1;
E e2 = (E) object2;
return 0;
}
compiles to the following bytecode:
0: aload_1
1: astore_3
2: aload_2
3: astore 4
5: iconst_0
6: ireturn
So, it does not have any cast testing.
I'll slightly update the test if you don't mind
Thanks,
Mikhail
---------------------------------------------------------------------
Terms of use : http://incubator.apache.org/harmony/mailing.html
To unsubscribe, e-mail: harmony-dev-unsubscribe@incubator.apache.org
For additional commands, e-mail: harmony-dev-help@incubator.apache.org
Re: [classlib][util] HARMONY-574: Java 5 Enhancement:new class java.util.PriorityQueue
Posted by Paulex Yang <pa...@gmail.com>.
Mikhail Loenko wrote:
> One more wtih the tests:
>
> /**
> * @tests serialization/deserialization compatibility with RI.
> */
> public void test_SerializationCompatibility() throws Exception {
> Integer[] array = { 2, 45, 7, -12, 9, 23, 17, 1118, 10, 16, 39 };
> List<Integer> list = Arrays.asList(array);
> PriorityQueue<Integer> srcIntegerQueue = new
> PriorityQueue<Integer>(
> list);
> PriorityQueue<Integer> destStringQueue =
> (PriorityQueue<Integer>) SerializationTester
> .readObject(srcIntegerQueue, SERIALIZATION_FILE_NAME);
> }
>
> /**
> * @tests serialization/deserialization compatibility with RI.
> */
> public void test_SerializationCompatibility_cast() throws Exception {
> Integer[] array = { 2, 45, 7, -12, 9, 23, 17, 1118, 10, 16, 39 };
> List<Integer> list = Arrays.asList(array);
> PriorityQueue<Integer> srcIntegerQueue = new
> PriorityQueue<Integer>(
> list);
> PriorityQueue<String> destStringQueue =
> (PriorityQueue<String>) SerializationTester
> .readObject(srcIntegerQueue, SERIALIZATION_FILE_NAME);
>
> // will not incur class cast exception.
> Object o = destStringQueue.peek();
> Arrays.sort(array);
> Integer I = (Integer) o;
> assertEquals(array[0], I);
> }
>
> the first test differs from the beginning of the second one in the
> following lines:
> --- first test
> PriorityQueue<Integer> destStringQueue =
> (PriorityQueue<Integer>) SerializationTester
> .readObject(srcIntegerQueue, SERIALIZATION_FILE_NAME);
> --- second test
> PriorityQueue<String> destStringQueue =
> (PriorityQueue<String>) SerializationTester
> .readObject(srcIntegerQueue, SERIALIZATION_FILE_NAME);
>
> But these line in both cases compile into the following:
>
> 160: invokestatic #88; //Method
> tests/util/SerializationTester.readObject:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
>
> 163: checkcast #2; //class PriorityQueue
> 166: astore 4
>
> So the first test is a subset of the second one and thus I'll remove it.
>
> Thanks,
> Mikhail
>
> 2006/6/16, Mikhail Loenko <ml...@gmail.com>:
>> Hi Paulex!
>>
>> fyi the following method:
>>
>> public int compare(Object object1, Object object2) {
>> // test cast
>> E e1 = (E) object1;
>> E e2 = (E) object2;
>> return 0;
>> }
>>
>> compiles to the following bytecode:
>>
>> 0: aload_1
>> 1: astore_3
>> 2: aload_2
>> 3: astore 4
>> 5: iconst_0
>> 6: ireturn
>>
>> So, it does not have any cast testing.
You are right, thank you to point it out, Mikhail.
>>
>> I'll slightly update the test if you don't mind
Of course not:).
>>
>>
>> Thanks,
>> Mikhail
>>
>
> ---------------------------------------------------------------------
> Terms of use : http://incubator.apache.org/harmony/mailing.html
> To unsubscribe, e-mail: harmony-dev-unsubscribe@incubator.apache.org
> For additional commands, e-mail: harmony-dev-help@incubator.apache.org
>
>
--
Paulex Yang
China Software Development Lab
IBM
---------------------------------------------------------------------
Terms of use : http://incubator.apache.org/harmony/mailing.html
To unsubscribe, e-mail: harmony-dev-unsubscribe@incubator.apache.org
For additional commands, e-mail: harmony-dev-help@incubator.apache.org
Re: [classlib][util] HARMONY-574: Java 5 Enhancement:new class java.util.PriorityQueue
Posted by Mikhail Loenko <ml...@gmail.com>.
One more wtih the tests:
/**
* @tests serialization/deserialization compatibility with RI.
*/
public void test_SerializationCompatibility() throws Exception {
Integer[] array = { 2, 45, 7, -12, 9, 23, 17, 1118, 10, 16, 39 };
List<Integer> list = Arrays.asList(array);
PriorityQueue<Integer> srcIntegerQueue = new PriorityQueue<Integer>(
list);
PriorityQueue<Integer> destStringQueue =
(PriorityQueue<Integer>) SerializationTester
.readObject(srcIntegerQueue, SERIALIZATION_FILE_NAME);
}
/**
* @tests serialization/deserialization compatibility with RI.
*/
public void test_SerializationCompatibility_cast() throws Exception {
Integer[] array = { 2, 45, 7, -12, 9, 23, 17, 1118, 10, 16, 39 };
List<Integer> list = Arrays.asList(array);
PriorityQueue<Integer> srcIntegerQueue = new PriorityQueue<Integer>(
list);
PriorityQueue<String> destStringQueue =
(PriorityQueue<String>) SerializationTester
.readObject(srcIntegerQueue, SERIALIZATION_FILE_NAME);
// will not incur class cast exception.
Object o = destStringQueue.peek();
Arrays.sort(array);
Integer I = (Integer) o;
assertEquals(array[0], I);
}
the first test differs from the beginning of the second one in the
following lines:
--- first test
PriorityQueue<Integer> destStringQueue =
(PriorityQueue<Integer>) SerializationTester
.readObject(srcIntegerQueue, SERIALIZATION_FILE_NAME);
--- second test
PriorityQueue<String> destStringQueue =
(PriorityQueue<String>) SerializationTester
.readObject(srcIntegerQueue, SERIALIZATION_FILE_NAME);
But these line in both cases compile into the following:
160: invokestatic #88; //Method
tests/util/SerializationTester.readObject:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
163: checkcast #2; //class PriorityQueue
166: astore 4
So the first test is a subset of the second one and thus I'll remove it.
Thanks,
Mikhail
2006/6/16, Mikhail Loenko <ml...@gmail.com>:
> Hi Paulex!
>
> fyi the following method:
>
> public int compare(Object object1, Object object2) {
> // test cast
> E e1 = (E) object1;
> E e2 = (E) object2;
> return 0;
> }
>
> compiles to the following bytecode:
>
> 0: aload_1
> 1: astore_3
> 2: aload_2
> 3: astore 4
> 5: iconst_0
> 6: ireturn
>
> So, it does not have any cast testing.
>
> I'll slightly update the test if you don't mind
>
> Thanks,
> Mikhail
>
---------------------------------------------------------------------
Terms of use : http://incubator.apache.org/harmony/mailing.html
To unsubscribe, e-mail: harmony-dev-unsubscribe@incubator.apache.org
For additional commands, e-mail: harmony-dev-help@incubator.apache.org