<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://jogamp.org/bugzilla/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.2"
          urlbase="https://jogamp.org/bugzilla/"
          
          maintainer="sgothel@jausoft.com"
>

    <bug>
          <bug_id>455</bug_id>
          
          <creation_ts>2011-01-06 17:13:32 +0100</creation_ts>
          <short_desc>disabling the auto swap buffer mode causes very high memory consumption</short_desc>
          <delta_ts>2011-11-21 14:14:26 +0100</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>3</classification_id>
          <classification>JogAmp</classification>
          <product>Jogl</product>
          <component>opengl</component>
          <version>2</version>
          <rep_platform>All</rep_platform>
          <op_sys>all</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>WORKSFORME</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>---</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Julien Gouesse">gouessej</reporter>
          <assigned_to name="Sven Gothel">sgothel</assigned_to>
          <cc>sebastien.schneider</cc>
          
          <cf_type>---</cf_type>
          <cf_scm_refs>9e99815645fe255ff3af83ba5b4108907b306a2f</cf_scm_refs>
          <cf_workaround>---</cf_workaround>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>764</commentid>
    <comment_count>0</comment_count>
      <attachid>215</attachid>
    <who name="Julien Gouesse">gouessej</who>
    <bug_when>2011-01-06 17:13:32 +0100</bug_when>
    <thetext>Created attachment 215
main class of the test case

Overview:
When I disable the automatic swap buffer mode of the GLCanvas, I have to swap buffers by myself. When I do not swap the buffers in the display() method of the GLEventListener, the memory consumption increases a lot (more than 1 MB per second). 

Handling manually the swap of buffers is useful to avoid redrawing very big meshes especially in scientific applications.

Steps to Reproduce:
Launch the example that I provide or modify an existing test:
- call glCanvas.setAutoSwapBufferMode(false);
- do not call glCanvas.swapBuffers();

Actual Results:
The memory consumption increases hugely (at least one MB per second). Lots of StructAccessor instances are created.

Expected Results:
The memory consumption should not increase noticeably in comparison with the automatic swap buffer mode.

Build Date &amp; Platform:
Build 266 23-Dec-2010 06:55 on Linux 64 bits, Windows 32 bits and Windows 64 bits

Additional Information:
Please find enclosed a small test case used in an Eclipse RCP application. Press B to disable/enable the automatic swap buffer mode. This test case contains lots of workarounds to avoid breaking the debug pipeline of JOGL 2.0 and is the only public example working with both SWT &amp; JOGL 2 whatever the platform without breaking this pipeline.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>765</commentid>
    <comment_count>1</comment_count>
      <attachid>216</attachid>
    <who name="Julien Gouesse">gouessej</who>
    <bug_when>2011-01-06 17:15:00 +0100</bug_when>
    <thetext>Created attachment 216
activator of the plugin with some useful flags</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1197</commentid>
    <comment_count>2</comment_count>
    <who name="Sven Gothel">sgothel</who>
    <bug_when>2011-11-21 14:14:26 +0100</bug_when>
    <thetext>I am sorry - I have validated this case w/ commit 9e99815645fe255ff3af83ba5b4108907b306a2f
test case TestGearsAWTAnalyzeBug455, using jvisualvm (profiling memory).
Memory consumption varies around +/- 1-3% regardless which test (auto-swap or none).

- Linux, x86_64

- java Java(TM) SE Runtime Environment (build 1.6.0_26-b03)
  Java HotSpot(TM) 64-Bit Server VM (build 20.1-b02, mixed mode)

Pls create a simple test scenario (like the above) which is capable of reproducing this situation.
Until then .. fixed.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>215</attachid>
            <date>2011-01-06 17:13:32 +0100</date>
            <delta_ts>2011-01-06 17:13:32 +0100</delta_ts>
            <desc>main class of the test case</desc>
            <filename>DummyRCPViewer3D.java</filename>
            <type>text/x-java</type>
            <size>16748</size>
            <attacher name="Julien Gouesse">gouessej</attacher>
            
              <data encoding="base64">aW1wb3J0IGphdmEuYXd0LkJvcmRlckxheW91dDsKaW1wb3J0IGphdmEuYXd0LkV2ZW50UXVldWU7
