This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

ada/8945: StringTokenizer


>Number:         8945
>Category:       ada
>Synopsis:       StringTokenizer
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sat Dec 14 23:16:00 PST 2002
>Closed-Date:
>Last-Modified:
>Originator:     Dhek Bhun Kho
>Release:        gcj-3.2.1
>Organization:
>Environment:
doesn't matter
>Description:
StringTokenizer doesn't function see PR8443. Here's new version. I rewrote it, The previous implementation was a bit crummy:
1) nullpointerexception with null as string
2) no delimiters
this fixes both, it's possible that there may be a more efficient implementation.
>How-To-Repeat:
use java.util.StringTokenizer from CVS or Release 3.2.1

and I kept wondering why my ant was coughing up exceptions.
>Fix:
add this to the CVS so at least you can jot down it's fixed in the cvs, cause it wasn't fixed in CVS when I checked this morning. if you need a rewrite for a nother class just mail me (at least as it's not the DoubleOrderedMap, or well, what the heck.)
>Release-Note:
>Audit-Trail:
>Unformatted:
----gnatsweb-attachment----
Content-Type: application/octet-stream; name="StringTokenizer.java"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="StringTokenizer.java"

LyogamF2YS51dGlsLlN0cmluZ1Rva2VuaXplcgogICBDb3B5cmlnaHQgKEMpIDE5OTgsIDE5OTks
IDIwMDEgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCgpUaGlzIGZpbGUgaXMgcGFydCBv
ZiBHTlUgQ2xhc3NwYXRoLgoKR05VIENsYXNzcGF0aCBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu
IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Cml0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg
R05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CnRoZSBGcmVlIFNvZnR3
YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIsIG9yIChhdCB5b3VyIG9wdGlvbikKYW55
IGxhdGVyIHZlcnNpb24uCgpHTlUgQ2xhc3NwYXRoIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3Bl
IHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dApXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91
dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCk1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCkdlbmVyYWwgUHVibGljIExp
Y2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KCllvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkg
b2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCmFsb25nIHdpdGggR05VIENsYXNzcGF0
aDsgc2VlIHRoZSBmaWxlIENPUFlJTkcuICBJZiBub3QsIHdyaXRlIHRvIHRoZQpGcmVlIFNvZnR3
YXJlIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24s
IE1BCjAyMTExLTEzMDcgVVNBLgoKTGlua2luZyB0aGlzIGxpYnJhcnkgc3RhdGljYWxseSBvciBk
eW5hbWljYWxseSB3aXRoIG90aGVyIG1vZHVsZXMgaXMKbWFraW5nIGEgY29tYmluZWQgd29yayBi
YXNlZCBvbiB0aGlzIGxpYnJhcnkuICBUaHVzLCB0aGUgdGVybXMgYW5kCmNvbmRpdGlvbnMgb2Yg
dGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGNvdmVyIHRoZSB3aG9sZQpjb21iaW5hdGlv
bi4KCkFzIGEgc3BlY2lhbCBleGNlcHRpb24sIHRoZSBjb3B5cmlnaHQgaG9sZGVycyBvZiB0aGlz
IGxpYnJhcnkgZ2l2ZSB5b3UKcGVybWlzc2lvbiB0byBsaW5rIHRoaXMgbGlicmFyeSB3aXRoIGlu
ZGVwZW5kZW50IG1vZHVsZXMgdG8gcHJvZHVjZSBhbgpleGVjdXRhYmxlLCByZWdhcmRsZXNzIG9m
IHRoZSBsaWNlbnNlIHRlcm1zIG9mIHRoZXNlIGluZGVwZW5kZW50Cm1vZHVsZXMsIGFuZCB0byBj
b3B5IGFuZCBkaXN0cmlidXRlIHRoZSByZXN1bHRpbmcgZXhlY3V0YWJsZSB1bmRlcgp0ZXJtcyBv
ZiB5b3VyIGNob2ljZSwgcHJvdmlkZWQgdGhhdCB5b3UgYWxzbyBtZWV0LCBmb3IgZWFjaCBsaW5r
ZWQKaW5kZXBlbmRlbnQgbW9kdWxlLCB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhlIGxp
Y2Vuc2Ugb2YgdGhhdAptb2R1bGUuICBBbiBpbmRlcGVuZGVudCBtb2R1bGUgaXMgYSBtb2R1bGUg
d2hpY2ggaXMgbm90IGRlcml2ZWQgZnJvbQpvciBiYXNlZCBvbiB0aGlzIGxpYnJhcnkuICBJZiB5
b3UgbW9kaWZ5IHRoaXMgbGlicmFyeSwgeW91IG1heSBleHRlbmQKdGhpcyBleGNlcHRpb24gdG8g
eW91ciB2ZXJzaW9uIG9mIHRoZSBsaWJyYXJ5LCBidXQgeW91IGFyZSBub3QKb2JsaWdhdGVkIHRv
IGRvIHNvLiAgSWYgeW91IGRvIG5vdCB3aXNoIHRvIGRvIHNvLCBkZWxldGUgdGhpcwpleGNlcHRp
b24gc3RhdGVtZW50IGZyb20geW91ciB2ZXJzaW9uLiAqLwoKCnBhY2thZ2UgamF2YS51dGlsOwoK
LyoqCiAqIFRoaXMgY2xhc3Mgc3BsaXRzIGEgc3RyaW5nIGludG8gdG9rZW5zLiAgVGhlIGNhbGxl
ciBjYW4gc2V0IG9uIHdoaWNoIAogKiBkZWxpbWl0ZXJzIHRoZSBzdHJpbmcgc2hvdWxkIGJlIHNw
bGl0IGFuZCBpZiB0aGUgZGVsaW1pdGVycyBzaG91bGQgYmUKICogcmV0dXJuZWQuCiAqCiAqIFlv
dSBtYXkgY2hhbmdlIHRoZSBkZWxpbWl0ZXIgc2V0IG9uIHRoZSBmbHkgYnkgY2FsbGluZwogKiBu
ZXh0VG9rZW4oU3RyaW5nKS4gIEJ1dCB0aGUgc2VtYW50aWMgaXMgcXVpdGUgZGlmZmljdWx0OyBp
dCBldmVuCiAqIGRlcGVuZHMgb24gY2FsbGluZyA8Y29kZT5oYXNNb3JlVG9rZW5zKCk8L2NvZGU+
LiAgWW91IHNob3VsZCBjYWxsCiAqIDxjb2RlPmhhc01vcmVUb2tlbnMoKTwvY29kZT4gYmVmb3Jl
LCBvdGhlcndpc2UgdGhlIG9sZCBkZWxpbWl0ZXJzCiAqIGFmdGVyIHRoZSBsYXN0IHRva2VuIGFy
ZSByZXR1cm5lZC4KICoKICogSWYgeW91IHdhbnQgdG8gZ2V0IHRoZSBkZWxpbWl0ZXJzLCB5b3Ug
aGF2ZSB0byB1c2UgdGhlIHRocmVlIGFyZ3VtZW50CiAqIGNvbnN0cnVjdG9yLiAgVGhlIGRlbGlt
aXRlcnMgYXJlIHJldHVybmVkIGFzIHRva2VuIGNvbnNpc3Rpbmcgb2YgYQogKiBzaW5nbGUgY2hh
cmFjdGVyLiAgCiAqCiAqIEBhdXRob3IgSm9jaGVuIEhvZW5pY2tlCiAqIEBhdXRob3IgV2FycmVu
IExldnkgPHdhcnJlbmxAY3lnbnVzLmNvbT4KICovCnB1YmxpYyBjbGFzcyBTdHJpbmdUb2tlbml6
ZXIgaW1wbGVtZW50cyBFbnVtZXJhdGlvbgp7CiAgLyoqCiAgICogVGhlIHBvc2l0aW9uIGluIHRo
ZSBzdHIsIHdoZXJlIHdlIGN1cnJlbnRseSBhcmUuCiAgICovCiAgcHJpdmF0ZSBpbnQgcG9zOwog
IC8qKgogICAqIFRoZSBzdHJpbmcgdGhhdCBzaG91bGQgYmUgc3BsaXQgaW50byB0b2tlbnMuCiAg
ICovCiAgcHJpdmF0ZSBTdHJpbmcgc3RyOwogIC8qKgogICAqIFRoZSBzdHJpbmcgY29udGFpbmlu
ZyB0aGUgZGVsaW1pdGVyIGNoYXJhY3RlcnMuCiAgICovCiAgcHJpdmF0ZSBTdHJpbmcgZGVsaW07
CiAgLyoqCiAgICogVGVsbHMsIGlmIHdlIHNob3VsZCByZXR1cm4gdGhlIGRlbGltaXRlcnMuCiAg
ICovCiAgcHJpdmF0ZSBib29sZWFuIHJldERlbGltczsKCiAgLyp7IAogICAgIGludmFyaWFudCB7
CiAgICAgcG9zID49IDAgOjogInBvc2l0aW9uIGlzIG5lZ2F0aXZlIjsKICAgICBwb3MgPD0gc3Ry
Lmxlbmd0aCgpIDo6ICJwb3NpdGlvbiBpcyBvdXQgb2Ygc3RyaW5nIjsKICAgICBzdHIgIT0gbnVs
bCA6OiAiU3RyaW5nIGlzIG51bGwiOwogICAgIGRlbGltICE9IG51bGwgOjogIkRlbGltaXRlcnMg
YXJlIG51bGwiOwogICAgIH0KICAgICB9ICovCgogIC8qKgogICAqIENyZWF0ZXMgYSBuZXcgU3Ry
aW5nVG9rZW5pemVyIGZvciB0aGUgc3RyaW5nIDxjb2RlPnN0cjwvY29kZT4sCiAgICogdGhhdCBz
aG91bGQgc3BsaXQgb24gdGhlIGRlZmF1bHQgZGVsaW1pdGVyIHNldCAoc3BhY2UsIHRhcCwKICAg
KiBuZXdsaW5lLCByZXR1cm4gYW5kIGZvcm1mZWVkKSwgYW5kIHdoaWNoIGRvZXNuJ3QgcmV0dXJu
IHRoZQogICAqIGRlbGltaXRlcnMuCiAgICogQHBhcmFtIHN0ciBUaGUgc3RyaW5nIHRvIHNwbGl0
LgogICAqLwogIHB1YmxpYyBTdHJpbmdUb2tlbml6ZXIoU3RyaW5nIHN0cikKICAgIC8qeyByZXF1
aXJlIHsgc3RyICE9IG51bGwgOjogInN0ciBtdXN0IG5vdCBiZSBudWxsIjsgfSB9ICovCiAgewog
ICAgdGhpcyhzdHIsICIgXHRcblxyXGYiLCBmYWxzZSk7CiAgfQoKICAvKioKICAgKiBDcmVhdGUg
YSBuZXcgU3RyaW5nVG9rZW5pemVyLCB0aGF0IHNwbGl0cyB0aGUgZ2l2ZW4gc3RyaW5nIG9uIAog
ICAqIHRoZSBnaXZlbiBkZWxpbWl0ZXIgY2hhcmFjdGVycy4gIEl0IGRvZXNuJ3QgcmV0dXJuIHRo
ZSBkZWxpbWl0ZXIKICAgKiBjaGFyYWN0ZXJzLgogICAqCiAgICogQHBhcmFtIHN0ciBUaGUgc3Ry
aW5nIHRvIHNwbGl0LgogICAqIEBwYXJhbSBkZWxpbSBBIHN0cmluZyBjb250YWluaW5nIGFsbCBk
ZWxpbWl0ZXIgY2hhcmFjdGVycy4KICAgKi8KICBwdWJsaWMgU3RyaW5nVG9rZW5pemVyKFN0cmlu
ZyBzdHIsIFN0cmluZyBkZWxpbSkKICAgIC8qeyByZXF1aXJlIHsgc3RyICE9IG51bGwgOjogInN0
ciBtdXN0IG5vdCBiZSBudWxsIjsKICAgICAgIGRlbGltICE9IG51bGwgOjogImRlbGltIG11c3Qg
bm90IGJlIG51bGwiOyB9IH0gKi8KICB7CiAgICB0aGlzKHN0ciwgZGVsaW0sIGZhbHNlKTsKICB9
CgogIC8qKgogICAqIENyZWF0ZSBhIG5ldyBTdHJpbmdUb2tlbml6ZXIsIHRoYXQgc3BsaXRzIHRo
ZSBnaXZlbiBzdHJpbmcgb24KICAgKiB0aGUgZ2l2ZW4gZGVsaW1pdGVyIGNoYXJhY3RlcnMuICBJ
ZiB5b3Ugc2V0CiAgICogPGNvZGU+cmV0dXJuRGVsaW1zPC9jb2RlPiB0byA8Y29kZT50cnVlPC9j
b2RlPiwgdGhlIGRlbGltaXRlcgogICAqIGNoYXJhY3RlcnMgYXJlIHJldHVybmVkIGFzIHRva2Vu
cyBvZiB0aGVpciBvd24uICBUaGUgZGVsaW1pdGVyCiAgICogdG9rZW5zIGFsd2F5cyBjb25zaXN0
IG9mIGEgc2luZ2xlIGNoYXJhY3Rlci4KICAgKgogICAqIEBwYXJhbSBzdHIgVGhlIHN0cmluZyB0
byBzcGxpdC4KICAgKiBAcGFyYW0gZGVsaW0gQSBzdHJpbmcgY29udGFpbmluZyBhbGwgZGVsaW1p
dGVyIGNoYXJhY3RlcnMuCiAgICogQHBhcmFtIHJldHVybkRlbGltcyBUZWxscywgaWYgeW91IHdh
bnQgdG8gZ2V0IHRoZSBkZWxpbWl0ZXJzLgogICAqLwogIHB1YmxpYyBTdHJpbmdUb2tlbml6ZXIo
U3RyaW5nIHN0ciwgU3RyaW5nIGRlbGltLCBib29sZWFuIHJldHVybkRlbGltcykKICAgIC8qeyBy
ZXF1aXJlIHsgc3RyICE9IG51bGwgOjogInN0ciBtdXN0IG5vdCBiZSBudWxsIjsKICAgICAgIGRl
bGltICE9IG51bGwgOjogImRlbGltIG11c3Qgbm90IGJlIG51bGwiOyB9IH0gKi8KICB7CiAgICB0
aGlzLnN0ciA9IHN0cjsKICAgIHRoaXMuZGVsaW0gPSBkZWxpbTsKICAgIHRoaXMucmV0RGVsaW1z
ID0gcmV0dXJuRGVsaW1zOwogICAgdGhpcy5wb3MgPSAwOwogIH0KCiAgLyoqCiAgICogVGVsbHMg
aWYgdGhlcmUgYXJlIG1vcmUgdG9rZW5zLgogICAqIEByZXR1cm4gVHJ1ZSwgaWYgdGhlIG5leHQg
Y2FsbCBvZiBuZXh0VG9rZW4oKSBzdWNjZWVkcywgZmFsc2Ugb3RoZXJ3aXNlLgogICAqLwogIHB1
YmxpYyBib29sZWFuIGhhc01vcmVUb2tlbnMoKQogIHsKICAgIGlmICghcmV0RGVsaW1zKQogICAg
ICB7Cgl3aGlsZSAocG9zIDwgc3RyLmxlbmd0aCgpICYmIGRlbGltLmluZGV4T2Yoc3RyLmNoYXJB
dChwb3MpKSA+IC0xKQoJICB7CgkgICAgcG9zKys7CgkgIH0KICAgICAgfQogICAgcmV0dXJuIHBv
cyA8IHN0ci5sZW5ndGgoKTsKICB9CgogIC8qKgogICAqIFJldHVybnMgdGhlIG5leHRUb2tlbiwg
Y2hhbmdpbmcgdGhlIGRlbGltaXRlciBzZXQgdG8gdGhlIGdpdmVuCiAgICogPGNvZGU+ZGVsaW08
L2NvZGU+LiAgVGhlIGNoYW5nZSBvZiB0aGUgZGVsaW1pdGVyIHNldCBpcwogICAqIHBlcm1hbmVu
dCwgaWUuIHRoZSBuZXh0IGNhbGwgb2YgbmV4dFRva2VuKCksIHVzZXMgdGhlIHNhbWUKICAgKiBk
ZWxpbWl0ZXIgc2V0LgogICAqIEBwYXJhbSBkZWxpbSBhIHN0cmluZyBjb250YWluaW5nIHRoZSBu
ZXcgZGVsaW1pdGVyIGNoYXJhY3RlcnMuCiAgICogQHJldHVybiB0aGUgbmV4dCB0b2tlbiB3aXRo
IHJlc3BlY3QgdG8gdGhlIG5ldyBkZWxpbWl0ZXIgY2hhcmFjdGVycy4KICAgKiBAZXhjZXB0aW9u
IE5vU3VjaEVsZW1lbnRFeGNlcHRpb24gaWYgdGhlcmUgYXJlIG5vIG1vcmUgdG9rZW5zLgogICAq
LwogIHB1YmxpYyBTdHJpbmcgbmV4dFRva2VuKFN0cmluZyBkZWxpbSkgdGhyb3dzIE5vU3VjaEVs
ZW1lbnRFeGNlcHRpb24KICAgIC8qeyByZXF1aXJlIHsgaGFzTW9yZVRva2VucygpIDo6ICJubyBt
b3JlIFRva2VucyBhdmFpbGFibGUiOwogICAgICAgZW5zdXJlIHsgJHJldHVybiAhPSBudWxsICYm
ICRyZXR1cm4ubGVuZ3RoKCkgPiAwOyB9IH0gKi8KICB7CiAgICB0aGlzLmRlbGltID0gZGVsaW07
CiAgICByZXR1cm4gbmV4dFRva2VuKCk7CiAgfQoKICAvKioKICAgKiBSZXR1cm5zIHRoZSBuZXh0
VG9rZW4gb2YgdGhlIHN0cmluZy4KICAgKiBAcGFyYW0gZGVsaW0gYSBzdHJpbmcgY29udGFpbmlu
ZyB0aGUgbmV3IGRlbGltaXRlciBjaGFyYWN0ZXJzLgogICAqIEByZXR1cm4gdGhlIG5leHQgdG9r
ZW4gd2l0aCByZXNwZWN0IHRvIHRoZSBuZXcgZGVsaW1pdGVyIGNoYXJhY3RlcnMuCiAgICogQGV4
Y2VwdGlvbiBOb1N1Y2hFbGVtZW50RXhjZXB0aW9uIGlmIHRoZXJlIGFyZSBubyBtb3JlIHRva2Vu
cy4KICAgKi8KICBwdWJsaWMgU3RyaW5nIG5leHRUb2tlbigpIHRocm93cyBOb1N1Y2hFbGVtZW50
RXhjZXB0aW9uCiAgICAvKnsgcmVxdWlyZSB7IGhhc01vcmVUb2tlbnMoKSA6OiAibm8gbW9yZSBU
b2tlbnMgYXZhaWxhYmxlIjsKICAgICAgIGVuc3VyZSB7ICRyZXR1cm4gIT0gbnVsbCAmJiAkcmV0
dXJuLmxlbmd0aCgpID4gMDsgfSB9ICovCiAgewogICAgaWYgKHBvcyA8IHN0ci5sZW5ndGgoKSAm
JiBkZWxpbS5pbmRleE9mKHN0ci5jaGFyQXQocG9zKSkgPiAtMSkKICAgICAgewoJaWYgKHJldERl
bGltcykKCSAgcmV0dXJuIHN0ci5zdWJzdHJpbmcocG9zLCArK3Bvcyk7CgoJd2hpbGUgKCsrcG9z
IDwgc3RyLmxlbmd0aCgpICYmIGRlbGltLmluZGV4T2Yoc3RyLmNoYXJBdChwb3MpKSA+IC0xKQoJ
ICB7CgkgICAgLyogZW1wdHkgKi8KCSAgfQogICAgICB9CiAgICBpZiAocG9zIDwgc3RyLmxlbmd0
aCgpKQogICAgICB7CglpbnQgc3RhcnQgPSBwb3M7Cgl3aGlsZSAoKytwb3MgPCBzdHIubGVuZ3Ro
KCkgJiYgZGVsaW0uaW5kZXhPZihzdHIuY2hhckF0KHBvcykpID09IC0xKQoJICB7CgkgICAgLyog
ZW1wdHkgKi8KCSAgfQoJcmV0dXJuIHN0ci5zdWJzdHJpbmcoc3RhcnQsIHBvcyk7CiAgICAgIH0K
ICAgIHRocm93IG5ldyBOb1N1Y2hFbGVtZW50RXhjZXB0aW9uKCk7CiAgfQoKICAvKioKICAgKiBU
aGlzIGRvZXMgdGhlIHNhbWUgYXMgaGFzTW9yZVRva2Vucy4gVGhpcyBpcyB0aGUKICAgKiA8Y29k
ZT5FbnVtZXJhdGlvbjwvY29kZSBpbnRlcmZhY2UgbWV0aG9kLgogICAqIEByZXR1cm4gVHJ1ZSwg
aWYgdGhlIG5leHQgY2FsbCBvZiBuZXh0RWxlbWVudCgpIHN1Y2NlZWRzLCBmYWxzZQogICAqIG90
aGVyd2lzZS4gIAogICAqIEBzZWUgI2hhc01vcmVUb2tlbnMKICAgKi8KICBwdWJsaWMgYm9vbGVh
biBoYXNNb3JlRWxlbWVudHMoKQogIHsKICAgIHJldHVybiBoYXNNb3JlVG9rZW5zKCk7CiAgfQoK
ICAvKioKICAgKiBUaGlzIGRvZXMgdGhlIHNhbWUgYXMgbmV4dFRva2Vucy4gVGhpcyBpcyB0aGUK
ICAgKiA8Y29kZT5FbnVtZXJhdGlvbjwvY29kZSBpbnRlcmZhY2UgbWV0aG9kLgogICAqIEByZXR1
cm4gdGhlIG5leHQgdG9rZW4gd2l0aCByZXNwZWN0IHRvIHRoZSBuZXcgZGVsaW1pdGVyIGNoYXJh
Y3RlcnMuCiAgICogQGV4Y2VwdGlvbiBOb1N1Y2hFbGVtZW50RXhjZXB0aW9uIGlmIHRoZXJlIGFy
ZSBubyBtb3JlIHRva2Vucy4KICAgKiBAc2VlICNuZXh0VG9rZW4KICAgKi8KICBwdWJsaWMgT2Jq
ZWN0IG5leHRFbGVtZW50KCkgdGhyb3dzIE5vU3VjaEVsZW1lbnRFeGNlcHRpb24KICB7CiAgICBy
ZXR1cm4gbmV4dFRva2VuKCk7CiAgfQoKICAvKioKICAgKiBUaGlzIGNvdW50cyB0aGUgbnVtYmVy
IG9mIHJlbWFpbmluZyB0b2tlbnMgaW4gdGhlIHN0cmluZywgd2l0aAogICAqIHJlc3BlY3QgdG8g
dGhlIGN1cnJlbnQgZGVsaW1pdGVyIHNldC4KICAgKiBAcmV0dXJuIHRoZSBudW1iZXIgb2YgdGlt
ZXMgPGNvZGU+bmV4dFRva2VucygpPC9jb2RlPiB3aWxsCiAgICogc3VjY2VlZC4gIAogICAqIEBz
ZWUgI25leHRUb2tlbgogICAqLwogIHB1YmxpYyBpbnQgY291bnRUb2tlbnMoKQogIHsKICAgIGlu
dCBjb3VudCA9IDA7CiAgICBpbnQgZGVsaW1pdGVyQ291bnQgPSAwOwogICAgYm9vbGVhbiB0b2tl
bkZvdW5kID0gZmFsc2U7CQkvLyBTZXQgd2hlbiBhIG5vbi1kZWxpbWl0ZXIgaXMgZm91bmQKICAg
IGludCB0bXBQb3MgPSBwb3M7CgogICAgLy8gTm90ZSBmb3IgZWZmaWNpZW5jeSwgd2UgY291bnQg
dXAgdGhlIGRlbGltaXRlcnMgcmF0aGVyIHRoYW4gY2hlY2sKICAgIC8vIHJldERlbGltcyBldmVy
eSB0aW1lIHdlIGVuY291bnRlciBvbmUuICBUaGF0IHdheSwgd2UgY2FuCiAgICAvLyBqdXN0IGRv
IHRoZSBjb25kaXRpb25hbCBvbmNlIGF0IHRoZSBlbmQgb2YgdGhlIG1ldGhvZAogICAgd2hpbGUg
KHRtcFBvcyA8IHN0ci5sZW5ndGgoKSkKICAgICAgewoJaWYgKGRlbGltLmluZGV4T2Yoc3RyLmNo
YXJBdCh0bXBQb3MrKykpID4gLTEpCgkgIHsKCSAgICBpZiAodG9rZW5Gb3VuZCkKCSAgICAgIHsK
CQkvLyBHb3QgdG8gdGhlIGVuZCBvZiBhIHRva2VuCgkgICAgICAgIGNvdW50Kys7CgkgICAgICAg
IHRva2VuRm91bmQgPSBmYWxzZTsKCSAgICAgIH0KCgkgICAgZGVsaW1pdGVyQ291bnQrKzsJCS8v
IEluY3JlbWVudCBmb3IgdGhpcyBkZWxpbWl0ZXIKCSAgfQoJZWxzZQoJICB7CgkgICAgdG9rZW5G
b3VuZCA9IHRydWU7CgoJICAgIC8vIEdldCB0byB0aGUgZW5kIG9mIHRoZSB0b2tlbgoJICAgIHdo
aWxlICh0bXBQb3MgPCBzdHIubGVuZ3RoKCkKCQkgICAmJiBkZWxpbS5pbmRleE9mKHN0ci5jaGFy
QXQodG1wUG9zKSkgPT0gLTEpCgkgICAgICArK3RtcFBvczsKCSAgfQogICAgICB9CgogICAgLy8g
TWFrZSBzdXJlIHRvIGNvdW50IHRoZSBsYXN0IHRva2VuIAogICAgaWYgKHRva2VuRm91bmQpCiAg
ICAgIGNvdW50Kys7CgogICAgLy8gaWYgY291bnRpbmcgZGVsbWl0ZXJzIGFkZCB0aGVtIGludG8g
dGhlIHRva2VuIGNvdW50CiAgICByZXR1cm4gcmV0RGVsaW1zID8gY291bnQgKyBkZWxpbWl0ZXJD
b3VudCA6IGNvdW50OwogIH0KfQo=


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]