Hi, can we make `size()` and `length()` as deprecated, then write new methods ?


Best.


------------------ 原始邮件 ------------------
发件人:&nbsp;"Peter Levart"<peter.lev...@gmail.com&gt;;
发送时间:&nbsp;2019年9月5日(星期四) 晚上10:24
收件人:&nbsp;"Ivan 
Gerasimov"<ivan.gerasi...@oracle.com&gt;;"未来阳光"<2217232...@qq.com&gt;;"core-libs-dev"<core-libs-dev@openjdk.java.net&gt;;

主题:&nbsp;Re: Reply: what to do next to fix JDK-8230557. thanks



Hi Ivan,

On 9/5/19 11:22 AM, Ivan Gerasimov wrote:
&gt; Hello!
&gt;
&gt; BitSet is known to be flawed in many ways:&nbsp; its size(), length(), 
&gt; cardinality() and nextClearBit​() can return meaningless negative values.
&gt;
&gt; I was thinking about disallowing setting any index greater than 
&gt; (Integer.MAX_VALUE - 63), for example by throwing OutOfMemoryError.

An index of Integer.MAX_VALUE - 64 would be the greatest index then, an 
index of Integer.MAX_VALUE - 63 already needs an array of longs of 
length 2^25 which results in BitSet size() of 2^31 ...

&gt;
&gt; We could do it without changing the specification.

The calls to: new BitSet(Integer.MAX_VALUE - 63) ... new 
BitSet(Integer.MAX_VALUE) would also have to throw then.
BitSet.valueOf(...) methods don't even check the passed in arguments 
lengths, so size() can really return a meaningless negative or positive 
number. They all would have to throw if the passed-in length of 
array/buffer is too large.

So would you not specify when those methods throw?

Regards, Peter

&gt;
&gt; With kind regards,
&gt;
&gt; Ivan
&gt;
&gt;
&gt; On 9/5/19 1:16 AM, 未来阳光 wrote:
&gt;&gt; Hi, Peter.
&gt;&gt;
&gt;&gt;
&gt;&gt; I understand your point, but I think it's unreasonable for the reason 
&gt;&gt; that source code compatibility problem, it's really a bug.
&gt;&gt;
&gt;&gt;
&gt;&gt; User can't understand why the size method return a negative number.
&gt;&gt;
&gt;&gt;
&gt;&gt;
&gt;&gt; &amp;nbsp;
&gt;&gt;
&gt;&gt;
&gt;&gt; Best, lamber-ken
&gt;&gt;
&gt;&gt;
&gt;&gt;
&gt;&gt;
&gt;&gt; ------------------&amp;nbsp;原始邮件&amp;nbsp;------------------
&gt;&gt; 发件人:&amp;nbsp;"Peter Levart"<peter.lev...@gmail.com&amp;gt;;
&gt;&gt; 发送时间:&amp;nbsp;2019年9月5日(星期四) 下午3:51
&gt;&gt; 
收件人:&amp;nbsp;"未来阳光"<2217232...@qq.com&amp;gt;;"core-libs-dev"<core-libs-dev@openjdk.java.net&amp;gt;;
 
