This is the mail archive of the java-prs@sourceware.cygnus.com mailing list for the Java project.


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

gcj/139: internal compiler error: program jc1



>Number:         139
>Category:       gcj
>Synopsis:       internal compiler error: program jc1
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    apbianco
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Wed Jan 19 14:16:01 PST 2000
>Closed-Date:
>Last-Modified:
>Originator:     moonjoo@saul.cis.upenn.edu
>Release:        gcc version 2.95.2 19991024 (release)
>Organization:
>Environment:

>Description:
verinet:/home/mac/mac/runtimeChecker/interpreter> gcj --main=Checker -o Checker Checker.java
gcj: Internal compiler error: program jc1 got fatal signal

gcj version 2.95.2 19991024 (release) on linux 
2.2.12 #6 SMP 
>How-To-Repeat:
gcj --main=Checker -o Checker Checker.java
>Fix:

>Release-Note:
>Audit-Trail:
>Unformatted:
----gnatsweb-attachment----
Content-Type: application/octet-stream; name="Checker.java"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="Checker.java"

cGFja2FnZSBtYWMucnVudGltZUNoZWNrZXIuaW50ZXJwcmV0ZXI7CgppbXBvcnQgamF2YS5pby4q
OwppbXBvcnQgamF2YS5uZXQuKjsKaW1wb3J0IGphdmEudXRpbC4qOwoKaW1wb3J0IG1hYy5ydW50
aW1lQ2hlY2tlci5tZWRsUGFyc2VyLio7CmltcG9ydCBtYWMudHlwZXMucGFyc2VyVHlwZXMuKjsK
aW1wb3J0IG1hYy50eXBlcy5pbnRlcmZhY2VNZWRsQ2hlY2tlci4qOwppbXBvcnQgbWFjLnR5cGVz
LmludGVyZmFjZUVSQ2hlY2tlci4qOwppbXBvcnQgbWFjLnR5cGVzLnN0ZWVyaW5nVHlwZXMuKjsK
Ci8vIEZvciBkYXRhYmFzZSBjbGllbnQgZXhhbXBsZQovLyBpbXBvcnQgbWFjLnR5cGVzLmV4dGVy
bmFsQ29ubmVjdGlvbi4qOwoKcHVibGljIGNsYXNzIENoZWNrZXIgZXh0ZW5kcyBUaHJlYWQgewog
IHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IERFRkFVTFRfSU5QVVRfUE9SVCA9IDgwNDE7CiAgcHVi
bGljIFN0cmluZyBzdGVlcmVyOyAgICAgICAgICAgICAgICAgLy8gU3RlZXJlciBhcyBob3N0OnBv
cnQKICBwcm90ZWN0ZWQgaW50IGlucHV0X3BvcnQ7ICAgICAgICAgICAgICAvLyBMaXN0ZW5pbmcg
cG9ydAogIHByb3RlY3RlZCBTZXJ2ZXJTb2NrZXQgbGlzdGVuX3NvY2tldDsKCiAgcHJpdmF0ZSBG
aWxlSW5wdXRTdHJlYW0gaW5wZmlsZTsKICBwcml2YXRlIE9iamVjdElucHV0U3RyZWFtIGlucHN0
cm07CiAgCiAgcHJvdGVjdGVkIHN0YXRpYyBib29sZWFuIGRvU3RlZXJpbmc7ICAgLy8gV2hldGhl
ciBvciBub3QgdG8gc3RlZXIKICBwcm90ZWN0ZWQgc3RhdGljIFBhcnNlckNoa09iamVjdCBpbnB1
dDsKICBwcm90ZWN0ZWQgc3RhdGljIEFTVFN0YXJ0IHBhcnNlVHJlZTsKICBwcm90ZWN0ZWQgc3Rh
dGljIEhhc2h0YWJsZSBzeW1ib2xUYWJsZTsKICBwcm90ZWN0ZWQgc3RhdGljIFZlY3RvciBhbGFy
bXM7CiAgcHJvdGVjdGVkIHN0YXRpYyBWZWN0b3IgcHJvcGVydGllczsKICBwcm90ZWN0ZWQgc3Rh
dGljIFZlY3RvciBhY3Rpb25zOwogIHByb3RlY3RlZCBzdGF0aWMgbG9uZyBjdXJyZW50VGltZTsK
CiAgcHVibGljIHN0YXRpYyB2b2lkIGZhaWwoRXhjZXB0aW9uIGUsIFN0cmluZyBtc2cpIHsKICAg
IFN5c3RlbS5lcnIucHJpbnRsbihtc2cgKyAiOiIgKyBlKTsKICAgIFN5c3RlbS5leGl0KDEpOwog
IH0KCiAgcHVibGljIENoZWNrZXIoaW50IHBvcnQsIFN0cmluZyBzdGVlcmVyLCBTdHJpbmcgbWVk
bF9vdXRwdXQpIHsKICAgIGlmKHBvcnQgPT0gMCkgcG9ydCA9IERFRkFVTFRfSU5QVVRfUE9SVDsK
ICAgIHRoaXMuaW5wdXRfcG9ydCA9IHBvcnQ7CiAgICB0aGlzLnN0ZWVyZXIgPSBzdGVlcmVyOwog
ICAgdHJ5IHsJCiAgICAgIGxpc3Rlbl9zb2NrZXQgPSBuZXcgU2VydmVyU29ja2V0KGlucHV0X3Bv
cnQpOwogICAgfQogICAgY2F0Y2goSU9FeGNlcHRpb24gZSkge2ZhaWwoZSwiRXhjZXB0aW9uIGNy
ZWF0aW5nIENoZWNrZXIgc29ja2V0Iik7fQogICAgU3lzdGVtLm91dC5wcmludGxuKCJNYUMgQ2hl
Y2tlciBWZXJzaW9uIDAuMTogTGlzdGVuaW5nIG9uIHBvcnQgIiArIGlucHV0X3BvcnQpOwoKICAg
IHRyeSB7CiAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiTWFDIENoZWNrZXIgVmVyc2lvbiAwLjE6
IFJlYWRpbmcgTUVETCBvdXRwdXQgZnJvbSAiIAoJCQkgKyBtZWRsX291dHB1dCk7CiAgICAgIGlu
cGZpbGUgPSBuZXcgRmlsZUlucHV0U3RyZWFtKG1lZGxfb3V0cHV0KTsKICAgICAgICAgICAgICAg
IC8vIHdlIHVzZSBkZWZhdWx0IG5hbWUgIm1lZGwub3V0IgogICAgICBpbnBzdHJtID0gbmV3IE9i
amVjdElucHV0U3RyZWFtKGlucGZpbGUpOwogICAgICBpbnB1dCA9IChQYXJzZXJDaGtPYmplY3Qp
IGlucHN0cm0ucmVhZE9iamVjdCgpOwogICAgICBwYXJzZVRyZWUgPSBpbnB1dC5nZXRQYXJzZVRy
ZWUoKTsKICAgICAgc3ltYm9sVGFibGUgPSBpbnB1dC5nZXRTeW1ib2xUYWJsZSgpOwogICAgICBh
bGFybXMgPSBpbnB1dC5nZXRBbGFybXMoKTsKICAgICAgcHJvcGVydGllcyA9IGlucHV0LmdldFBy
b3BlcnRpZXMoKTsKICAgICAgYWN0aW9ucyA9IGlucHV0LmdldEFjdGlvbnMoKTsKICAgIH0gY2F0
Y2ggKElPRXhjZXB0aW9uIGUpIHsKICAgICAgU3lzdGVtLmVyci5wcmludGxuKGUpOwogICAgfSBj
YXRjaCAoQ2xhc3NOb3RGb3VuZEV4Y2VwdGlvbiBlKSB7CiAgICAgIFN5c3RlbS5lcnIucHJpbnRs
bihlKTsKICAgIH0gZmluYWxseSB7CiAgICAgIHRyeSB7CglpbnBzdHJtLmNsb3NlKCk7CglpbnBm
aWxlLmNsb3NlKCk7CiAgICAgIH0gY2F0Y2ggKElPRXhjZXB0aW9uIGUpIHsKCVN5c3RlbS5lcnIu
cHJpbnRsbihlKTsKICAgICAgfQogICAgfQogICAgdGhpcy5zdGFydCgpOwogIH0KCiAgcHVibGlj
IHN0YXRpYyBTeW10YWJFbnRyeSBnZXRTeW10YWJFbnRyeShTdHJpbmcgbmFtZSkgewogICAgU3lt
dGFiRW50cnkgZSA9IAogICAgICAoU3ltdGFiRW50cnkpIENoZWNrZXIuc3ltYm9sVGFibGUuZ2V0
KG5hbWUpOwogICAgcmV0dXJuIGU7CiAgfQoKICBwdWJsaWMgc3RhdGljIGxvbmcgZ2V0Q3VycmVu
dFRpbWUoKSB7IHJldHVybiBjdXJyZW50VGltZTsgfQogIHB1YmxpYyBzdGF0aWMgdm9pZCBzZXRD
dXJyZW50VGltZShsb25nIHQpIHsgY3VycmVudFRpbWUgPSB0OyB9CgogIHB1YmxpYyB2b2lkIHJ1
bigpIHsKICAgIHRyeSB7CiAgICAgIHdoaWxlKHRydWUpIHsKCVNvY2tldCBjbGllbnRfc29ja2V0
ID0gbGlzdGVuX3NvY2tldC5hY2NlcHQoKTsKCUNvbm5lY3Rpb24yRVIgYyA9IG5ldyBDb25uZWN0
aW9uMkVSKGNsaWVudF9zb2NrZXQsc3RlZXJlcixkb1N0ZWVyaW5nKTsKICAgICAgfQogICAgfQog
ICAgY2F0Y2goSU9FeGNlcHRpb24gZSkgewogICAgICBmYWlsKGUsICJFeGNlcHRpb24gd2hpbGUg
bGlzdGVuaW5nIGZvciBDb25uZWN0aW9uMkVScyIpOwogICAgfQogIH0KCiAgLyoqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAg
KiBhcmdbMF0gOiBwb3J0IGZvciBsaXN0ZW5pbmcgdG8gZXZlbnQgcmVjb2duaXplcgogICAqIGFy
Z1sxXSA6IExvY2F0aW9uIG9mIHN0ZWVyZXIgYXMgaG9zdDpwb3J0CiAgICogYXJnWzJdIDogZmls
ZW5hbWUgY29udGFpbmluZyBwYXJzZSB0cmVlIG9mIE1FREwgc2NyaXB0CiAgICoqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAg
cHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgewogICAgU3RyaW5nIHN0ZWVy
ZXIgPSAiIjsKICAgIGludCBwb3J0ID0gMDsKICAgIGlmIChhcmdzLmxlbmd0aCA9PSAyKSB7CiAg
ICAgIGRvU3RlZXJpbmcgPSBmYWxzZTsKICAgICAgdHJ5IHsKICAgICAgICBwb3J0ID0gSW50ZWdl
ci5wYXJzZUludChhcmdzWzBdKTsKICAgICAgfQogICAgICBjYXRjaChOdW1iZXJGb3JtYXRFeGNl
cHRpb24gZSl7cG9ydCA9IDA7fQoKICAgICAgbmV3IENoZWNrZXIocG9ydCwgc3RlZXJlciwgYXJn
c1sxXSk7CiAgICB9IGVsc2UgaWYgKChhcmdzLmxlbmd0aCA9PSA0KSAmJiAoYXJnc1swXSkuZXF1
YWxzSWdub3JlQ2FzZSgiLXMiKSkgewogICAgICBkb1N0ZWVyaW5nID0gdHJ1ZTsKICAgICAgdHJ5
IHsKCXBvcnQgPSBJbnRlZ2VyLnBhcnNlSW50KGFyZ3NbMV0pOwogICAgICB9CiAgICAgIGNhdGNo
KE51bWJlckZvcm1hdEV4Y2VwdGlvbiBlKXtwb3J0ID0gMDt9CgogICAgICAvLyBTdHVmZiBzcGVj
aWZpYyB0byB0aGUgTUFWIGRlbW8KICAgICAgLy8gbWFjLmd1aS5NQVZndWkuTUFWYWxlcnRHcmFw
aC5tYWluKG5ldyBTdHJpbmdbXSB7IjIwIiwiMTAwMCIsIjcwIn0pOwoKICAgICAgc3RlZXJlciA9
IGFyZ3NbMl07CiAgICAgIG5ldyBDaGVja2VyKHBvcnQsIHN0ZWVyZXIsIGFyZ3NbM10pOwogICAg
fSBlbHNlIHsKICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJNYUMgUnVuLXRpbWUgQ2hlY2tlciBW
ZXJzaW9uIDAuMTogIFVzYWdlIGlzIC4uLiIpOwogICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIiAg
ICBqYXZhIG1hYy5ydW50aW1lQ2hlY2tlci5pbnRlcnByZXRlci5DaGVja2VyIiArIAoJCQkgIiBb
LXNdIGxpc3Rlbl9wb3J0Iik7CiAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiICAgICAgICAgW3N0
ZWVyaW5nX2hvc3Q6c3RlZXJpbmdfcG9ydF0iICsKICAgICAgICAgICAgICAgICAgICAgICAgICIg
TUVETF9vdXRwdXRfZmlsZSIpOwogICAgICBTeXN0ZW0uZXhpdCgxKTsKICAgIH0KICB9Cn0KCmNs
YXNzIENvbm5lY3Rpb24yRVIgZXh0ZW5kcyBUaHJlYWQgewogIHB1YmxpYyBmaW5hbCBzdGF0aWMg
aW50IERFRkFVTFRfT1VUUFVUX1BPUlQgPSA4MDQyOwogIHB1YmxpYyBmaW5hbCBzdGF0aWMgU3Ry
aW5nIERFRkFVTFRfT1VUUFVUX0hPU1QgPSAic2F1bC5jaXMudXBlbm4uZWR1IjsKCiAgcHJvdGVj
dGVkIFNvY2tldCBjbGllbnQ7CiAgcHJvdGVjdGVkIFN0cmluZyBzdGVlcmVySG9zdDsKICBwcm90
ZWN0ZWQgaW50IHN0ZWVyZXJQb3J0OwogIHByb3RlY3RlZCBib29sZWFuIGRvU3RlZXJpbmc7CiAg
U29ja2V0IHN0ZWVyZXI7CiAgcHJvdGVjdGVkIERhdGFJbnB1dFN0cmVhbSBpbjsKICBwcm90ZWN0
ZWQgT2JqZWN0SW5wdXRTdHJlYW0gaW5PYmo7CiAgT2JqZWN0T3V0cHV0U3RyZWFtIG91dDsKCiAg
Ly8gRm9yIGRhdGFiYXNlIGNsaWVudCBleGFtcGxlCiAgLy8gRXh0Q29ubmVjdGlvbiBleHRlcm5h
bENvbm5lY3Rpb247CiAgCiAgLy8gYm9vbGVhbiBJQyA7CiAgLy8gYm9vbGVhbiBHRCA7CiAgCiAg
cHVibGljIENvbm5lY3Rpb24yRVIoU29ja2V0IGNsaWVudF9zb2NrZXQsIFN0cmluZyBzdGVlcmxv
YywgCiAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBkb1N0ZWVyKSB7CiAgICBjbGllbnQg
PSBjbGllbnRfc29ja2V0OwoKICAgIC8vICAgIElDID0gZmFsc2U7CiAgICAvLyAgICBHRCA9IGZh
bHNlOwoKICAgIGRvU3RlZXJpbmcgPSBkb1N0ZWVyOwogICAgaWYgKHN0ZWVybG9jLmxhc3RJbmRl
eE9mKCI6IikgPT0gLTEpIHsKICAgICAgc3RlZXJlckhvc3QgPSBERUZBVUxUX09VVFBVVF9IT1NU
OwogICAgICBzdGVlcmVyUG9ydCA9IERFRkFVTFRfT1VUUFVUX1BPUlQ7CiAgICB9IGVsc2Ugewog
ICAgICBzdGVlcmVySG9zdCA9IHN0ZWVybG9jLnN1YnN0cmluZygwLHN0ZWVybG9jLmxhc3RJbmRl
eE9mKCI6IikpOwogICAgICB0cnkgewogICAgICAgIHN0ZWVyZXJQb3J0ID0gKEludGVnZXIudmFs
dWVPZigKICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZWVybG9jLnN1YnN0cmluZyhzdGVlcmxv
Yy5sYXN0SW5kZXhPZigiOiIpKzEsCiAgICAgICAgICAgICAgICAgICAgICAgICBzdGVlcmxvYy5s
ZW5ndGgoKSkpKS5pbnRWYWx1ZSgpOwogICAgICB9IGNhdGNoKE51bWJlckZvcm1hdEV4Y2VwdGlv
biBlKSB7CiAgICAgICAgc3RlZXJlclBvcnQgPSBERUZBVUxUX09VVFBVVF9QT1JUOwogICAgICB9
CiAgICB9CiAgICB0cnkgewogICAgICAvL2luID0gbmV3IERhdGFJbnB1dFN0cmVhbShjbGllbnQu
Z2V0SW5wdXRTdHJlYW0oKSk7CiAgICAgIGluT2JqID0gbmV3IE9iamVjdElucHV0U3RyZWFtKG5l
dyBCdWZmZXJlZElucHV0U3RyZWFtKGNsaWVudC5nZXRJbnB1dFN0cmVhbSgpKSk7CiAgICAgIC8v
aW5PYmogPSBuZXcgT2JqZWN0SW5wdXRTdHJlYW0oaW4pOwogICAgfQogICAgY2F0Y2goSU9FeGNl
cHRpb24gZSkgewogICAgICB0cnl7Y2xpZW50LmNsb3NlKCk7fSBjYXRjaChJT0V4Y2VwdGlvbiBl
Mil7fQogICAgICBTeXN0ZW0uZXJyLnByaW50bG4oIkV4Y2VwdGlvbiB3aGlsZSBnZXR0aW5nIHNv
Y2tldCBzdHJlYW1zOiAiICtlKTsKICAgICAgcmV0dXJuOwogICAgfQogICAgLy90cnkgewogICAg
ICAvL2V4dGVybmFsQ29ubmVjdGlvbiA9IG5ldyBFeHRDb25uZWN0aW9uKCJEQl9DSEsiLCAic2F1
bC5jaXMudXBlbm4uZWR1IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Ly8gICAgICA4MDE3KTsKICAgIC8vfSBjYXRjaChJT0V4Y2VwdGlvbiBlKSB7CiAgICAvLyAgU3lz
dGVtLmVyci5wcmludGxuKCJNYUMgQ2hlY2tlcjogQ29ubmVjdGlvbiB0byBHVUkgZmFpbGVkISIp
OwogICAgLy99CiAgICB0aGlzLnN0YXJ0KCk7CiAgfQoKICBwdWJsaWMgdm9pZCBydW4oKSB7CiAg
ICBFckNoa09iamVjdCBvOwogICAgYm9vbGVhbiBzdGFydFBnbTsKICAgIEFTVEV4cHJlc3Npb24g
bm9kZSA9IG51bGw7CiAgICBTeW10YWJFbnRyeSBlbnQgPSBudWxsOwoKICAgIHRyeSB7CiAgICAg
IG8gPSAoRXJDaGtPYmplY3QpaW5PYmoucmVhZE9iamVjdCgpOwogICAgICBpZiAoZG9TdGVlcmlu
ZykgewogICAgICAgIHN0ZWVyZXIgPSBuZXcgU29ja2V0KHN0ZWVyZXJIb3N0LHN0ZWVyZXJQb3J0
KTsKICAgICAgICAvKm91dCA9IG5ldyBPYmplY3RPdXRwdXRTdHJlYW0obmV3IEJ1ZmZlcmVkT3V0
cHV0U3RyZWFtKAogICAgCQkgIHN0ZWVyZXIuZ2V0T3V0cHV0U3RyZWFtKCkpKTsqLwogICAgICAg
IG91dCA9IG5ldyBPYmplY3RPdXRwdXRTdHJlYW0oc3RlZXJlci5nZXRPdXRwdXRTdHJlYW0oKSk7
CiAgICAgICAgaWYgKG91dCAhPSBudWxsKSB7CiAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4o
IkNvbm5lY3Rpb24gZXN0YWJsaXNoZWQgdG8gU3RlZXJlciBhdCAiCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICArIHN0ZWVyZXJIb3N0ICsgIjoiICsgc3RlZXJlclBvcnQpOwogICAgICAgIH0K
ICAgICAgfSBlbHNlIHsKICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIk5vIHN0ZWVyaW5nIGlu
IHRoaXMgZXhlY3V0aW9uLiIpOwogICAgICB9CiAgICAgIHdoaWxlKHRydWUpIHsKCXJlc2V0U3lt
Ym9sVGFibGUoKTsKCXN0YXJ0UGdtID0gdXBkYXRlU3ltYm9sVGFibGUobyk7CglDaGVja2VyLnBh
cnNlVHJlZS51bm1hcmsoKTsKCWlmICghc3RhcnRQZ20pIHsKCSAgQ2hlY2tlci5wYXJzZVRyZWUu
ZXZhbHVhdGUoKTsKCSAgcmVwb3J0U3RhdHVzKCk7CiAgICAgICAgICBpZiAoZG9TdGVlcmluZykK
ICAgICAgICAgICAgaW52b2tlQWN0aW9ucygpOwoKICAgICAgICAgIC8vIFNwZWNpZmljIGZvciBN
QVYgZGVtbyEhISEKICAgICAgICAgIC8vIGluZm9ybU1hdkdVSSgpOwoKCX0gZWxzZSB7CgkgIGZv
ciAoaW50IGkgPSAwOyBpIDwgQ2hlY2tlci5wYXJzZVRyZWUuamp0R2V0TnVtQ2hpbGRyZW4oKTsg
aSsrKSB7CgkgICAgaWYgKENoZWNrZXIucGFyc2VUcmVlLmpqdEdldENoaWxkKGkpIGluc3RhbmNl
b2YgQVNURXhwcmVzc2lvbikgewoJICAgICAgbm9kZSA9IChBU1RFeHByZXNzaW9uKSBDaGVja2Vy
LnBhcnNlVHJlZS5qanRHZXRDaGlsZChpKTsKCSAgICAgIG5vZGUuZXZhbHVhdGUoKTsKCSAgICB9
CgkgIH0KCX0KCW8gPSAoRXJDaGtPYmplY3QpaW5PYmoucmVhZE9iamVjdCgpOwogICAgICB9CiAg
ICB9CiAgICBjYXRjaChFT0ZFeGNlcHRpb24gZSl7fQogICAgY2F0Y2goSU9FeGNlcHRpb24gZSl7
U3lzdGVtLmVyci5wcmludGxuKGUpO30KICAgIGNhdGNoKENsYXNzTm90Rm91bmRFeGNlcHRpb24g
ZSkgeyBTeXN0ZW0uZXJyLnByaW50bG4oZSk7IH0KICAgIGZpbmFsbHl7IHRyeSB7Y2xpZW50LmNs
b3NlKCk7fSBjYXRjaChJT0V4Y2VwdGlvbiBlMil7fX0KICB9CgogIHB1YmxpYyB2b2lkIHJlc2V0
U3ltYm9sVGFibGUoKSB7CiAgICBFbnVtZXJhdGlvbiBlbnRyaWVzID0gQ2hlY2tlci5zeW1ib2xU
YWJsZS5lbGVtZW50cygpOwogICAgd2hpbGUgKGVudHJpZXMuaGFzTW9yZUVsZW1lbnRzKCkpIHsK
ICAgICAgKChTeW10YWJFbnRyeSkgKGVudHJpZXMubmV4dEVsZW1lbnQoKSkpLnJlc2V0VXBkYXRl
ZCgpOwogICAgfQogIH0KCiAgcHVibGljIGJvb2xlYW4gdXBkYXRlU3ltYm9sVGFibGUoRXJDaGtP
YmplY3QgbmV3T2JqKSB7CiAgICBTeW10YWJFbnRyeSBlID0gbnVsbDsKICAgIGxvbmcgdGltZSA9
IG5ld09iai5nZXRUaW1lKCk7CiAgICBTdHJpbmcgbmFtZSA9ICIiOwogICAgVmVjdG9yIGVjbGlz
dCA9IG5ld09iai5nZXRFdmVudHMoKTsKICAgIGJvb2xlYW4gc3RhcnQgPSBmYWxzZTsKICAgIEV2
ZW50VHlwZSB2YWwgPSBudWxsOwoKICAgIENoZWNrZXIuc2V0Q3VycmVudFRpbWUodGltZSk7Cgog
ICAgLy9TeXN0ZW0ub3V0LnByaW50bG4oIkN1cnJlbnQgdGltZSA9ICIgKyB0aW1lKTsKCiAgICBp
ZiAoZWNsaXN0ICE9IG51bGwpIHsKICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBlY2xpc3Quc2l6
ZSgpOyBpKyspIHsKICAgICAgICBuYW1lID0gKChFdmVudCkgZWNsaXN0LmVsZW1lbnRBdChpKSku
Z2V0TmFtZSgpOwogICAgICAgIHN0YXJ0ID0gbmFtZS5lcXVhbHNJZ25vcmVDYXNlKCJzdGFydFBn
bSIpOwogICAgICAgIGUgPSBDaGVja2VyLmdldFN5bXRhYkVudHJ5KG5hbWUpOwogICAgICAgIGUu
c2V0VXBkYXRlZCgpOwogICAgICAgIGUuc2V0VGltZSh0aW1lKTsKICAgICAgICB2YWwgPSBuZXcg
RXZlbnRUeXBlKHRydWUsICgoRXZlbnQpIGVjbGlzdC5lbGVtZW50QXQoaSkpLmdldFZhbHVlKCkp
OwogICAgICAgIGUuc2V0VmFsdWUodmFsKTsKCiAgICAgICAgLy8gRGVidWdnaW5nIHN0dWZmCiAg
ICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJFdmVudCAiICsgbmFtZSArICIgaGFzIGhhcHBlbmVk
ISIpOwogICAgICAKICAgICAgICAvLyBEYXRhYmFzZSBjbGllbnQgZXhhbXBsZQogICAgICAgIC8v
aWYgKGV4dGVybmFsQ29ubmVjdGlvbi5pc0Nvbm5lY3RlZCgpICkKICAgICAgICAgLy8gZXh0ZXJu
YWxDb25uZWN0aW9uLmV4cG9ydEV2ZW50KG5hbWUpOwogICAgICB9CiAgICB9CiAgICBlY2xpc3Qg
PSBuZXdPYmouZ2V0U3RhcnRDb25kcygpOwogICAgaWYgKGVjbGlzdCAhPSBudWxsKSB7CiAgICAg
IGZvciAoaW50IGkgPSAwOyBpIDwgZWNsaXN0LnNpemUoKTsgaSsrKSB7CiAgICAgICAgbmFtZSA9
IChTdHJpbmcpIGVjbGlzdC5lbGVtZW50QXQoaSk7CiAgICAgICAgZSA9IENoZWNrZXIuZ2V0U3lt
dGFiRW50cnkobmFtZSk7CiAgICAgICAgZS5zZXRPbGRWYWx1ZShlLmdldFZhbHVlKCkpOwogICAg
ICAgIGUuc2V0VmFsdWUobmV3IFRocmVlVmFsdWVkKHRydWUpKTsKCiAgICAgICAgLy8gRGVidWdn
aW5nIHN0dWZmCiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJDb25kaXRpb24gIiArIG5hbWUg
KyAiIGhhcyBzdGFydGVkISIpOwogICAgICB9CiAgICB9CiAgICBlY2xpc3QgPSBuZXdPYmouZ2V0
RW5kQ29uZHMoKTsKICAgIGlmIChlY2xpc3QgIT0gbnVsbCkgewogICAgICBmb3IgKGludCBpID0g
MDsgaSA8IGVjbGlzdC5zaXplKCk7IGkrKykgewogICAgICAgIG5hbWUgPSAoU3RyaW5nKSBlY2xp
c3QuZWxlbWVudEF0KGkpOwogICAgICAgIGUgPSBDaGVja2VyLmdldFN5bXRhYkVudHJ5KG5hbWUp
OwogICAgICAgIGUuc2V0T2xkVmFsdWUoZS5nZXRWYWx1ZSgpKTsKICAgICAgICBlLnNldFZhbHVl
KG5ldyBUaHJlZVZhbHVlZChmYWxzZSkpOwoKICAgICAgICAvLyBEZWJ1Z2dpbmcgc3R1ZmYKICAg
ICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkNvbmRpdGlvbiAiICsgbmFtZSArICIgaGFzIGVuZGVk
ISIpOwogICAgICB9CiAgICB9CiAgICBlY2xpc3QgPSBuZXdPYmouZ2V0VW5kZWZpbmVkQ29uZHMo
KTsKICAgIGlmIChlY2xpc3QgIT0gbnVsbCkgewogICAgICBmb3IgKGludCBpID0gMDsgaSA8IGVj
bGlzdC5zaXplKCk7IGkrKykgewogICAgICAgIG5hbWUgPSAoU3RyaW5nKSBlY2xpc3QuZWxlbWVu
dEF0KGkpOwogICAgICAgIGUgPSBDaGVja2VyLmdldFN5bXRhYkVudHJ5KG5hbWUpOwogICAgICAg
IGUuc2V0T2xkVmFsdWUoZS5nZXRWYWx1ZSgpKTsKICAgICAgICBlLnNldFZhbHVlKG5ldyBUaHJl
ZVZhbHVlZCgidW5kZWZpbmVkIikpOwoKICAgICAgICAvLyBEZWJ1Z2dpbmcgc3R1ZmYKICAgICAg
ICBTeXN0ZW0ub3V0LnByaW50bG4oIkNvbmRpdGlvbiAiICsgbmFtZSArICIgaGFzIGJlY29tZSB1
bmRlZmluZWQhIik7CiAgICAgIH0KICAgIH0KICAgIHJldHVybiBzdGFydDsKICB9CgogIHB1Ymxp
YyB2b2lkIGludm9rZUFjdGlvbnMoKSB7CiAgICBTdHJpbmcgbmFtZSA9ICIiOwogICAgU3ltdGFi
RW50cnkgZW50cnkgPSBudWxsOwoKICAgIHRyeSB7CiAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwg
Q2hlY2tlci5hY3Rpb25zLnNpemUoKTsgaSsrKSB7CiAgICAgICAgbmFtZSA9IChTdHJpbmcpIENo
ZWNrZXIuYWN0aW9ucy5lbGVtZW50QXQoaSk7CiAgICAgICAgZW50cnkgPSBDaGVja2VyLmdldFN5
bXRhYkVudHJ5KG5hbWUpOwogICAgICAgIGlmIChlbnRyeS5pc1VwZGF0ZWQoKSkgewogICAgICAg
ICAgb3V0LndyaXRlT2JqZWN0KG5ldyBBY3Rpb25DYWxsKG5hbWUsIG51bGwpKTsKCSAgU3lzdGVt
Lm91dC5wcmludGxuKCJJTlZPS0UgIiArIG5hbWUpOwoJfQogICAgICB9CiAgICB9IGNhdGNoKElP
RXhjZXB0aW9uIGUpIHsKICAgICAgU3lzdGVtLmVyci5wcmludGxuKGUpOwogICAgfQogIH0KCiAg
cHVibGljIHZvaWQgcmVwb3J0U3RhdHVzKCkgewogICAgU3RyaW5nIG5hbWUgPSAiIjsKICAgIGJv
b2xlYW4gdmFsdWUgPSBmYWxzZTsKICAgIGludCB0aHJWYWx1ZSA9IDA7CiAgICBTeW10YWJFbnRy
eSBlID0gbnVsbDsKICAgIE5vZGUgZXhwVHJlZSA9IG51bGw7CgogICAgLy8gRGF0YWJhc2UgZXhh
bXBsZSBvbmx5ISEKICAgIC8qaW50IG52YWwgPSAwOwogICAgZSA9IENoZWNrZXIuZ2V0U3ltdGFi
RW50cnkoIm51bUNvblN0YXJ0Iik7CiAgICBTeXN0ZW0ub3V0LnByaW50bG4oZSk7CiAgICBpZiAo
KChBdXhWYXJWYWx1ZSkgZS5nZXRWYWx1ZSgpKS5nZXRWYWx1ZSgpICE9IG51bGwpIHsKICAgICAg
bnZhbCA9ICgoSW50ZWdlcikgKChBdXhWYXJWYWx1ZSkgZS5nZXRWYWx1ZSgpKS5nZXRWYWx1ZSgp
KS5pbnRWYWx1ZSgpOwogICAgICBpZiAoZXh0ZXJuYWxDb25uZWN0aW9uLmlzQ29ubmVjdGVkKCkp
IAogICAgICAgIGV4dGVybmFsQ29ubmVjdGlvbi5leHBvcnRFdmVudCgibnVtQ29uU3RhcnQiLCBu
dmFsKTsgCiAgICB9CiAgICBlID0gQ2hlY2tlci5nZXRTeW10YWJFbnRyeSgibnVtQ29uRmFpbCIp
OwogICAgaWYgKCgoQXV4VmFyVmFsdWUpIGUuZ2V0VmFsdWUoKSkuZ2V0VmFsdWUoKSAhPSBudWxs
KSB7CiAgICAgIG52YWwgPSAoKEludGVnZXIpICgoQXV4VmFyVmFsdWUpIGUuZ2V0VmFsdWUoKSku
Z2V0VmFsdWUoKSkuaW50VmFsdWUoKTsKICAgICAgaWYgKGV4dGVybmFsQ29ubmVjdGlvbi5pc0Nv
bm5lY3RlZCgpKSAKCiAgICAgICAgZXh0ZXJuYWxDb25uZWN0aW9uLmV4cG9ydEV2ZW50KCJudW1D
b25GYWlsIiwgbnZhbCk7CiAgICB9Ki8KCiAgICBmb3IgKGludCBpID0gMDsgaSA8IENoZWNrZXIu
YWxhcm1zLnNpemUoKTsgaSsrKSB7CiAgICAgIG5hbWUgPSAoU3RyaW5nKSBDaGVja2VyLmFsYXJt
cy5lbGVtZW50QXQoaSk7CiAgICAgIGUgPSBDaGVja2VyLmdldFN5bXRhYkVudHJ5KG5hbWUpOwog
ICAgICBpZiAoZS5nZXRUeXBlKCkuZXF1YWxzSWdub3JlQ2FzZSgiX2ltcG9ydGVkIikpIHsKCWlm
IChlLmlzVXBkYXRlZCgpKQoJICB2aW9sYXRpb24obmFtZSwgdHJ1ZSk7CiAgICAgIH0gZWxzZSBp
ZiAoZS5nZXRUeXBlKCkuZXF1YWxzSWdub3JlQ2FzZSgiX2RlZmluZWQiKSkgewoJZXhwVHJlZSA9
IChOb2RlKSBlLmdldFZhbHVlKCk7Cgl2YWx1ZSA9ICgoRXZlbnRUeXBlKSBleHBUcmVlLmV2YWx1
YXRlKCkpLmlzUHJlc2VudCgpOwoJaWYgKHZhbHVlKQoJICB2aW9sYXRpb24obmFtZSwgdHJ1ZSk7
CiAgICAgIH0gZWxzZSB7CglTeXN0ZW0uZXJyLnByaW50bG4oIkluY29ycmVjdCB0eXBlIGZvciBl
dmVudCBpbiBTeW1ib2wgVGFibGUgIiArCgkJCSAgICJpbiBjaGVja2VyLiIpOwogICAgICB9CiAg
ICB9CiAgICBmb3IgKGludCBpID0gMDsgaSA8IENoZWNrZXIucHJvcGVydGllcy5zaXplKCk7IGkr
KykgewogICAgICBuYW1lID0gKFN0cmluZykgQ2hlY2tlci5wcm9wZXJ0aWVzLmVsZW1lbnRBdChp
KTsKICAgICAgZSA9IENoZWNrZXIuZ2V0U3ltdGFiRW50cnkobmFtZSk7CiAgICAgIGlmIChlLmdl
dFR5cGUoKS5lcXVhbHNJZ25vcmVDYXNlKCJfaW1wb3J0ZWQiKSkgewoJdGhyVmFsdWUgPSAoKFRo
cmVlVmFsdWVkKSBlLmdldFZhbHVlKCkpLmdldFZhbHVlKCk7CglpZiAodGhyVmFsdWUgPT0gVGhy
ZWVWYWx1ZWQuRkFMU0UpCgkgIHZpb2xhdGlvbihuYW1lLCBmYWxzZSk7CiAgICAgIH0gZWxzZSBp
ZiAoZS5nZXRUeXBlKCkuZXF1YWxzSWdub3JlQ2FzZSgiX2RlZmluZWQiKSkgewoJZXhwVHJlZSA9
IChOb2RlKSBlLmdldFZhbHVlKCk7Cgl0aHJWYWx1ZSA9ICgoVGhyZWVWYWx1ZWQpIGV4cFRyZWUu
ZXZhbHVhdGUoKSkuZ2V0VmFsdWUoKTsKCWlmICh0aHJWYWx1ZSA9PSBUaHJlZVZhbHVlZC5GQUxT
RSkKCSAgdmlvbGF0aW9uKG5hbWUsIGZhbHNlKTsKICAgICAgfSBlbHNlIHsKCVN5c3RlbS5lcnIu
cHJpbnRsbigiSW5jb3JyZWN0IHR5cGUgZm9yIGNvbmRpdGlvbiBpbiBTeW1ib2wgVGFibGUgIiAr
CgkJCSAgICJpbiBjaGVja2VyLiIpOwogICAgICB9CiAgICB9CiAgfQogIAogIC8vIFJvdXRpbmUg
c3BlY2lmaWMgdG8gTUFWIGRlbW8KICBwdWJsaWMgdm9pZCBpbmZvcm1NYXZHVUkoKSB7CiAgICBT
dHJpbmcgZXZlbnQxID0gImVuZFBlcmlvZCI7CiAgICBTdHJpbmcgZXZlbnQyID0gImluY3JlYXNl
IjsKICAgIFN0cmluZyBhdXhWYXJOYW1lID0gInByZXZDb3VudDEiOwogICAgU3RyaW5nIG5hbWUg
PSAiIjsKICAgIFN5bXRhYkVudHJ5IGUgPSBDaGVja2VyLmdldFN5bXRhYkVudHJ5KGV2ZW50MSk7
CiAgICBib29sZWFuIHZhbHVlID0gZmFsc2U7CiAgICBib29sZWFuIGluY3JlYXNlID0gZmFsc2U7
CiAgICBpbnQgaSA9IDA7CiAgICBOb2RlIGV4cFRyZWUgPSBudWxsOwoKICAgIGlmIChlICE9IG51
bGwpIHsKICAgICAgaWYgKGUuZ2V0VHlwZSgpLmVxdWFsc0lnbm9yZUNhc2UoIl9pbXBvcnRlZCIp
KSB7CglpZiAoZS5pc1VwZGF0ZWQoKSkKICAgICAgICAgIHZhbHVlID0gdHJ1ZTsKICAgICAgfSBl
bHNlIGlmIChlLmdldFR5cGUoKS5lcXVhbHNJZ25vcmVDYXNlKCJfZGVmaW5lZCIpKSB7CglleHBU
cmVlID0gKE5vZGUpIGUuZ2V0VmFsdWUoKTsKCXZhbHVlID0gKChCb29sZWFuKSBleHBUcmVlLmV2
YWx1YXRlKCkpLmJvb2xlYW5WYWx1ZSgpOyAKICAgICAgfQogICAgfQogICAgCiAgICAvKgogICAg
ZSA9IENoZWNrZXIuZ2V0U3ltdGFiRW50cnkoZXZlbnQyKTsKICAgIGlmIChlICE9IG51bGwpIHsK
ICAgICAgaWYgKGUuZ2V0VHlwZSgpLmVxdWFsc0lnbm9yZUNhc2UoIl9pbXBvcnRlZCIpKSB7Cglp
ZiAoZS5pc1VwZGF0ZWQoKSkKICAgICAgICAgIGluY3JlYXNlID0gdHJ1ZTsKICAgICAgfSBlbHNl
IGlmIChlLmdldFR5cGUoKS5lcXVhbHNJZ25vcmVDYXNlKCJfZGVmaW5lZCIpKSB7CglleHBUcmVl
ID0gKE5vZGUpIGUuZ2V0VmFsdWUoKTsKCWluY3JlYXNlID0gKChCb29sZWFuKSBleHBUcmVlLmV2
YWx1YXRlKCkpLmJvb2xlYW5WYWx1ZSgpOyAKICAgICAgfQogICAgfQogICAgKi8KICAgIGlmICh2
YWx1ZSkgewogICAgICBlID0gQ2hlY2tlci5nZXRTeW10YWJFbnRyeShhdXhWYXJOYW1lKTsKICAg
ICAgaSA9ICgoSW50ZWdlcikgKChBdXhWYXJWYWx1ZSkgZS5nZXRWYWx1ZSgpKS5nZXRWYWx1ZSgp
KS5pbnRWYWx1ZSgpOwogICAgICBtYWMuZ3VpLk1BVmd1aS5NQVZhbGVydEdyYXBoLmNvbnRyb2xs
ZXIucmVjdGFuZ2xlQXJlYS5kcmF3TUFWYWxlcnQoaSxpbmNyZWFzZSk7CiAgICB9CgogICAgZm9y
IChpbnQgaiA9IDA7IGogPCBDaGVja2VyLmFjdGlvbnMuc2l6ZSgpOyBqKyspIHsKICAgICAgbmFt
ZSA9IChTdHJpbmcpIENoZWNrZXIuYWN0aW9ucy5lbGVtZW50QXQoaik7CiAgICAgIGUgPSBDaGVj
a2VyLmdldFN5bXRhYkVudHJ5KG5hbWUpOwogICAgICBpZiAoZS5pc1VwZGF0ZWQoKSkgewogICAg
ICAgIG1hYy5ndWkuTUFWZ3VpLk1BVmFsZXJ0R3JhcGguY29udHJvbGxlci5yZWN0YW5nbGVBcmVh
LnNob3dBY3Rpb24obmFtZSk7CiAgICAgIH0KICAgIH0KICB9CgoKICAvLyBSZW1vdmVkIHN0YXRp
YyBiZWNhdXNlIG9mIGRhdGFiYXNlIGV4YW1wbGUgdmFyaWFibGUgZXh0ZXJuYWxDb25uZWN0aW9u
CiAgcHVibGljIC8qc3RhdGljKi8gdm9pZCB2aW9sYXRpb24oU3RyaW5nIG5hbWUsIGJvb2xlYW4g
aXNBbGFybSkgewogICAgU3RyaW5nIGxpbmUgPSAiIjsKICAgIGludCBudW1TcGFjZXMgPSAwOwoK
ICAgIGlmIChpc0FsYXJtKQogICAgICBsaW5lID0gIkFsYXJtICIgKyBuYW1lICsgIiBoYXMgYmVl
biByYWlzZWQhISI7CiAgICBlbHNlCiAgICAgIGxpbmUgPSAiUHJvcGVydHkgIiArIG5hbWUgKyAi
IGhhcyBiZWVuIHZpb2xhdGVkISEiOwoKICAgIC8vIEZvciBkYXRhYmFzZSBjbGllbnQgZXhhbXBs
ZQogICAgLy8gaWYgKGV4dGVybmFsQ29ubmVjdGlvbi5pc0Nvbm5lY3RlZCgpKSAKICAgICAgLy8g
ZXh0ZXJuYWxDb25uZWN0aW9uLmV4cG9ydEV2ZW50KG5hbWUpOwoKICAgIC8vIFByZXR0eSBwcmlu
dGluZyByb3V0aW5lCiAgICBwcmludExpbmVzKCk7CiAgICBwcmludEVtcHR5TWlkZGxlTGluZXMo
KTsKICAgIG51bVNwYWNlcyA9ICg2MiAtIGxpbmUubGVuZ3RoKCkpLzI7CiAgICBTeXN0ZW0ub3V0
LnByaW50KCI9PT09Iik7CiAgICBmb3IgKGludCBpPTA7IGk8bnVtU3BhY2VzOyBpKyspCiAgICAg
IFN5c3RlbS5vdXQucHJpbnQoIiAiKTsKICAgIFN5c3RlbS5vdXQucHJpbnQobGluZSk7CiAgICBm
b3IgKGludCBpPTA7IGkgPCAoNjIgLSBsaW5lLmxlbmd0aCgpIC0gbnVtU3BhY2VzKTsgaSsrKQog
ICAgICBTeXN0ZW0ub3V0LnByaW50KCIgIik7CiAgICBTeXN0ZW0ub3V0LnByaW50bG4oIj09PT0i
KTsKICAgIHByaW50RW1wdHlNaWRkbGVMaW5lcygpOwogICAgcHJpbnRMaW5lcygpOwogICAgICAK
ICAgIC8vIEFubm95aW5nIGJlZXAKICAgIC8qZm9yKGludCBpPTA7IGkgPCAxNSA7IGkrKykgewog
ICAgICBTeXN0ZW0uZXJyLnByaW50KCIHIik7CiAgICAgIHRyeXsgCglzbGVlcCgxMDApOwogICAg
ICB9Y2F0Y2goSW50ZXJydXB0ZWRFeGNlcHRpb24gZSkge30KICAgIH0qLwogICAgU3lzdGVtLmVy
ci5wcmludCgiByIpOwogIH0KICBwdWJsaWMgc3RhdGljIHZvaWQgcHJpbnRMaW5lcygpIHsKICAg
IGZvciAoaW50IGk9MDsgaTw0OyBpKyspIHsKICAgICAgZm9yIChpbnQgaj0wOyBqIDwgNzA7IGor
KykKCVN5c3RlbS5vdXQucHJpbnQoIj0iKTsKICAgICAgU3lzdGVtLm91dC5wcmludGxuKCIiKTsK
ICAgIH0KICB9CiAgcHVibGljIHN0YXRpYyB2b2lkIHByaW50RW1wdHlNaWRkbGVMaW5lcygpIHsK
ICAgIGZvciAoaW50IGk9MDsgaTwyOyBpKyspIHsKICAgICAgU3lzdGVtLm91dC5wcmludCgiPT09
PSIpOwogICAgICBmb3IgKGludCBqPTA7IGogPCA2MjsgaisrKQoJU3lzdGVtLm91dC5wcmludCgi
ICIpOwogICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIj09PT0iKTsKICAgIH0KICB9Cn0KCgoKCgoK

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