CmltcG9ydCBqYXZhLmF3dC5GcmFtZTsKaW1wb3J0IGphdmEuYXd0LmV2ZW50LkFjdGlvbkV2ZW50
OwppbXBvcnQgamF2YS5hd3QuZXZlbnQuQWN0aW9uTGlzdGVuZXI7CmltcG9ydCBqYXZhLmF3dC5l
dmVudC5Db21wb25lbnRBZGFwdGVyOwppbXBvcnQgamF2YS5hd3QuZXZlbnQuQ29tcG9uZW50RXZl
bnQ7CmltcG9ydCBqYXZhLmF3dC5ldmVudC5LZXlBZGFwdGVyOwppbXBvcnQgamF2YS5hd3QuZXZl
bnQuS2V5RXZlbnQ7CmltcG9ydCBqYXZhLmxhbmcucmVmbGVjdC5GaWVsZDsKaW1wb3J0IGphdmEu
bGFuZy5yZWZsZWN0Lk1ldGhvZDsKCmltcG9ydCBqYXZheC5tZWRpYS5vcGVuZ2wuRGVidWdHTDI7
CmltcG9ydCBqYXZheC5tZWRpYS5vcGVuZ2wuRGVidWdHTDM7CmltcG9ydCBqYXZheC5tZWRpYS5v
cGVuZ2wuRGVidWdHTDNiYzsKaW1wb3J0IGphdmF4Lm1lZGlhLm9wZW5nbC5EZWJ1Z0dMNDsKaW1w
b3J0IGphdmF4Lm1lZGlhLm9wZW5nbC5EZWJ1Z0dMNGJjOwppbXBvcnQgamF2YXgubWVkaWEub3Bl
bmdsLkdMOwppbXBvcnQgamF2YXgubWVkaWEub3BlbmdsLkdMMjsKaW1wb3J0IGphdmF4Lm1lZGlh
Lm9wZW5nbC5HTDJFUzE7CmltcG9ydCBqYXZheC5tZWRpYS5vcGVuZ2wuR0wyR0wzOwppbXBvcnQg
amF2YXgubWVkaWEub3BlbmdsLkdMMzsKaW1wb3J0IGphdmF4Lm1lZGlhLm9wZW5nbC5HTDNiYzsK
aW1wb3J0IGphdmF4Lm1lZGlhLm9wZW5nbC5HTDQ7CmltcG9ydCBqYXZheC5tZWRpYS5vcGVuZ2wu
R0w0YmM7CmltcG9ydCBqYXZheC5tZWRpYS5vcGVuZ2wuR0xBdXRvRHJhd2FibGU7CmltcG9ydCBq
YXZheC5tZWRpYS5vcGVuZ2wuR0xDYXBhYmlsaXRpZXM7CmltcG9ydCBqYXZheC5tZWRpYS5vcGVu
Z2wuR0xDb250ZXh0OwppbXBvcnQgamF2YXgubWVkaWEub3BlbmdsLkdMRXZlbnRMaXN0ZW5lcjsK
aW1wb3J0IGphdmF4Lm1lZGlhLm9wZW5nbC5HTFByb2ZpbGU7CmltcG9ydCBqYXZheC5tZWRpYS5v
cGVuZ2wuYXd0LkdMQ2FudmFzOwppbXBvcnQgamF2YXgubWVkaWEub3BlbmdsLmZpeGVkZnVuYy5H
TExpZ2h0aW5nRnVuYzsKaW1wb3J0IGphdmF4Lm1lZGlhLm9wZW5nbC5maXhlZGZ1bmMuR0xNYXRy
aXhGdW5jOwppbXBvcnQgamF2YXgubWVkaWEub3BlbmdsLmdsdS5HTFU7CmltcG9ydCBqYXZheC5z
d2luZy5UaW1lcjsKCmltcG9ydCBvcmcuZWNsaXBzZS5zd3QuU1dUOwppbXBvcnQgb3JnLmVjbGlw
c2Uuc3d0LmF3dC5TV1RfQVdUOwppbXBvcnQgb3JnLmVjbGlwc2Uuc3d0LmxheW91dC5GaWxsTGF5
b3V0OwppbXBvcnQgb3JnLmVjbGlwc2Uuc3d0LndpZGdldHMuQ29tcG9zaXRlOwppbXBvcnQgb3Jn
LmVjbGlwc2UudWkucGFydC5WaWV3UGFydDsKCmltcG9ydCBjb20uam9nYW1wLm9wZW5nbC51dGls
LkFuaW1hdG9yOwoKcHVibGljIGNsYXNzIER1bW15UkNQVmlld2VyM0QgZXh0ZW5kcyBWaWV3UGFy
dCB7CgogICAgLyoqIGlkZW50aWZpZXIgb2YgdGhlIHZpZXcgdXNlZCBpbiB0aGUgZXh0ZW5zaW9u
IHBvaW50ICovCiAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBJRCA9IER1bW15UkNQVmll
d2VyM0QuY2xhc3MuZ2V0Q2Fub25pY2FsTmFtZSgpOwoKICAgIC8qKiBTV1QgY29tcG9uZW50IGVt
YmVkZGluZyBBV1QgY29tcG9uZW50cyAqLwogICAgcHJpdmF0ZSBDb21wb3NpdGUgZW1iZWRkZWQ7
CgogICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYm9vbGVhbiBpc1dpbmRvd3MgPSBTeXN0ZW0uZ2V0
UHJvcGVydHkoIm9zLm5hbWUiKS5lcXVhbHNJZ25vcmVDYXNlKAogICAgICAgICAgICAid2luZG93
cyIpOwoKICAgIEBPdmVycmlkZQogICAgcHVibGljIHZvaWQgY3JlYXRlUGFydENvbnRyb2woZmlu
YWwgQ29tcG9zaXRlIHBhcmVudCkgewogICAgICAgIC8vIHdlIGNhbid0IHVzZSB0aGUgZGVmYXVs
dCBDb21wb3NpdGUgYmVjYXVzZSB1c2luZyB0aGUgQVdUIGJyaWRnZQogICAgICAgIC8vIHJlcXVp
cmVzIHRoZSBTV1QuRU1CRURERUQgc3R5bGUKICAgICAgICBlbWJlZGRlZCA9IG5ldyBDb21wb3Np
dGUocGFyZW50LCBTV1QuRU1CRURERUQpOwogICAgICAgIC8vIHNldCB0aGUgbGF5b3V0IHNvIG91
ciBjYW52YXMgZmlsbHMgdGhlIHdob2xlIGNvbnRyb2wKICAgICAgICBlbWJlZGRlZC5zZXRMYXlv
dXQobmV3IEZpbGxMYXlvdXQoKSk7CiAgICAgICAgLy8gd29ya2Fyb3VuZCBmb3IgdGhlIGJ1ZyA2
Njc4Mzg1IHVuZGVyIExpbnV4CiAgICAgICAgZmluYWwgRnJhbWUgZnJhbWUgPSBTV1RfQVdUX0Zy
YW1lSGVscGVyLm5ld19GcmFtZShlbWJlZGRlZCk7CiAgICAgICAgLy8gdGhlIGNhbnZhcyBoYXMg
dG8gYmUgY3JlYXRlZCBvbmNlIHRoZSBzaXplIG9mIHRoZSBmcmFtZSB0aGF0IGNvbnRhaW5zIGl0
IGlzIG5vIG1vcmUgemVybywKICAgICAgICAvLyB0aGF0IGlzIHdoeSBpdCBpcyBjYWxsZWQgd2hl
biB0aGUgZnJhbWUgaXMgcmVzaXplZAogICAgICAgIGZyYW1lLmFkZENvbXBvbmVudExpc3RlbmVy
KG5ldyBDb21wb25lbnRBZGFwdGVyKCkgewoKICAgICAgICAgICAgQE92ZXJyaWRlCiAgICAgICAg
ICAgIHB1YmxpYyB2b2lkIGNvbXBvbmVudFJlc2l6ZWQoQ29tcG9uZW50RXZlbnQgZSkgewogICAg
ICAgICAgICAgICAgLy8gdXNlIERpc3BsYXkuZ2V0RGVmYXVsdCgpLmFzeW5jRXhlYyB0byBpbml0
aWFsaXplIFNXVCBHVUkgZWxlbWVudHMgdGhlcmUKCiAgICAgICAgICAgICAgICAvLyBnZXQgdGhl
IHByb2ZpbGUKICAgICAgICAgICAgICAgIEdMUHJvZmlsZSBwcm9maWxlID0gR0xQcm9maWxlLmdl
dERlZmF1bHQoKTsKICAgICAgICAgICAgICAgIC8vIHRoaXMgYWxsb3dzIHVzIHRvIHNldCBwYXJ0
aWN1bGFyIHByb3BlcnRpZXMgZm9yIHRoZSBHTENhbnZhcwogICAgICAgICAgICAgICAgR0xDYXBh
YmlsaXRpZXMgZ2xDYXBhYmlsaXRpZXMgPSBuZXcgR0xDYXBhYmlsaXRpZXMocHJvZmlsZSk7CiAg
ICAgICAgICAgICAgICAvLyBhbnRpIGFsaWFzaW5nCiAgICAgICAgICAgICAgICBnbENhcGFiaWxp
dGllcy5zZXROdW1TYW1wbGVzKDgpOwogICAgICAgICAgICAgICAgZ2xDYXBhYmlsaXRpZXMuc2V0
U2FtcGxlQnVmZmVycyh0cnVlKTsKCiAgICAgICAgICAgICAgICAvLyB3ZSBkb24ndCBuZWVkIGVp
dGhlciBvZiB0aGVzZSwganVzdCBhbiBleGFtcGxlCiAgICAgICAgICAgICAgICBnbENhcGFiaWxp
dGllcy5zZXREb3VibGVCdWZmZXJlZCh0cnVlKTsKICAgICAgICAgICAgICAgIGdsQ2FwYWJpbGl0
aWVzLnNldEhhcmR3YXJlQWNjZWxlcmF0ZWQodHJ1ZSk7CgogICAgICAgICAgICAgICAgZmluYWwg
R0xDYW52YXMgY2FudmFzID0gbmV3IEdMQ2FudmFzKGdsQ2FwYWJpbGl0aWVzKTsKICAgICAgICAg
ICAgICAgIGNhbnZhcy5zZXRBdXRvU3dhcEJ1ZmZlck1vZGUoZmFsc2UpOwogICAgICAgICAgICAg
ICAgY2FudmFzLmFkZEtleUxpc3RlbmVyKG5ldyBLZXlBZGFwdGVyKCkgewoKICAgICAgICAgICAg
ICAgICAgICBAT3ZlcnJpZGUKICAgICAgICAgICAgICAgICAgICBwdWJsaWMgdm9pZCBrZXlSZWxl
YXNlZChLZXlFdmVudCBlKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlLmdldEtleUNv
ZGUoKSA9PSBLZXlFdmVudC5WS19CKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYW52
YXMuc2V0QXV0b1N3YXBCdWZmZXJNb2RlKCFjYW52YXMuZ2V0QXV0b1N3YXBCdWZmZXJNb2RlKCkp
OwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAg
ICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICBjYW52YXMuYWRkR0xFdmVudExpc3RlbmVyKG5l
dyBHTEV2ZW50TGlzdGVuZXIoKSB7CgogICAgICAgICAgICAgICAgICAgIHByaXZhdGUgZmxvYXQg
cHlyYW1pZFJvdGF0aW9uOwoKICAgICAgICAgICAgICAgICAgICBwcml2YXRlIGludCBmcmFtZUlu
ZGV4ID0gMDsKCiAgICAgICAgICAgICAgICAgICAgQE92ZXJyaWRlCiAgICAgICAgICAgICAgICAg
ICAgcHVibGljIHZvaWQgcmVzaGFwZShHTEF1dG9EcmF3YWJsZSBkcmF3YWJsZSwgaW50IHgsIGlu
dCB5LCBpbnQgd2lkdGgsIGludCBoZWlnaHQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgZmlu
YWwgR0wyIGdsID0gR0xDb250ZXh0LmdldEN1cnJlbnRHTCgpLmdldEdMMigpOwogICAgICAgICAg
ICAgICAgICAgICAgICBmaW5hbCBHTFUgZ2x1ID0gbmV3IEdMVSgpOwoKICAgICAgICAgICAgICAg
ICAgICAgICAgZ2wuZ2xWaWV3cG9ydCgwLCAwLCB3aWR0aCwgaGVpZ2h0KTsKICAgICAgICAgICAg
ICAgICAgICAgICAgZ2wuZ2xNYXRyaXhNb2RlKEdMTWF0cml4RnVuYy5HTF9QUk9KRUNUSU9OKTsK
ICAgICAgICAgICAgICAgICAgICAgICAgZ2wuZ2xMb2FkSWRlbnRpdHkoKTsKCiAgICAgICAgICAg
ICAgICAgICAgICAgIGdsdS5nbHVQZXJzcGVjdGl2ZSg0NS4wZiwgKGRvdWJsZSkgd2lkdGggLyAo
ZG91YmxlKSBoZWlnaHQsIDAuMWYsIDEwMDAuMGYpOwoKICAgICAgICAgICAgICAgICAgICAgICAg
Z2wuZ2xNYXRyaXhNb2RlKEdMTWF0cml4RnVuYy5HTF9NT0RFTFZJRVcpOwogICAgICAgICAgICAg
ICAgICAgICAgICBnbC5nbExvYWRJZGVudGl0eSgpOwogICAgICAgICAgICAgICAgICAgIH0KCiAg
ICAgICAgICAgICAgICAgICAgQE92ZXJyaWRlCiAgICAgICAgICAgICAgICAgICAgcHVibGljIHZv
aWQgaW5pdChHTEF1dG9EcmF3YWJsZSBkcmF3YWJsZSkgewogICAgICAgICAgICAgICAgICAgICAg
ICAvLyBhbHdheXMgZ2V0IGEgZnJlc2ggaW5zdGFuY2Ugb2YgR0wgdG8gYXZvaWQgdXNpbmcgYW4g
aW52YWxpZGF0ZWQgR0wgb25lCiAgICAgICAgICAgICAgICAgICAgICAgIGZpbmFsIEdMMiBnbCA9
IEdMQ29udGV4dC5nZXRDdXJyZW50R0woKS5nZXRHTDIoKTsKICAgICAgICAgICAgICAgICAgICAg
ICAgLy8gZW5hYmxlIFYtc3luYwogICAgICAgICAgICAgICAgICAgICAgICBnbC5zZXRTd2FwSW50
ZXJ2YWwoMSk7CgogICAgICAgICAgICAgICAgICAgICAgICBnbC5nbFNoYWRlTW9kZWwoR0xMaWdo
dGluZ0Z1bmMuR0xfU01PT1RIKTsKICAgICAgICAgICAgICAgICAgICAgICAgZ2wuZ2xDbGVhckNv
bG9yKDAuMGYsIDAuMGYsIDAuMGYsIDAuMGYpOwogICAgICAgICAgICAgICAgICAgICAgICBnbC5n
bENsZWFyRGVwdGgoMS4wZik7CiAgICAgICAgICAgICAgICAgICAgICAgIGdsLmdsRW5hYmxlKEdM
LkdMX0RFUFRIX1RFU1QpOwogICAgICAgICAgICAgICAgICAgICAgICBnbC5nbERlcHRoRnVuYyhH
TC5HTF9MRVFVQUwpOwogICAgICAgICAgICAgICAgICAgICAgICBnbC5nbEhpbnQoR0wyRVMxLkdM
X1BFUlNQRUNUSVZFX0NPUlJFQ1RJT05fSElOVCwgR0wuR0xfTklDRVNUKTsKCiAgICAgICAgICAg
ICAgICAgICAgICAgIC8vIHNldCB0aGUgZGVidWcgcGlwZWxpbmUKICAgICAgICAgICAgICAgICAg
ICAgICAgaWYgKGRyYXdhYmxlLmdldEdMKCkuaXNHTDRiYygpKSB7CiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBmaW5hbCBHTDRiYyBnbDRiYyA9IGRyYXdhYmxlLmdldEdMKCkuZ2V0R0w0YmMo
KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRyYXdhYmxlLnNldEdMKG5ldyBEZWJ1Z0dM
NGJjKGdsNGJjKSk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg
ICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZHJhd2FibGUuZ2V0
R0woKS5pc0dMNCgpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmluYWwgR0w0
IGdsNCA9IGRyYXdhYmxlLmdldEdMKCkuZ2V0R0w0KCk7CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZHJhd2FibGUuc2V0R0wobmV3IERlYnVnR0w0KGdsNCkpOwogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRyYXdhYmxlLmdldEdMKCkuaXNHTDNiYygp
KSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbmFsIEdMM2JjIGdsM2Jj
ID0gZHJhd2FibGUuZ2V0R0woKS5nZXRHTDNiYygpOwogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBkcmF3YWJsZS5zZXRHTChuZXcgRGVidWdHTDNiYyhnbDNiYykpOwogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRyYXdhYmxl
LmdldEdMKCkuaXNHTDMoKSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZmluYWwgR0wzIGdsMyA9IGRyYXdhYmxlLmdldEdMKCkuZ2V0R0wzKCk7CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkcmF3YWJsZS5zZXRHTChuZXcgRGVidWdHTDMo
Z2wzKSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBpZiAoZHJhd2FibGUuZ2V0R0woKS5pc0dMMigpKSB7CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmluYWwgR0wyIGdsMiA9IGRyYXdhYmxl
LmdldEdMKCkuZ2V0R0wyKCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZHJhd2FibGUuc2V0R0wobmV3IERlYnVnR0wyKGdsMikpOwogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg
ICAgfQoKICAgICAgICAgICAgICAgICAgICBAT3ZlcnJpZGUKICAgICAgICAgICAgICAgICAgICBw
dWJsaWMgdm9pZCBkaXNwb3NlKEdMQXV0b0RyYXdhYmxlIGRyYXdhYmxlKSB7CgogICAgICAgICAg
ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgQE92ZXJyaWRlCiAgICAgICAgICAgICAg
ICAgICAgcHVibGljIHZvaWQgZGlzcGxheShHTEF1dG9EcmF3YWJsZSBkcmF3YWJsZSkgewogICAg
ICAgICAgICAgICAgICAgICAgICBmaW5hbCBHTDIgZ2wgPSBHTENvbnRleHQuZ2V0Q3VycmVudEdM
KCkuZ2V0R0wyKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIGdsLmdsQ2xlYXIoR0wuR0xfQ09M
T1JfQlVGRkVSX0JJVCB8IEdMLkdMX0RFUFRIX0JVRkZFUl9CSVQpOwogICAgICAgICAgICAgICAg
ICAgICAgICBnbC5nbExvYWRJZGVudGl0eSgpOwogICAgICAgICAgICAgICAgICAgICAgICBnbC5n
bFRyYW5zbGF0ZWYoLTEuNWYsIDAuMGYsIC02LjBmKTsKICAgICAgICAgICAgICAgICAgICAgICAg
Z2wuZ2xSb3RhdGVmKHB5cmFtaWRSb3RhdGlvbiwgMC4wZiwgMS4wZiwgMC4wZik7CiAgICAgICAg
ICAgICAgICAgICAgICAgIGdsLmdsQmVnaW4oR0wuR0xfVFJJQU5HTEVTKTsKICAgICAgICAgICAg
ICAgICAgICAgICAgZ2wuZ2xDb2xvcjNmKDEuMGYsIDAuMGYsIDAuMGYpOwogICAgICAgICAgICAg
ICAgICAgICAgICBnbC5nbFZlcnRleDNmKDAuMGYsIDEuMGYsIDAuMGYpOwogICAgICAgICAgICAg
ICAgICAgICAgICBnbC5nbENvbG9yM2YoMC4wZiwgMS4wZiwgMC4wZik7CiAgICAgICAgICAgICAg
ICAgICAgICAgIGdsLmdsVmVydGV4M2YoLTEuMGYsIC0xLjBmLCAxLjBmKTsKICAgICAgICAgICAg
ICAgICAgICAgICAgZ2wuZ2xDb2xvcjNmKDAuMGYsIDAuMGYsIDEuMGYpOwogICAgICAgICAgICAg
ICAgICAgICAgICBnbC5nbFZlcnRleDNmKDEuMGYsIC0xLjBmLCAxLjBmKTsKICAgICAgICAgICAg
ICAgICAgICAgICAgZ2wuZ2xDb2xvcjNmKDEuMGYsIDAuMGYsIDAuMGYpOwogICAgICAgICAgICAg
ICAgICAgICAgICBnbC5nbFZlcnRleDNmKDAuMGYsIDEuMGYsIDAuMGYpOwogICAgICAgICAgICAg
ICAgICAgICAgICBnbC5nbENvbG9yM2YoMC4wZiwgMC4wZiwgMS4wZik7CiAgICAgICAgICAgICAg
ICAgICAgICAgIGdsLmdsVmVydGV4M2YoMS4wZiwgLTEuMGYsIDEuMGYpOwogICAgICAgICAgICAg
ICAgICAgICAgICBnbC5nbENvbG9yM2YoMC4wZiwgMS4wZiwgMC4wZik7CiAgICAgICAgICAgICAg
ICAgICAgICAgIGdsLmdsVmVydGV4M2YoMS4wZiwgLTEuMGYsIC0xLjBmKTsKICAgICAgICAgICAg
ICAgICAgICAgICAgZ2wuZ2xDb2xvcjNmKDEuMGYsIDAuMGYsIDAuMGYpOwogICAgICAgICAgICAg
ICAgICAgICAgICBnbC5nbFZlcnRleDNmKDAuMGYsIDEuMGYsIDAuMGYpOwogICAgICAgICAgICAg
ICAgICAgICAgICBnbC5nbENvbG9yM2YoMC4wZiwgMS4wZiwgMC4wZik7CiAgICAgICAgICAgICAg
ICAgICAgICAgIGdsLmdsVmVydGV4M2YoMS4wZiwgLTEuMGYsIC0xLjBmKTsKICAgICAgICAgICAg
ICAgICAgICAgICAgZ2wuZ2xDb2xvcjNmKDAuMGYsIDAuMGYsIDEuMGYpOwogICAgICAgICAgICAg
ICAgICAgICAgICBnbC5nbFZlcnRleDNmKC0xLjBmLCAtMS4wZiwgLTEuMGYpOwogICAgICAgICAg
ICAgICAgICAgICAgICBnbC5nbENvbG9yM2YoMS4wZiwgMC4wZiwgMC4wZik7CiAgICAgICAgICAg
ICAgICAgICAgICAgIGdsLmdsVmVydGV4M2YoMC4wZiwgMS4wZiwgMC4wZik7CiAgICAgICAgICAg
ICAgICAgICAgICAgIGdsLmdsQ29sb3IzZigwLjBmLCAwLjBmLCAxLjBmKTsKICAgICAgICAgICAg
ICAgICAgICAgICAgZ2wuZ2xWZXJ0ZXgzZigtMS4wZiwgLTEuMGYsIC0xLjBmKTsKICAgICAgICAg
ICAgICAgICAgICAgICAgZ2wuZ2xDb2xvcjNmKDAuMGYsIDEuMGYsIDAuMGYpOwogICAgICAgICAg
ICAgICAgICAgICAgICBnbC5nbFZlcnRleDNmKC0xLjBmLCAtMS4wZiwgMS4wZik7CiAgICAgICAg
ICAgICAgICAgICAgICAgIGdsLmdsRW5kKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIHB5cmFt
aWRSb3RhdGlvbiArPSAwLjJmOwogICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWNhbnZhcy5n
ZXRBdXRvU3dhcEJ1ZmZlck1vZGUoKSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8g
dGhpcyBoYWNrIGlzIG9ubHkgcmVxdWlyZWQgdW5kZXIgV2luZG93cwogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgaWYgKGlzV2luZG93cykgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIC8vIGNvcHkgdGhlIGNvbG9yZWQgY29udGVudCBvZiB0aGUgYmFjayBidWZmZXIgaW50byB0
aGUgZnJvbnQgYnVmZmVyCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2wuZ2xQdXNo
QXR0cmliKEdMLkdMX0NPTE9SX0JVRkZFUl9CSVQpOwogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGdsLmdsUmVhZEJ1ZmZlcihHTC5HTF9CQUNLKTsKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBnbC5nbERyYXdCdWZmZXIoR0wuR0xfRlJPTlQpOwogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGdsLmdsQ29weVBpeGVscygwLCAwLCBjYW52YXMuZ2V0V2lkdGgoKSwg
Y2FudmFzLmdldEhlaWdodCgpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgR0wyR0wzLkdMX0NPTE9SKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnbC5n
bFBvcEF0dHJpYigpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgLyoqCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiB3aGVuIHRo
ZSBidWZmZXJzIGFyZSBub3Qgc3dhcHBlZCB0aGVyZSwgdGhlIG1lbW9yeSBjb25zdW1wdGlvbgog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICogaW5jcmVhc2VzIGEgbG90CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChmcmFt
ZUluZGV4ICUgMTAgPT0gMCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbnZh
cy5zd2FwQnVmZmVycygpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZnJhbWVJbmRleCA9IChmcmFtZUluZGV4ICsgMSkgJSAxMDsKICAg
ICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg
ICAgIH0pOwoKICAgICAgICAgICAgICAgIC8vIGZpbmFsbHksIGFkZCBvdXIgY2FudmFzIGFzIGEg
Y2hpbGQgb2YgdGhlIGZyYW1lCiAgICAgICAgICAgICAgICBmcmFtZS5hZGQoY2FudmFzLCBCb3Jk
ZXJMYXlvdXQuQ0VOVEVSKTsKCiAgICAgICAgICAgICAgICAvKgogICAgICAgICAgICAgICAgICog
TGF5aW5nIG91dCB0aGUgY29tcG9uZW50cyBiZWZvcmUgc3RhcnRpbmcgdGhlIGFuaW1hdG9yIGlz
IG5lY2Vzc2FyeSBiZWNhdXNlCiAgICAgICAgICAgICAgICAgKiB0aGUgd2lkdGggb2YgdGhlIGNh
bnZhcyBjYW5ub3QgYmUgZXF1YWwgdG8gemVybyBhbmQgdGhlIFNXVC9BV1QgaGVscGVyIHJldHVy
bnMKICAgICAgICAgICAgICAgICAqIEFXVCBmcmFtZXMgd2l0aCBhIHN0cmFuZ2UgYmVoYXZpb3Ig
KHdpZHRoIGFuZCBoZWlnaHQgZXF1YWwgdG8gemVybywgbGF6eSBsYXlvdXQgCiAgICAgICAgICAg
ICAgICAgKiBhbmQgdmFsaWRhdGlvbikuIFRoaXMgY2FsbCBpcyBub3QgbmVjZXNzYXJ5IGluIHBs
YWluIFN3aW5nL0FXVCBhcHBsaWNhdGlvbnMuCiAgICAgICAgICAgICAgICAgKiAqLwogICAgICAg
ICAgICAgICAgZnJhbWUuZG9MYXlvdXQoKTsKCiAgICAgICAgICAgICAgICBBbmltYXRvciBhbmlt
YXRvciA9IG5ldyBBbmltYXRvcihjYW52YXMpOwogICAgICAgICAgICAgICAgYW5pbWF0b3Iuc3Rh
cnQoKTsKCiAgICAgICAgICAgICAgICBmaW5hbCBDb21wb25lbnRBZGFwdGVyIHRoYXRDb21wb25l
bnRBZGFwdGVyID0gdGhpczsKICAgICAgICAgICAgICAgIC8qCiAgICAgICAgICAgICAgICAgKiBU
aGlzIGlzIGEgIm9uZSBzaG90IiBsaXN0ZW5lciwgaXQgc2hvdWxkIGJlIGNhbGxlZCBvbmx5IG9u
Y2UuIFJlbW92ZSBpdAogICAgICAgICAgICAgICAgICogc28gdGhhdCBpdCB3aWxsIG5ldmVyIGJl
IGNhbGxlZCB3aGlsZSBkaXNwb3Npbmcgb3IgY2hhbmdpbmcgdGhlIHZpZXdlci4KICAgICAgICAg
ICAgICAgICAqICovCiAgICAgICAgICAgICAgICBFdmVudFF1ZXVlLmludm9rZUxhdGVyKG5ldyBS
dW5uYWJsZSgpIHsKCiAgICAgICAgICAgICAgICAgICAgQE92ZXJyaWRlCiAgICAgICAgICAgICAg
ICAgICAgcHVibGljIGZpbmFsIHZvaWQgcnVuKCkgewogICAgICAgICAgICAgICAgICAgICAgICBm
cmFtZS5yZW1vdmVDb21wb25lbnRMaXN0ZW5lcih0aGF0Q29tcG9uZW50QWRhcHRlcik7CiAgICAg
ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIH0KICAgICAg
ICB9KTsKICAgIH0KCiAgICBAT3ZlcnJpZGUKICAgIHB1YmxpYyB2b2lkIHNldEZvY3VzKCkgewoK
ICAgIH0KCiAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjbGFzcyBTV1RfQVdUX0ZyYW1lSGVscGVy
IHsKCiAgICAgICAgcHJpdmF0ZSBzdGF0aWMgYm9vbGVhbiB4MTFFcnJvckhhbmRsZXJGaXhJbnN0
YWxsZWQgPSBmYWxzZTsKCiAgICAgICAgLyoqCiAgICAgICAgICogdGhpcyBmaXggaXMgcmVxdWly
ZWQgZm9yIEdUSyBidXQgbm90IGZvciBNb3RpZgogICAgICAgICAqLwogICAgICAgIHByaXZhdGUg
c3RhdGljIGZpbmFsIGJvb2xlYW4geDExRXJyb3JIYW5kbGVyRml4UmVxdWlyZWRGb3JUaGlzUGxh
dGZvcm0gPSAiZ3RrIi5lcXVhbHMoU1dUCiAgICAgICAgICAgICAgICAuZ2V0UGxhdGZvcm0oKSk7
CgogICAgICAgIC8qKgogICAgICAgICAqIHRoaXMgZml4IGlzIG5vdCBuZWNlc3NhcnkgaW4gSmF2
YSAxLjcKICAgICAgICAgKi8KICAgICAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBib29sZWFuIHgx
MUVycm9ySGFuZGxlckZpeFJlcXVpcmVkRm9yVGhpc0phdmFWZXJzaW9uID0gaXNYMTFFcnJvckhh
bmRsZXJGaXhSZXF1aXJlZCgpOwoKICAgICAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBib29sZWFu
IGlzWDExRXJyb3JIYW5kbGVyRml4UmVxdWlyZWQoKSB7CiAgICAgICAgICAgIGZpbmFsIFN0cmlu
ZyBqYXZhVmVyc2lvbldpdGhvdXRVcGRhdGVOdW1iZXIgPSBTeXN0ZW0uZ2V0UHJvcGVydHkoImph
dmEudmVyc2lvbiIpCiAgICAgICAgICAgICAgICAgICAgLnN1YnN0cmluZygwLCAzKTsKICAgICAg
ICAgICAgcmV0dXJuIChqYXZhVmVyc2lvbldpdGhvdXRVcGRhdGVOdW1iZXIuZXF1YWxzKCIxLjAi
KQogICAgICAgICAgICAgICAgICAgIHx8IGphdmFWZXJzaW9uV2l0aG91dFVwZGF0ZU51bWJlci5l
cXVhbHMoIjEuMSIpCiAgICAgICAgICAgICAgICAgICAgfHwgamF2YVZlcnNpb25XaXRob3V0VXBk
YXRlTnVtYmVyLmVxdWFscygiMS4yIikKICAgICAgICAgICAgICAgICAgICB8fCBqYXZhVmVyc2lv
bldpdGhvdXRVcGRhdGVOdW1iZXIuZXF1YWxzKCIxLjMiKQogICAgICAgICAgICAgICAgICAgIHx8
IGphdmFWZXJzaW9uV2l0aG91dFVwZGF0ZU51bWJlci5lcXVhbHMoIjEuNCIpCiAgICAgICAgICAg
ICAgICAgICAgfHwgamF2YVZlcnNpb25XaXRob3V0VXBkYXRlTnVtYmVyLmVxdWFscygiMS41Iikg
fHwgamF2YVZlcnNpb25XaXRob3V0VXBkYXRlTnVtYmVyCiAgICAgICAgICAgICAgICAgICAgLmVx
dWFscygiMS42IikpOwogICAgICAgIH0KCiAgICAgICAgLyoqCiAgICAgICAgICogV29ya2Fyb3Vu
ZCBmb3IgaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTE3MTQz
MgogICAgICAgICAqLwogICAgICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIHZvaWQgaW5pdFgxMUVy
cm9ySGFuZGxlckZpeCgpIHsKICAgICAgICAgICAgYXNzZXJ0IEV2ZW50UXVldWUuaXNEaXNwYXRj
aFRocmVhZCgpOwoKICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgIC8vIGdldCBYbGli
V3JhcHBlci5TZXRUb29sa2l0RXJyb3JIYW5kbGVyKCkgYW5kIFhTZXRFcnJvckhhbmRsZXIoKSBt
ZXRob2RzCiAgICAgICAgICAgICAgICBDbGFzcyB4bGlid3JhcHBlckNsYXNzID0gQ2xhc3MuZm9y
TmFtZSgic3VuLmF3dC5YMTEuWGxpYldyYXBwZXIiKTsKICAgICAgICAgICAgICAgIGZpbmFsIE1l
dGhvZCBzZXRUb29sa2l0RXJyb3JIYW5kbGVyTWV0aG9kID0geGxpYndyYXBwZXJDbGFzcy5nZXRE
ZWNsYXJlZE1ldGhvZCgKICAgICAgICAgICAgICAgICAgICAgICAgIlNldFRvb2xraXRFcnJvckhh
bmRsZXIiLCBudWxsKTsKICAgICAgICAgICAgICAgIGZpbmFsIE1ldGhvZCBzZXRFcnJvckhhbmRs
ZXJNZXRob2QgPSB4bGlid3JhcHBlckNsYXNzLmdldERlY2xhcmVkTWV0aG9kKAogICAgICAgICAg
ICAgICAgICAgICAgICAiWFNldEVycm9ySGFuZGxlciIsIG5ldyBDbGFzc1tdIHsgTG9uZy5UWVBF
IH0pOwogICAgICAgICAgICAgICAgc2V0VG9vbGtpdEVycm9ySGFuZGxlck1ldGhvZC5zZXRBY2Nl
c3NpYmxlKHRydWUpOwogICAgICAgICAgICAgICAgc2V0RXJyb3JIYW5kbGVyTWV0aG9kLnNldEFj
Y2Vzc2libGUodHJ1ZSk7CgogICAgICAgICAgICAgICAgLy8gZ2V0IFhUb29sa2l0LnNhdmVkX2Vy
cm9yX2hhbmRsZXIgZmllbGQKICAgICAgICAgICAgICAgIENsYXNzIHh0b29sa2l0Q2xhc3MgPSBD
bGFzcy5mb3JOYW1lKCJzdW4uYXd0LlgxMS5YVG9vbGtpdCIpOwogICAgICAgICAgICAgICAgZmlu
YWwgRmllbGQgc2F2ZWRFcnJvckhhbmRsZXJGaWVsZCA9IHh0b29sa2l0Q2xhc3MKICAgICAgICAg
ICAgICAgICAgICAgICAgLmdldERlY2xhcmVkRmllbGQoInNhdmVkX2Vycm9yX2hhbmRsZXIiKTsK
ICAgICAgICAgICAgICAgIHNhdmVkRXJyb3JIYW5kbGVyRmllbGQuc2V0QWNjZXNzaWJsZSh0cnVl
KTsKCiAgICAgICAgICAgICAgICAvLyBkZXRlcm1pbmUgdGhlIGN1cnJlbnQgZXJyb3IgaGFuZGxl
ciBhbmQgdGhlIHZhbHVlIG9mCiAgICAgICAgICAgICAgICAvLyBYTGliV3JhcHBlci5Ub29sa2l0
RXJyb3JIYW5kbGVyCiAgICAgICAgICAgICAgICAvLyAoWGxpYldyYXBwZXIuU2V0VG9vbGtpdEVy
cm9ySGFuZGxlcigpIHNldHMgdGhlIFgxMSBlcnJvciBoYW5kbGVyIHRvCiAgICAgICAgICAgICAg
ICAvLyBYTGliV3JhcHBlci5Ub29sa2l0RXJyb3JIYW5kbGVyIGFuZCByZXR1cm5zIHRoZSBvbGQg
ZXJyb3IgaGFuZGxlcikKICAgICAgICAgICAgICAgIGZpbmFsIE9iamVjdCBkZWZhdWx0RXJyb3JI
YW5kbGVyID0gc2V0VG9vbGtpdEVycm9ySGFuZGxlck1ldGhvZC5pbnZva2UobnVsbCwgbnVsbCk7
CiAgICAgICAgICAgICAgICBmaW5hbCBPYmplY3QgdG9vbGtpdEVycm9ySGFuZGxlciA9IHNldFRv
b2xraXRFcnJvckhhbmRsZXJNZXRob2QuaW52b2tlKG51bGwsIG51bGwpOwogICAgICAgICAgICAg
ICAgc2V0RXJyb3JIYW5kbGVyTWV0aG9kLmludm9rZShudWxsLCBuZXcgT2JqZWN0W10geyBkZWZh
dWx0RXJyb3JIYW5kbGVyIH0pOwoKICAgICAgICAgICAgICAgIC8vIGNyZWF0ZSB0aW1lciB0aGF0
IHdhdGNoZXMgWFRvb2xraXQuc2F2ZWRfZXJyb3JfaGFuZGxlciB3aGV0aGVyIGl0cyB2YWx1ZSBp
cyBlcXVhbAogICAgICAgICAgICAgICAgLy8gdG8gWExpYldyYXBwZXIuVG9vbGtpdEVycm9ySGFu
ZGxlciwgd2hpY2ggaW5kaWNhdGVzIHRoZSBzdGFydCBvZiB0aGUgdHJvdWJsZQogICAgICAgICAg
ICAgICAgVGltZXIgdGltZXIgPSBuZXcgVGltZXIoMjAwLCBuZXcgQWN0aW9uTGlzdGVuZXIoKSB7
CiAgICAgICAgICAgICAgICAgICAgcHVibGljIHZvaWQgYWN0aW9uUGVyZm9ybWVkKEFjdGlvbkV2
ZW50IGUpIHsKICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIE9iamVjdCBzYXZlZEVycm9ySGFuZGxlciA9IHNhdmVkRXJyb3JIYW5kbGVyRmll
bGQuZ2V0KG51bGwpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRvb2xraXRFcnJv
ckhhbmRsZXIuZXF1YWxzKHNhdmVkRXJyb3JIYW5kbGVyKSkgewogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIC8vIExhc3Qgc2F2ZWQgZXJyb3IgaGFuZGxlciBpbiBYVG9vbGtpdC5XSVRI
X1hFUlJPUl9IQU5ETEVSCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gaXMgWExp
YldyYXBwZXIuVG9vbGtpdEVycm9ySGFuZGxlciwgd2hpY2ggd2lsbCBjYXVzZQogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIC8vIHRoZSBTdGFja092ZXJmbG93RXJyb3Igd2hlbiB0aGUg
bmV4dCBYMTEgZXJyb3Igb2NjdXJzLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8v
IFdvcmthcm91bmQ6IHJlc3RvcmUgdGhlIGRlZmF1bHQgZXJyb3IgaGFuZGxlci4KICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAvLyBBbHNvIHVwZGF0ZSBYVG9vbGtpdC5zYXZlZF9lcnJv
cl9oYW5kbGVyIHNvIHRoYXQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGlz
IGlzIGRvbmUgb25seSBvbmNlLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldEVy
cm9ySGFuZGxlck1ldGhvZC5pbnZva2UobnVsbCwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIG5ldyBPYmplY3RbXSB7IGRlZmF1bHRFcnJvckhhbmRsZXIgfSk7CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2F2ZWRFcnJvckhhbmRsZXJGaWVsZC5zZXRMb25n
KG51bGwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKExvbmcpIGRl
ZmF1bHRFcnJvckhhbmRsZXIpLmxvbmdWYWx1ZSgpKTsKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBj
YXRjaCAoRXhjZXB0aW9uIGV4KSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBpZ25v
cmUKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICB9CiAgICAg
ICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgIHRpbWVyLnN0YXJ0KCk7CiAgICAgICAgICAg
IH0KICAgICAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbiBleCkgewogICAgICAgICAgICAgICAgLy8g
aWdub3JlCiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIHByaXZhdGUgc3RhdGljIGZp
bmFsIEZyYW1lIG5ld19GcmFtZShDb21wb3NpdGUgcGFyZW50KSB7CiAgICAgICAgICAgIGZpbmFs
IEZyYW1lIGZyYW1lID0gU1dUX0FXVC5uZXdfRnJhbWUocGFyZW50KTsKICAgICAgICAgICAgaWYg
KHgxMUVycm9ySGFuZGxlckZpeFJlcXVpcmVkRm9yVGhpc0phdmFWZXJzaW9uCiAgICAgICAgICAg
ICAgICAgICAgJiYgeDExRXJyb3JIYW5kbGVyRml4UmVxdWlyZWRGb3JUaGlzUGxhdGZvcm0gJiYg
IXgxMUVycm9ySGFuZGxlckZpeEluc3RhbGxlZCkgewogICAgICAgICAgICAgICAgeDExRXJyb3JI
YW5kbGVyRml4SW5zdGFsbGVkID0gdHJ1ZTsKICAgICAgICAgICAgICAgIEV2ZW50UXVldWUuaW52
b2tlTGF0ZXIobmV3IFJ1bm5hYmxlKCkgewogICAgICAgICAgICAgICAgICAgIHB1YmxpYyB2b2lk
IHJ1bigpIHsKICAgICAgICAgICAgICAgICAgICAgICAgaW5pdFgxMUVycm9ySGFuZGxlckZpeCgp
OwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICB9
CiAgICAgICAgICAgIHJldHVybiAoZnJhbWUpOwogICAgICAgIH0KICAgIH0KfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>216</attachid>
            <date>2011-01-06 17:15:00 +0100</date>
            <delta_ts>2011-01-06 17:15:00 +0100</delta_ts>
            <desc>activator of the plugin with some useful flags</desc>
            <filename>Activator.java</filename>
            <type>text/x-java</type>
            <size>1907</size>
            <attacher name="Julien Gouesse">gouessej</attacher>
            
              <data encoding="base64">aW1wb3J0IG9yZy5lY2xpcHNlLmpmYWNlLnJlc291cmNlLkltYWdlRGVzY3JpcHRvcjsKaW1wb3J0