&gt;&gt;
&gt;&gt; 抄送:&amp;nbsp;"David Holmes"<david.hol...@oracle.com&amp;gt;;
&gt;&gt; 主题:&amp;nbsp;Re: 回复: 回复: what to do next to fix JDK-8230557. thanks
&gt;&gt;
&gt;&gt;
&gt;&gt;
&gt;&gt; Hi 未来阳光,
&gt;&gt;
&gt;&gt; As David has pointed out, your proposed fix would break binary and
&gt;&gt; source compatibility of BitSet.size() method, so it is not acceptable.
&gt;&gt;
&gt;&gt; BitSet API allows addressing individual bits using non-negative 'int'
&gt;&gt; typed indexes (analogous to indexes of Java arrays). The range of
&gt;&gt; indexes is: 0 ... 2^31 - 1 (0 ... Integer.MAX_VALUE). The maximum 
"size"
&gt;&gt; of BitSet is therefore 2^31. Unfortunately, this value can't be
&gt;&gt; "corectly" represented with signed 32 bit integer (int). Only in this
&gt;&gt; corner case, - 2^31 (Integer.MIN_VALUE) is the interpreted value
&gt;&gt; returned from size(). If one would interpret it as unsigned 32 bit
&gt;&gt; integer value, it is entirely correct. For example, this holds:
&gt;&gt;
&gt;&gt; Integer.toUnsignedLong(new BitSet(Integer.MAX_VALUE).size()) == 1L << 
31
&gt;&gt;
&gt;&gt; It is also always true what javadoc says about size(): "The maximum
&gt;&gt; element in the set is the size - 1st element"
&gt;&gt;
&gt;&gt; The following holds also for this corner case:
&gt;&gt;
&gt;&gt; new BitSet(Integer.MAX_VALUE).size() - 1 == Integer.MAX_VALUE;
&gt;&gt;
&gt;&gt; So perhaps, the fix could be just to describe this corner case in the
&gt;&gt; spec. And perhaps, to support the following use case in the corner 
case:
&gt;&gt;
&gt;&gt; BitSet set1 = ...
&gt;&gt; ...
&gt;&gt;
&gt;&gt; BitSet set2 = new BitSet(set1.size());
&gt;&gt;
&gt;&gt; ... by modifying the BitSet constructor to accept the Integer.MIN_VALUE
&gt;&gt; in addition to all the non-negative values as the 'nbits' parameter.
&gt;&gt;
&gt;&gt; What do you think?
&gt;&gt;
&gt;&gt; Regards, Peter
&gt;&gt;
&gt;&gt; On 9/5/19 8:31 AM, David Holmes wrote:
&gt;&gt; &amp;gt; Hi,
&gt;&gt; &amp;gt;
&gt;&gt; &amp;gt; On 5/09/2019 4:11 pm, 未来阳光 wrote:
&gt;&gt; &amp;gt;&amp;gt;
&gt;&gt; &amp;gt;&amp;gt; Thanks very much.
&gt;&gt; &amp;gt;&amp;gt;
&gt;&gt; &amp;gt;&amp;gt; *BUG-LINK:* 
https://bugs.openjdk.java.net/browse/JDK-8230557
&gt;&gt; &amp;gt;&amp;gt;
&gt;&gt; &amp;gt;&amp;gt; *Describe: *
&gt;&gt; &amp;gt;&amp;gt; the return type of the method BitSet#size is int, so 
the 
&gt;&gt; method may
&gt;&gt; &amp;gt;&amp;gt; return a negative value in some case, for example, 
will return
&gt;&gt; &amp;gt;&amp;gt; -2147483648.
&gt;&gt; &amp;gt;&amp;gt; ```
&gt;&gt; &amp;gt;&amp;gt; BitSet bitSet = new BitSet(Integer.MAX_VALUE);
&gt;&gt; &amp;gt;&amp;gt; for (int i = 0; i < Integer.MAX_VALUE - 1000; i++) {
&gt;&gt; &amp;gt;&amp;gt; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;bitSet.set(i);
&gt;&gt; &amp;gt;&amp;gt; }
&gt;&gt; &amp;gt;&amp;gt; System.out.println(bitSet.size());
&gt;&gt; &amp;gt;&amp;gt; ```
&gt;&gt; &amp;gt;&amp;gt; EXPECTED: 2147483648, but ACTUAL: -2147483648.
&gt;&gt; &amp;gt;&amp;gt;
&gt;&gt; &amp;gt;&amp;gt; *FIX*
&gt;&gt; &amp;gt;&amp;gt; I have put the patch in the attachment of the mail.
&gt;&gt; &amp;gt;
&gt;&gt; &amp;gt; In case the attachment got stripped form the mailing list the 
&gt;&gt; proposed
&gt;&gt; &amp;gt; fix is:
&gt;&gt; &amp;gt;
&gt;&gt; &amp;gt; -&amp;nbsp;&amp;nbsp;&amp;nbsp; public int size() {
&gt;&gt; &amp;gt; 
-&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return 
words.length 
&gt;&gt; * BITS_PER_WORD;
&gt;&gt; &amp;gt; +&amp;nbsp;&amp;nbsp;&amp;nbsp; public long size() {
&gt;&gt; &amp;gt; 
+&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return 
(long) 
&gt;&gt; words.length * BITS_PER_WORD;
&gt;&gt; &amp;gt;
&gt;&gt; &amp;gt; Unfortunately this simple fix it not possible. You can't just 
&gt;&gt; change
&gt;&gt; &amp;gt; the return type of the method to long as that is a 
&gt;&gt; source-incompatible
&gt;&gt; &amp;gt; change and would not be approved [1]. Instead the return 
value 
&gt;&gt; should
&gt;&gt; &amp;gt; be capped at Integer.MAX_VALUE - but I'll leave that for 
someone 
&gt;&gt; from
&gt;&gt; &amp;gt; core-libs team to pick up. Also look at the evaluation in:
&gt;&gt; &amp;gt;
&gt;&gt; &amp;gt; https://bugs.openjdk.java.net/browse/JDK-4213570
&gt;&gt; &amp;gt;
&gt;&gt; &amp;gt; Cheers,
&gt;&gt; &amp;gt; David
&gt;&gt; &amp;gt;
&gt;&gt; &amp;gt; [1] https://wiki.openjdk.java.net/display/csr/CSR+FAQs
&gt;&gt; &amp;gt;
&gt;&gt; &amp;gt;
&gt;&gt; &amp;gt;
&gt;&gt; &amp;gt;&amp;gt;
&gt;&gt; &amp;gt;&amp;gt; 
------------------&amp;nbsp;原始邮件&amp;nbsp;------------------
&gt;&gt; &amp;gt;&amp;gt; *发件人:*&amp;nbsp;"David 
Holmes"<david.hol...@oracle.com&amp;gt;;
&gt;&gt; &amp;gt;&amp;gt; *发送时间:*&amp;nbsp;2019年9月5日(星期四) 下午2:00
&gt;&gt; &amp;gt;&amp;gt; 
&gt;&gt; 
*收件人:*&amp;nbsp;"未来阳光"<2217232...@qq.com&amp;gt;;"core-libs-dev"<core-libs-
&gt;&gt; &amp;gt;&amp;gt; d...@openjdk.java.net&amp;gt;;
&gt;&gt; &amp;gt;&amp;gt; *主题:*&amp;nbsp;Re: 回复: what to do next to fix 
JDK-8230557. 
&gt;&gt; thanks
&gt;&gt; &amp;gt;&amp;gt;
&gt;&gt; &amp;gt;&amp;gt; On 5/09/2019 3:46 pm, 未来阳光 wrote:
&gt;&gt; &amp;gt;&amp;gt; &amp;nbsp;&amp;gt;
&gt;&gt; &amp;gt;&amp;gt; &amp;nbsp;&amp;gt; hi, developers.
&gt;&gt; &amp;gt;&amp;gt; &amp;nbsp;&amp;gt;
&gt;&gt; &amp;gt;&amp;gt; &amp;nbsp;&amp;gt; Can someone help me? thanks very 
much !!
&gt;&gt; &amp;gt;&amp;gt;
&gt;&gt; &amp;gt;&amp;gt; Help you how exactly. As I stated your are up to step 
2 of 
&gt;&gt; the how to
&gt;&gt; &amp;gt;&amp;gt; contribute process. If you have a suggested fix for 
the bug 
&gt;&gt; then put
&gt;&gt; &amp;gt;&amp;gt; that in an email as described.
&gt;&gt; &amp;gt;&amp;gt;
&gt;&gt; &amp;gt;&amp;gt; Thanks,
&gt;&gt; &amp;gt;&amp;gt; David
&gt;&gt; &amp;gt;&amp;gt;
&gt;&gt; &amp;gt;&amp;gt; &amp;nbsp;&amp;gt;
&gt;&gt; &amp;gt;&amp;gt; &amp;nbsp;&amp;gt; 
&gt;&gt; ------------------&amp;nbsp;原始邮件&amp;nbsp;------------------
&gt;&gt; &amp;gt;&amp;gt; &amp;nbsp;&amp;gt; *发件人:*&amp;nbsp;"David 
&gt;&gt; Holmes"<david.hol...@oracle.com&amp;gt;;
&gt;&gt; &amp;gt;&amp;gt; &amp;nbsp;&amp;gt; *发送时间:*&amp;nbsp;2019年9月5日(星期四) 
中午1:44
&gt;&gt; &amp;gt;&amp;gt; &amp;nbsp;&amp;gt; 
&gt;&gt; 
*收件人:*&amp;nbsp;"未来阳光"<2217232...@qq.com&amp;gt;;"core-libs-dev"<core-libs-
&gt;&gt; &amp;gt;&amp;gt; &amp;nbsp;&amp;gt; d...@openjdk.java.net&amp;gt;;
&gt;&gt; &amp;gt;&amp;gt; &amp;nbsp;&amp;gt; *主题:*&amp;nbsp;Re: what to do next 
to fix 
&gt;&gt; JDK-8230557. thanks
&gt;&gt; &amp;gt;&amp;gt; &amp;nbsp;&amp;gt;
&gt;&gt; &amp;gt;&amp;gt; &amp;nbsp;&amp;gt; On 5/09/2019 3:35 pm, 未来阳光 wrote:
&gt;&gt; &amp;gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;nbsp; &amp;gt; Hi, leaders.
&gt;&gt; &amp;gt;&amp;gt; &amp;nbsp;&amp;gt;
&gt;&gt; &amp;gt;&amp;gt; &amp;nbsp;&amp;gt; Hi,
&gt;&gt; &amp;gt;&amp;gt; &amp;nbsp;&amp;gt;
&gt;&gt; &amp;gt;&amp;gt; &amp;nbsp;&amp;gt; No "leaders" here only developers 
:)
&gt;&gt; &amp;gt;&amp;gt; &amp;nbsp;&amp;gt;
&gt;&gt; &amp;gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;nbsp; &amp;gt;
&gt;&gt; &amp;gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;nbsp; &amp;gt; A few days ago, 
I report a bug in core 
&gt;&gt; lib[1]. According to the
&gt;&gt; &amp;gt;&amp;gt; &amp;nbsp;&amp;gt; contribute document[2], I had send 
oca to oracle 
&gt;&gt; and&amp;amp;nbsp;my name has
&gt;&gt; &amp;gt;&amp;gt; &amp;nbsp;&amp;gt; been listed on&amp;amp;nbsp;oca[3].
&gt;&gt; &amp;gt;&amp;gt; &amp;nbsp;&amp;gt;
&gt;&gt; &amp;gt;&amp;gt; &amp;nbsp;&amp;gt; Welcome aboard!
&gt;&gt; &amp;gt;&amp;gt; &amp;nbsp;&amp;gt;
&gt;&gt; &amp;gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;nbsp; &amp;gt; But I still 
can't push my changes to 
&gt;&gt; jdk, can someone tell me
&gt;&gt; &amp;gt;&amp;gt; how to
&gt;&gt; &amp;gt;&amp;gt; &amp;nbsp;&amp;gt; do next? thanks very match!!
&gt;&gt; &amp;gt;&amp;gt; &amp;nbsp;&amp;gt;
&gt;&gt; &amp;gt;&amp;gt; &amp;nbsp;&amp;gt; You can't push anything until you 
become a 
&gt;&gt; Committer and before
&gt;&gt; &amp;gt;&amp;gt; that you
&gt;&gt; &amp;gt;&amp;gt; &amp;nbsp;&amp;gt; have to become an Author. The 
steps for 
&gt;&gt; contributing are outlined
&gt;&gt; &amp;gt;&amp;gt; here:
&gt;&gt; &amp;gt;&amp;gt; &amp;nbsp;&amp;gt;
&gt;&gt; &amp;gt;&amp;gt; &amp;nbsp;&amp;gt; http://openjdk.java.net/contribute/
&gt;&gt; &amp;gt;&amp;gt; &amp;nbsp;&amp;gt;
&gt;&gt; &amp;gt;&amp;gt; &amp;nbsp;&amp;gt; and you would seem to be up to 
step 2. :)
&gt;&gt; &amp;gt;&amp;gt; &amp;nbsp;&amp;gt;
&gt;&gt; &amp;gt;&amp;gt; &amp;nbsp;&amp;gt; Cheers,
&gt;&gt; &amp;gt;&amp;gt; &amp;nbsp;&amp;gt; David
&gt;&gt; &amp;gt;&amp;gt; &amp;nbsp;&amp;gt;
&gt;&gt; &amp;gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;nbsp; &amp;gt;
&gt;&gt; &amp;gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;nbsp; &amp;gt;
&gt;&gt; &amp;gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;nbsp; &amp;gt;
&gt;&gt; &amp;gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;nbsp; &amp;gt;
&gt;&gt; &amp;gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;nbsp; &amp;gt; 
&gt;&gt; [1]https://bugs.openjdk.java.net/browse/JDK-8230557
&gt;&gt; &amp;gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;nbsp; &amp;gt;
&gt;&gt; &amp;gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;nbsp; &amp;gt; 
[2]http://openjdk.java.net/contribute/
&gt;&gt; &amp;gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;nbsp; &amp;gt; 
&gt;&gt; [3]https://www.oracle.com/technetwork/community/oca-486395.html
&gt;&gt; &amp;gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;nbsp; &amp;gt;
&gt;&gt; &amp;gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;nbsp; &amp;gt;
&gt;&gt; &amp;gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;nbsp; &amp;gt;
&gt;&gt; &amp;gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;nbsp; &amp;gt;
&gt;&gt; &amp;gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;nbsp; &amp;gt;
&gt;&gt; &amp;gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;nbsp; &amp;gt; 
&gt;&gt; ------------------&amp;amp;nbsp;原始邮件&amp;amp;nbsp;------------------
&gt;&gt; &amp;gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;nbsp; &amp;gt; 
发件人:&amp;amp;nbsp;"Bug Report
&gt;&gt; &amp;gt;&amp;gt; &amp;nbsp;&amp;gt; 
&gt;&gt; Notification"<bug-report-daemon...@oracle.com&amp;amp;gt;;
&gt;&gt; &amp;gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;nbsp; &amp;gt; 
发送时间:&amp;amp;nbsp;2019年9月5日(星期四) 
&gt;&gt; 凌晨3:33
&gt;&gt; &amp;gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;nbsp; &amp;gt; 
&gt;&gt; 收件人:&amp;amp;nbsp;"未来阳光"<2217232...@qq.com&amp;amp;gt;;
&gt;&gt; &amp;gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;nbsp; &amp;gt;
&gt;&gt; &amp;gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;nbsp; &amp;gt; 
主题:&amp;amp;nbsp;Update Notification: Bug 
&gt;&gt; Report&amp;nbsp; - JDK-8230557
&gt;&gt; &amp;gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;nbsp; &amp;gt;
&gt;&gt; &amp;gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;nbsp; &amp;gt;
&gt;&gt; &amp;gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;nbsp; &amp;gt;
&gt;&gt; &amp;gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;nbsp; &amp;gt;
&gt;&gt; &amp;gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;nbsp; 
&gt;&gt; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
 
&gt;&gt; [This is an automated response. Please
&gt;&gt; &amp;gt;&amp;gt; do not
&gt;&gt; &amp;gt;&amp;gt; &amp;nbsp;&amp;gt; reply.]
&gt;&gt; &amp;gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;nbsp; &amp;gt; Dear Java 
Developer,
&gt;&gt; &amp;gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;nbsp; &amp;gt; We have 
finished evaluating your 
&gt;&gt; report and have assigned it a Bug
&gt;&gt; &amp;gt;&amp;gt; &amp;nbsp;&amp;gt; ID: JDK-8230557. The issue is 
visible on 
&gt;&gt; bugs.java.com at the
&gt;&gt; &amp;gt;&amp;gt; following
&gt;&gt; &amp;gt;&amp;gt; &amp;nbsp;&amp;gt; url JDK-8230557.
&gt;&gt; &amp;gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;nbsp; 
&gt;&gt; 
&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
 
&gt;&gt; To provide more information about this issue,
&gt;&gt; &amp;gt;&amp;gt; &amp;nbsp;&amp;gt; click&amp;nbsp; here.
&gt;&gt; &amp;gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;nbsp; 
&gt;&gt; 
&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
 
&gt;&gt; We work to resolve the issues that are
&gt;&gt; &amp;gt;&amp;gt; submitted to
&gt;&gt; &amp;gt;&amp;gt; &amp;nbsp;&amp;gt; us according to their impact to 
the community as 
&gt;&gt; a whole, and make no
&gt;&gt; &amp;gt;&amp;gt; &amp;nbsp;&amp;gt; promises as to the time or release 
in which a bug 
&gt;&gt; might be fixed. If
&gt;&gt; &amp;gt;&amp;gt; &amp;nbsp;&amp;gt; this issue has a significant 
impact on your 
&gt;&gt; project you may want to
&gt;&gt; &amp;gt;&amp;gt; &amp;nbsp;&amp;gt; consider using one of the 
technical support 
&gt;&gt; offerings available at
&gt;&gt; &amp;gt;&amp;gt; &amp;nbsp;&amp;gt; Oracle Support.
&gt;&gt; &amp;gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;nbsp; 
&gt;&gt; 
&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
 