IG9yZy5lY2xpcHNlLnVpLnBsdWdpbi5BYnN0cmFjdFVJUGx1Z2luOwppbXBvcnQgb3JnLm9zZ2ku
ZnJhbWV3b3JrLkJ1bmRsZUNvbnRleHQ7CgovKioKICogVGhlIGFjdGl2YXRvciBjbGFzcyBjb250
cm9scyB0aGUgcGx1Zy1pbiBsaWZlIGN5Y2xlCiAqLwpwdWJsaWMgY2xhc3MgQWN0aXZhdG9yIGV4
dGVuZHMgQWJzdHJhY3RVSVBsdWdpbiB7CgogICAgLy8gVGhlIHBsdWctaW4gSUQKICAgIHB1Ymxp
YyBzdGF0aWMgZmluYWwgU3RyaW5nIFBMVUdJTl9JRCA9ICJqb2dsMnZpZXdlciI7CgogICAgLy8g
VGhlIHNoYXJlZCBpbnN0YW5jZQogICAgcHJpdmF0ZSBzdGF0aWMgQWN0aXZhdG9yIHBsdWdpbjsK
CiAgICBzdGF0aWMgewogICAgICAgIC8vIHRoZXNlIHByb3BlcnRpZXMgaGF2ZSB0byBiZSBzZXQg
dmVyeSBlYXJseSBhdCBydW50aW1lIHRvIGJlIGVmZmljaWVudAogICAgICAgIC8vIHJlbW92ZSBm
bGlja2VyaW5nCiAgICAgICAgU3lzdGVtLnNldFByb3BlcnR5KCJzdW4uYXd0Lm5vZXJhc2ViYWNr
Z3JvdW5kIiwgInRydWUiKTsKICAgICAgICAvLyBkaXNhYmxlIERpcmVjdERyYXcvRGlyZWN0M0Qg
dG8gYXZvaWQgY29uZmxpY3RzIHdpdGggT3BlbkdMCiAgICAgICAgU3lzdGVtLnNldFByb3BlcnR5
KCJzdW4uamF2YTJkLm5vZGRyYXciLCAidHJ1ZSIpOwogICAgICAgIC8vIGVuYWJsZSB0aGUgZnVs
bCBKYXZhMkQvT3BlbkdMIHBpcGVsaW5lCiAgICAgICAgU3lzdGVtLnNldFByb3BlcnR5KCJzdW4u
amF2YTJkLm9wZW5nbCIsICJ0cnVlIik7CiAgICB9CgogICAgLyoqCiAgICAgKiBUaGUgY29uc3Ry
dWN0b3IKICAgICAqLwogICAgcHVibGljIEFjdGl2YXRvcigpIHsKICAgIH0KCiAgICAvKgogICAg
ICogKG5vbi1KYXZhZG9jKQogICAgICogQHNlZSBvcmcuZWNsaXBzZS51aS5wbHVnaW4uQWJzdHJh
Y3RVSVBsdWdpbiNzdGFydChvcmcub3NnaS5mcmFtZXdvcmsuQnVuZGxlQ29udGV4dCkKICAgICAq
LwogICAgQE92ZXJyaWRlCiAgICBwdWJsaWMgdm9pZCBzdGFydChCdW5kbGVDb250ZXh0IGNvbnRl
eHQpIHRocm93cyBFeGNlcHRpb24gewogICAgICAgIHN1cGVyLnN0YXJ0KGNvbnRleHQpOwogICAg
ICAgIHBsdWdpbiA9IHRoaXM7CiAgICB9CgogICAgLyoKICAgICAqIChub24tSmF2YWRvYykKICAg
ICAqIEBzZWUgb3JnLmVjbGlwc2UudWkucGx1Z2luLkFic3RyYWN0VUlQbHVnaW4jc3RvcChvcmcu
b3NnaS5mcmFtZXdvcmsuQnVuZGxlQ29udGV4dCkKICAgICAqLwogICAgQE92ZXJyaWRlCiAgICBw
dWJsaWMgdm9pZCBzdG9wKEJ1bmRsZUNvbnRleHQgY29udGV4dCkgdGhyb3dzIEV4Y2VwdGlvbiB7
CiAgICAgICAgcGx1Z2luID0gbnVsbDsKICAgICAgICBzdXBlci5zdG9wKGNvbnRleHQpOwogICAg
fQoKICAgIC8qKgogICAgICogUmV0dXJucyB0aGUgc2hhcmVkIGluc3RhbmNlCiAgICAgKiAKICAg
ICAqIEByZXR1cm4gdGhlIHNoYXJlZCBpbnN0YW5jZQogICAgICovCiAgICBwdWJsaWMgc3RhdGlj
IEFjdGl2YXRvciBnZXREZWZhdWx0KCkgewogICAgICAgIHJldHVybiBwbHVnaW47CiAgICB9Cgog
ICAgLyoqCiAgICAgKiBSZXR1cm5zIGFuIGltYWdlIGRlc2NyaXB0b3IgZm9yIHRoZSBpbWFnZSBm
aWxlIGF0IHRoZSBnaXZlbiBwbHVnLWluIHJlbGF0aXZlIHBhdGgKICAgICAqIAogICAgICogQHBh
cmFtIHBhdGggdGhlIHBhdGgKICAgICAqIEByZXR1cm4gdGhlIGltYWdlIGRlc2NyaXB0b3IKICAg
ICAqLwogICAgcHVibGljIHN0YXRpYyBJbWFnZURlc2NyaXB0b3IgZ2V0SW1hZ2VEZXNjcmlwdG9y
KFN0cmluZyBwYXRoKSB7CiAgICAgICAgcmV0dXJuIGltYWdlRGVzY3JpcHRvckZyb21QbHVnaW4o
UExVR0lOX0lELCBwYXRoKTsKICAgIH0KfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>