&gt;&gt; Regards,
&gt;&gt; &amp;gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;nbsp; 
&gt;&gt; 
&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
 
&gt;&gt; Java Developer Support
&gt;&gt; &amp;gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;nbsp; &amp;gt;
&gt;&gt; &amp;gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;nbsp; &amp;gt;
&gt;&gt; &amp;gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;nbsp; &amp;gt;
&gt;&gt; &amp;gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;nbsp; &amp;gt;
&gt;&gt; &amp;gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;nbsp; &amp;gt;
&gt;&gt; &amp;gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;nbsp; &amp;gt; Java SE
&gt;&gt; &amp;gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;nbsp; 
&gt;&gt; 
&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
 
&gt;&gt; Java SE Documentation
&gt;&gt; &amp;gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;nbsp; 
&gt;&gt; 
&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
 
&gt;&gt; Java SE Downloads
&gt;&gt; &amp;gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;nbsp; 
&gt;&gt; 
&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
 
&gt;&gt; Java Developer Forums
&gt;&gt; &amp;gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;nbsp; 
&gt;&gt; 
&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
 
&gt;&gt; Oracle Java SE Advanced
&gt;&gt; &amp;gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;nbsp; 
&gt;&gt; 
&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
 
&gt;&gt; Bug Database
&gt;&gt; &amp;gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;nbsp; &amp;gt;
&gt;&gt; &amp;gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;nbsp; 
&gt;&gt; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
 
&gt;&gt; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
 
&gt;&gt; Copyright © Oracle
&gt;&gt; &amp;gt;&amp;gt; and/or
&gt;&gt; &amp;gt;&amp;gt; &amp;nbsp;&amp;gt; its affiliates. All rights 
reserved.
&gt;&gt; &amp;gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;nbsp; &amp;gt;
&gt;&gt; &amp;gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;nbsp; 
&gt;&gt; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
 
&gt;&gt; Terms of Use 
&gt;&gt; 
|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&gt;&gt; &amp;gt;&amp;gt; Privacy
&gt;&gt; &amp;gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;nbsp; &amp;gt;
&gt;

Reply via email to