<?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>50</bug_id>
          
          <creation_ts>2003-11-20 12:16:59 +0100</creation_ts>
          <short_desc>Creating a GLCanvas from the AWT thread fails</short_desc>
          <delta_ts>2010-03-24 07:46:04 +0100</delta_ts>
          <reporter_accessible>0</reporter_accessible>
          <cclist_accessible>0</cclist_accessible>
          <classification_id>3</classification_id>
          <classification>JogAmp</classification>
          <product>Jogl</product>
          <component>core</component>
          <version>1</version>
          <rep_platform>All</rep_platform>
          <op_sys>windows</op_sys>
          <bug_status>VERIFIED</bug_status>
          <resolution>WORKSFORME</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P3</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Sven Gothel">sgothel</reporter>
          <assigned_to name="Sven Gothel">sgothel</assigned_to>
          
          
          <cf_type>DEFECT</cf_type>
          <cf_scm_refs></cf_scm_refs>
          <cf_workaround>---</cf_workaround>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>66</commentid>
    <comment_count>0</comment_count>
    <who name="Sven Gothel">sgothel</who>
    <bug_when>2010-03-24 07:46:04 +0100</bug_when>
    <thetext>


---- Reported by fsk456 2003-11-20 00:16:59 ----

Creating a GLCanvas inside the AWT thread (e.g. from a swing component),
fails when a resize/reshape of the GLCanvas is triggered.

Example:
I open a JFrame with a JButton inside that, when pressed, triggers the creation
of a GLCanvas that is added to the frame&apos;s content pane.
When the creation of the GLCanvas triggers a reshape (I call setSize), I get the
following exception:
net.java.games.jogl.GLException: Unable to lock surface  
(stack trace at end).
 
A workaround that I found is to create a new thread in the actionPerformed of
the button-listener (AWT thread), create the GLCanvas in the new thread, while
the AWT thread is waiting for the new thread to finish.

I&apos;ve got a modifed gears demo that shows the issue.
I&apos;ll try to attach it to this issue.



--- The full stack trace ---
net.java.games.jogl.GLException: Unable to lock surface
	at
net.java.games.jogl.impl.windows.WindowsOnscreenGLContext.lockSurface(WindowsOnscreenGLContext.java:155)
	at
net.java.games.jogl.impl.windows.WindowsOnscreenGLContext.makeCurrent(WindowsOnscreenGLContext.java:107)
	at net.java.games.jogl.impl.GLContext.invokeGL(GLContext.java:199)
	at net.java.games.jogl.GLCanvas.reshape(GLCanvas.java:105)
	at java.awt.Component.setBounds(Component.java:1664)
	at java.awt.Component.resize(Component.java:1601)
	at java.awt.Component.setSize(Component.java:1593)
	at Gears.startGears(Gears.java:74)
	at Gears$1.actionPerformed(Gears.java:46)
	at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1786)
	at
javax.swing.AbstractButton$ForwardActionEvents.actionPerformed(AbstractButton.java:1839)
	at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:420)
	at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:258)
	at
javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:245)
	at java.awt.Component.processMouseEvent(Component.java:5100)
	at java.awt.Component.processEvent(Component.java:4897)
	at java.awt.Container.processEvent(Container.java:1569)
	at java.awt.Component.dispatchEventImpl(Component.java:3615)
	at java.awt.Container.dispatchEventImpl(Container.java:1627)
	at java.awt.Component.dispatchEvent(Component.java:3477)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:3483)
	at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3198)
	at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3128)
	at java.awt.Container.dispatchEventImpl(Container.java:1613)
	at java.awt.Window.dispatchEventImpl(Window.java:1606)
	at java.awt.Component.dispatchEvent(Component.java:3477)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:456)
	at
java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:201)
	at
java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:145)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:137)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:100)



---- Additional Comments From fsk456 2003-11-20 00:19:16 ----

Created an attachment
Modified gears demo demonstrating issue (and new thread workaround)




---- Additional Comments From kbr 2005-01-30 23:51:07 ----

This issue has been fixed in one of the more recent JOGL builds. The root cause
was probably proper understanding of exactly when the underlying AWT component
had been realized. Since I don&apos;t know the exact root cause I&apos;m marking it &quot;works
for me&quot;; please open another bug if similar problems surface.




--- Bug imported by sgothel@jausoft.com 2010-03-24 07:46 EDT  ---

This bug was previously known as _bug_ 50 at https://jogl.dev.java.net/bugs/show_bug.cgi?id=50
Imported an attachment (id=12)

The original submitter of attachment 12 is unknown.
   Reassigning to the person who moved it here: sgothel@jausoft.com.

</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>12</attachid>
            <date>2003-11-20 00:19:00 +0100</date>
            <delta_ts>2003-11-20 00:19:00 +0100</delta_ts>
            <desc>Modified gears demo demonstrating issue (and new thread workaround)</desc>
            <filename>Gears.java</filename>
            <type>text/plain</type>
            <size>12810</size>
            <attacher name="Sven Gothel">sgothel</attacher>
            
              <data encoding="base64">Ly9wYWNrYWdlIGRlbW9zLmdlYXJzOwoKaW1wb3J0IGphdmEuYXd0Lio7CmltcG9ydCBqYXZhLmF3
dC5ldmVudC4qOwoKaW1wb3J0IG5ldC5qYXZhLmdhbWVzLmpvZ2wuKjsKCmltcG9ydCBqYXZheC5z
d2luZy4qOwoKLyoqCiAqIEdlYXJzLmphdmEgPEJSPgogKiBhdXRob3I6IEJyaWFuIFBhdWwgKGNv
bnZlcnRlZCB0byBKYXZhIGJ5IFJvbiBDZW1lciBhbmQgU3ZlbiBHb2V0aGVsKSA8UD4KICoKICog
VGhpcyB2ZXJzaW9uIGlzIGVxdWFsIHRvIEJyaWFuIFBhdWwncyB2ZXJzaW9uIDEuMiAxOTk5LzEw
LzIxCiAqCiAqIENoYW5nZSBmb3IgdGVzdHMuLi4KICovCgpwdWJsaWMgY2xhc3MgR2VhcnMgewog
IC8vIFNldHRpbmcgdGhpcyB0byB0cnVlLCBtYWtlcyBpdCB3b3JrLi4uCiAgcHJpdmF0ZSBzdGF0
aWMgYm9vbGVhbiBVU0VfVEhSRUFEX1RPX1NUQVJUX0pPR0wgPSBmYWxzZTsKCiAgcHVibGljIHN0
YXRpYyB2b2lkIG1haW4oIFN0cmluZ1tdIGFyZ3MgKSB7CiAgICBmaW5hbCBKRnJhbWUgZnJhbWUg
PSBuZXcgSkZyYW1lKCAiR2VhciBEZW1vIiApOwoKICAgIGZpbmFsIENvbnRhaW5lciBwYW5lID0g
ZnJhbWUuZ2V0Q29udGVudFBhbmUoKTsKICAgIHBhbmUuc2V0TGF5b3V0KCBuZXcgQm9yZGVyTGF5
b3V0KCkgKTsKCiAgICBKQnV0dG9uIGJ1dHRvbiA9IG5ldyBKQnV0dG9uKCAiQWN0aXZhdGUgR2Vh
cnMiICk7CiAgICBidXR0b24uYWRkQWN0aW9uTGlzdGVuZXIoIG5ldyBBY3Rpb25MaXN0ZW5lcigp
IHsKICAgICAgcHVibGljIHZvaWQgYWN0aW9uUGVyZm9ybWVkKCBBY3Rpb25FdmVudCBlICkgewog
ICAgICAgIGlmICggVVNFX1RIUkVBRF9UT19TVEFSVF9KT0dMICkgewogICAgICAgICAgVGhyZWFk
IGluaXRfM2RfdGhyZWFkID0gbmV3IFRocmVhZCgpIHsKICAgICAgICAgICAgcHVibGljIHZvaWQg
cnVuKCkgewogICAgICAgICAgICAgIHN0YXJ0R2VhcnMoIHBhbmUgKTsKICAgICAgICAgICAgfQog
ICAgICAgICAgfTsKCiAgICAgICAgICBpbml0XzNkX3RocmVhZC5zdGFydCgpOwogICAgICAgICAg
dHJ5IHsKICAgICAgICAgICAgaW5pdF8zZF90aHJlYWQuam9pbigpOwogICAgICAgICAgfSBjYXRj
aCAoIEludGVycnVwdGVkRXhjZXB0aW9uIGV4ICkgewogICAgICAgICAgICBleC5wcmludFN0YWNr
VHJhY2UoKTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgZWxzZQogICAgICAgICAgc3Rh
cnRHZWFycyggcGFuZSApOwoKICAgICAgICBmcmFtZS5wYWNrKCk7CiAgICAgICAgZnJhbWUuaW52
YWxpZGF0ZSgpOwogICAgICB9CiAgICB9ICk7CiAgICBwYW5lLmFkZCggYnV0dG9uLCBCb3JkZXJM
YXlvdXQuTk9SVEggKTsKCiAgICBmcmFtZS5hZGRXaW5kb3dMaXN0ZW5lciggbmV3IFdpbmRvd0Fk
YXB0ZXIoKSB7CiAgICAgIHB1YmxpYyB2b2lkIHdpbmRvd0Nsb3NpbmcoIFdpbmRvd0V2ZW50IGUg
KSB7CiAgICAgICAgU3lzdGVtLmV4aXQoIDAgKTsKICAgICAgfQogICAgfSApOwoKICAgIGZyYW1l
LnBhY2soKTsKICAgIGZyYW1lLnNob3coKTsKICB9CgogIHB1YmxpYyBzdGF0aWMgdm9pZCBzdGFy
dEdlYXJzKCBDb250YWluZXIgcGFuZSApIHsKICAgIEdMQ2FudmFzIGNhbnZhcyA9IEdMRHJhd2Fi
bGVGYWN0b3J5LmdldEZhY3RvcnkoKS5jcmVhdGVHTENhbnZhcyggbmV3IEdMQ2FwYWJpbGl0aWVz
KCkgKTsKCiAgICAvLyBVc2UgZGVidWcgcGlwZWxpbmUKICAgIC8vICAgIGNhbnZhcy5zZXRHTChu
ZXcgRGVidWdHTChjYW52YXMuZ2V0R0woKSkpOwogICAgU3lzdGVtLmVyci5wcmludGxuKCAiQ0FO
VkFTIEdMIElTOiAiICsgY2FudmFzLmdldEdMKCkuZ2V0Q2xhc3MoKS5nZXROYW1lKCkgKTsKICAg
IFN5c3RlbS5lcnIucHJpbnRsbiggIkNBTlZBUyBHTFUgSVM6ICIgKyBjYW52YXMuZ2V0R0xVKCku
Z2V0Q2xhc3MoKS5nZXROYW1lKCkgKTsKCiAgICBjYW52YXMuYWRkR0xFdmVudExpc3RlbmVyKCBu
ZXcgR2VhclJlbmRlcmVyKCkgKTsKCiAgICBjYW52YXMuc2V0U2l6ZSggMzAwLCAzMDAgKTsKICAg
IHBhbmUuYWRkKCBjYW52YXMsIEJvcmRlckxheW91dC5DRU5URVIgKTsKCiAgfQoKICBzdGF0aWMg
Y2xhc3MgR2VhclJlbmRlcmVyIGltcGxlbWVudHMgR0xFdmVudExpc3RlbmVyLCBNb3VzZUxpc3Rl
bmVyLCBNb3VzZU1vdGlvbkxpc3RlbmVyIHsKICAgIHByaXZhdGUgZmxvYXQgdmlld19yb3R4ID0g
MjAuMGYsIHZpZXdfcm90eSA9IDMwLjBmLCB2aWV3X3JvdHogPSAwLjBmOwogICAgcHJpdmF0ZSBp
bnQgZ2VhcjEsIGdlYXIyLCBnZWFyMzsKICAgIHByaXZhdGUgZmxvYXQgYW5nbGUgPSAwLjBmOwoK
ICAgIHByaXZhdGUgaW50IHByZXZNb3VzZVgsIHByZXZNb3VzZVk7CiAgICBwcml2YXRlIGJvb2xl
YW4gbW91c2VSQnV0dG9uRG93biA9IGZhbHNlOwoKICAgIHByaXZhdGUgR0wgZ2w7CiAgICBwcml2
YXRlIEdMRHJhd2FibGUgZ2xkcmF3YWJsZTsKCiAgICBwdWJsaWMgdm9pZCBpbml0KCBHTERyYXdh
YmxlIGRyYXdhYmxlICkgewogICAgICBnbCA9IGRyYXdhYmxlLmdldEdMKCk7CiAgICAgIHRoaXMu
Z2xkcmF3YWJsZSA9IGRyYXdhYmxlOwogICAgICBTeXN0ZW0uZXJyLnByaW50bG4oICJJTklUIEdM
IElTOiAiICsgZ2wuZ2V0Q2xhc3MoKS5nZXROYW1lKCkgKTsKCiAgICAgIGZsb2F0IHBvc1tdID0g
ezUuMGYsIDUuMGYsIDEwLjBmLCAwLjBmfTsKICAgICAgZmxvYXQgcmVkW10gPSB7MC44ZiwgMC4x
ZiwgMC4wZiwgMS4wZn07CiAgICAgIGZsb2F0IGdyZWVuW10gPSB7MC4wZiwgMC44ZiwgMC4yZiwg
MS4wZn07CiAgICAgIGZsb2F0IGJsdWVbXSA9IHswLjJmLCAwLjJmLCAxLjBmLCAxLjBmfTsKCiAg
ICAgIGdsLmdsTGlnaHRmdiggR0wuR0xfTElHSFQwLCBHTC5HTF9QT1NJVElPTiwgcG9zICk7CiAg
ICAgIGdsLmdsRW5hYmxlKCBHTC5HTF9DVUxMX0ZBQ0UgKTsKICAgICAgZ2wuZ2xFbmFibGUoIEdM
LkdMX0xJR0hUSU5HICk7CiAgICAgIGdsLmdsRW5hYmxlKCBHTC5HTF9MSUdIVDAgKTsKICAgICAg
Z2wuZ2xFbmFibGUoIEdMLkdMX0RFUFRIX1RFU1QgKTsKICAgICAgICAgICAgCiAgICAgIC8qIG1h
a2UgdGhlIGdlYXJzICovCiAgICAgIGdlYXIxID0gZ2wuZ2xHZW5MaXN0cyggMSApOwogICAgICBn
bC5nbE5ld0xpc3QoIGdlYXIxLCBHTC5HTF9DT01QSUxFICk7CiAgICAgIGdsLmdsTWF0ZXJpYWxm
diggR0wuR0xfRlJPTlQsIEdMLkdMX0FNQklFTlRfQU5EX0RJRkZVU0UsIHJlZCApOwogICAgICBn
ZWFyKCAxLjBmLCA0LjBmLCAxLjBmLCAyMCwgMC43ZiApOwogICAgICBnbC5nbEVuZExpc3QoKTsK
CiAgICAgIGdlYXIyID0gZ2wuZ2xHZW5MaXN0cyggMSApOwogICAgICBnbC5nbE5ld0xpc3QoIGdl
YXIyLCBHTC5HTF9DT01QSUxFICk7CiAgICAgIGdsLmdsTWF0ZXJpYWxmdiggR0wuR0xfRlJPTlQs
IEdMLkdMX0FNQklFTlRfQU5EX0RJRkZVU0UsIGdyZWVuICk7CiAgICAgIGdlYXIoIDAuNWYsIDIu
MGYsIDIuMGYsIDEwLCAwLjdmICk7CiAgICAgIGdsLmdsRW5kTGlzdCgpOwoKICAgICAgZ2VhcjMg
PSBnbC5nbEdlbkxpc3RzKCAxICk7CiAgICAgIGdsLmdsTmV3TGlzdCggZ2VhcjMsIEdMLkdMX0NP
TVBJTEUgKTsKICAgICAgZ2wuZ2xNYXRlcmlhbGZ2KCBHTC5HTF9GUk9OVCwgR0wuR0xfQU1CSUVO
VF9BTkRfRElGRlVTRSwgYmx1ZSApOwogICAgICBnZWFyKCAxLjNmLCAyLjBmLCAwLjVmLCAxMCwg
MC43ZiApOwogICAgICBnbC5nbEVuZExpc3QoKTsKCiAgICAgIGdsLmdsRW5hYmxlKCBHTC5HTF9O
T1JNQUxJWkUgKTsKCiAgICAgIGRyYXdhYmxlLmFkZE1vdXNlTGlzdGVuZXIoIHRoaXMgKTsKICAg
ICAgZHJhd2FibGUuYWRkTW91c2VNb3Rpb25MaXN0ZW5lciggdGhpcyApOwogICAgfQoKICAgIHB1
YmxpYyB2b2lkIHJlc2hhcGUoIEdMRHJhd2FibGUgZHJhd2FibGUsIGludCB4LCBpbnQgeSwgaW50
IHdpZHRoLCBpbnQgaGVpZ2h0ICkgewogICAgICBmbG9hdCBoID0gKGZsb2F0KSBoZWlnaHQgLyAo
ZmxvYXQpIHdpZHRoOwoKICAgICAgZ2wuZ2xNYXRyaXhNb2RlKCBHTC5HTF9QUk9KRUNUSU9OICk7
CgogICAgICBTeXN0ZW0uZXJyLnByaW50bG4oICJHTF9WRU5ET1I6ICIgKyBnbC5nbEdldFN0cmlu
ZyggR0wuR0xfVkVORE9SICkgKTsKICAgICAgU3lzdGVtLmVyci5wcmludGxuKCAiR0xfUkVOREVS
RVI6ICIgKyBnbC5nbEdldFN0cmluZyggR0wuR0xfUkVOREVSRVIgKSApOwogICAgICBTeXN0ZW0u
ZXJyLnByaW50bG4oICJHTF9WRVJTSU9OOiAiICsgZ2wuZ2xHZXRTdHJpbmcoIEdMLkdMX1ZFUlNJ
T04gKSApOwogICAgICBTeXN0ZW0uZXJyLnByaW50bG4oKTsKICAgICAgU3lzdGVtLmVyci5wcmlu
dGxuKCAiZ2xMb2FkVHJhbnNwb3NlTWF0cml4ZkFSQigpIHN1cHBvcnRlZDogIiArCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgZ2wuaXNGdW5jdGlvbkF2YWlsYWJsZSggImdsTG9hZFRyYW5zcG9z
ZU1hdHJpeGZBUkIiICkgKTsKICAgICAgaWYgKCAhZ2wuaXNGdW5jdGlvbkF2YWlsYWJsZSggImds
TG9hZFRyYW5zcG9zZU1hdHJpeGZBUkIiICkgKSB7CiAgICAgICAgLy8gLS0tIG5vdCB1c2luZyBl
eHRlbnNpb25zCiAgICAgICAgZ2wuZ2xMb2FkSWRlbnRpdHkoKTsKICAgICAgfQogICAgICBlbHNl
IHsKICAgICAgICAvLyAtLS0gdXNpbmcgZXh0ZW5zaW9ucwogICAgICAgIGZpbmFsIGZsb2F0W10g
aWRlbnRpdHlUcmFuc3Bvc2UgPSBuZXcgZmxvYXRbXXsKICAgICAgICAgIDEsIDAsIDAsIDAsCiAg
ICAgICAgICAwLCAxLCAwLCAwLAogICAgICAgICAgMCwgMCwgMSwgMCwKICAgICAgICAgIDAsIDAs
IDAsIDEKICAgICAgICB9OwogICAgICAgIGdsLmdsTG9hZFRyYW5zcG9zZU1hdHJpeGZBUkIoIGlk
ZW50aXR5VHJhbnNwb3NlICk7CiAgICAgIH0KICAgICAgZ2wuZ2xGcnVzdHVtKCAtMS4wZiwgMS4w
ZiwgLWgsIGgsIDUuMGYsIDYwLjBmICk7CiAgICAgIGdsLmdsTWF0cml4TW9kZSggR0wuR0xfTU9E
RUxWSUVXICk7CiAgICAgIGdsLmdsTG9hZElkZW50aXR5KCk7CiAgICAgIGdsLmdsVHJhbnNsYXRl
ZiggMC4wZiwgMC4wZiwgLTQwLjBmICk7CiAgICB9CgogICAgcHVibGljIHZvaWQgZGlzcGxheSgg
R0xEcmF3YWJsZSBkcmF3YWJsZSApIHsKICAgICAgYW5nbGUgKz0gMi4wZjsKCiAgICAgIGdsLmds
Q2xlYXIoIEdMLkdMX0NPTE9SX0JVRkZFUl9CSVQgfCBHTC5HTF9ERVBUSF9CVUZGRVJfQklUICk7
CgogICAgICBnbC5nbFB1c2hNYXRyaXgoKTsKICAgICAgZ2wuZ2xSb3RhdGVmKCB2aWV3X3JvdHgs
IDEuMGYsIDAuMGYsIDAuMGYgKTsKICAgICAgZ2wuZ2xSb3RhdGVmKCB2aWV3X3JvdHksIDAuMGYs
IDEuMGYsIDAuMGYgKTsKICAgICAgZ2wuZ2xSb3RhdGVmKCB2aWV3X3JvdHosIDAuMGYsIDAuMGYs
IDEuMGYgKTsKCiAgICAgIGdsLmdsUHVzaE1hdHJpeCgpOwogICAgICBnbC5nbFRyYW5zbGF0ZWYo
IC0zLjBmLCAtMi4wZiwgMC4wZiApOwogICAgICBnbC5nbFJvdGF0ZWYoIGFuZ2xlLCAwLjBmLCAw
LjBmLCAxLjBmICk7CiAgICAgIGdsLmdsQ2FsbExpc3QoIGdlYXIxICk7CiAgICAgIGdsLmdsUG9w
TWF0cml4KCk7CgogICAgICBnbC5nbFB1c2hNYXRyaXgoKTsKICAgICAgZ2wuZ2xUcmFuc2xhdGVm
KCAzLjFmLCAtMi4wZiwgMC4wZiApOwogICAgICBnbC5nbFJvdGF0ZWYoIC0yLjBmICogYW5nbGUg
LSA5LjBmLCAwLjBmLCAwLjBmLCAxLjBmICk7CiAgICAgIGdsLmdsQ2FsbExpc3QoIGdlYXIyICk7
CiAgICAgIGdsLmdsUG9wTWF0cml4KCk7CgogICAgICBnbC5nbFB1c2hNYXRyaXgoKTsKICAgICAg
Z2wuZ2xUcmFuc2xhdGVmKCAtMy4xZiwgNC4yZiwgMC4wZiApOwogICAgICBnbC5nbFJvdGF0ZWYo
IC0yLjBmICogYW5nbGUgLSAyNS4wZiwgMC4wZiwgMC4wZiwgMS4wZiApOwogICAgICBnbC5nbENh
bGxMaXN0KCBnZWFyMyApOwogICAgICBnbC5nbFBvcE1hdHJpeCgpOwoKICAgICAgZ2wuZ2xQb3BN
YXRyaXgoKTsKICAgIH0KCiAgICBwdWJsaWMgdm9pZCBkaXNwbGF5Q2hhbmdlZCggR0xEcmF3YWJs
ZSBkcmF3YWJsZSwgYm9vbGVhbiBtb2RlQ2hhbmdlZCwgYm9vbGVhbiBkZXZpY2VDaGFuZ2VkICkg
ewogICAgfQoKICAgIHByaXZhdGUgdm9pZCBnZWFyKCBmbG9hdCBpbm5lcl9yYWRpdXMsCiAgICAg
ICAgICAgICAgICAgICAgICAgZmxvYXQgb3V0ZXJfcmFkaXVzLAogICAgICAgICAgICAgICAgICAg
ICAgIGZsb2F0IHdpZHRoLAogICAgICAgICAgICAgICAgICAgICAgIGludCB0ZWV0aCwKICAgICAg
ICAgICAgICAgICAgICAgICBmbG9hdCB0b290aF9kZXB0aCApIHsKICAgICAgaW50IGk7CiAgICAg
IGZsb2F0IHIwLCByMSwgcjI7CiAgICAgIGZsb2F0IGFuZ2xlLCBkYTsKICAgICAgZmxvYXQgdSwg
diwgbGVuOwoKICAgICAgcjAgPSBpbm5lcl9yYWRpdXM7CiAgICAgIHIxID0gb3V0ZXJfcmFkaXVz
IC0gdG9vdGhfZGVwdGggLyAyLjBmOwogICAgICByMiA9IG91dGVyX3JhZGl1cyArIHRvb3RoX2Rl
cHRoIC8gMi4wZjsKCiAgICAgIGRhID0gMi4wZiAqIChmbG9hdCkgTWF0aC5QSSAvIHRlZXRoIC8g
NC4wZjsKCiAgICAgIGdsLmdsU2hhZGVNb2RlbCggR0wuR0xfRkxBVCApOwoKICAgICAgZ2wuZ2xO
b3JtYWwzZiggMC4wZiwgMC4wZiwgMS4wZiApOwoKICAgICAgLyogZHJhdyBmcm9udCBmYWNlICov
CiAgICAgIGdsLmdsQmVnaW4oIEdMLkdMX1FVQURfU1RSSVAgKTsKICAgICAgZm9yIChpID0gMDsg
aSA8PSB0ZWV0aDsgaSsrKSB7CiAgICAgICAgYW5nbGUgPSBpICogMi4wZiAqIChmbG9hdCkgTWF0
aC5QSSAvIHRlZXRoOwogICAgICAgIGdsLmdsVmVydGV4M2YoIHIwICogKGZsb2F0KSBNYXRoLmNv
cyggYW5nbGUgKSwgcjAgKiAoZmxvYXQpIE1hdGguc2luKCBhbmdsZSApLCB3aWR0aCAqIDAuNWYg
KTsKICAgICAgICBnbC5nbFZlcnRleDNmKCByMSAqIChmbG9hdCkgTWF0aC5jb3MoIGFuZ2xlICks
IHIxICogKGZsb2F0KSBNYXRoLnNpbiggYW5nbGUgKSwgd2lkdGggKiAwLjVmICk7CiAgICAgICAg
aWYgKCBpIDwgdGVldGggKSB7CiAgICAgICAgICBnbC5nbFZlcnRleDNmKCByMCAqIChmbG9hdCkg
TWF0aC5jb3MoIGFuZ2xlICksIHIwICogKGZsb2F0KSBNYXRoLnNpbiggYW5nbGUgKSwgd2lkdGgg
KiAwLjVmICk7CiAgICAgICAgICBnbC5nbFZlcnRleDNmKCByMSAqIChmbG9hdCkgTWF0aC5jb3Mo
IGFuZ2xlICsgMy4wZiAqIGRhICksIHIxICogKGZsb2F0KSBNYXRoLnNpbiggYW5nbGUgKyAzLjBm
ICogZGEgKSwgd2lkdGggKiAwLjVmICk7CiAgICAgICAgfQogICAgICB9CiAgICAgIGdsLmdsRW5k
KCk7CgogICAgICAvKiBkcmF3IGZyb250IHNpZGVzIG9mIHRlZXRoICovCiAgICAgIGdsLmdsQmVn
aW4oIEdMLkdMX1FVQURTICk7CiAgICAgIGZvciAoaSA9IDA7IGkgPCB0ZWV0aDsgaSsrKSB7CiAg
ICAgICAgYW5nbGUgPSBpICogMi4wZiAqIChmbG9hdCkgTWF0aC5QSSAvIHRlZXRoOwogICAgICAg
IGdsLmdsVmVydGV4M2YoIHIxICogKGZsb2F0KSBNYXRoLmNvcyggYW5nbGUgKSwgcjEgKiAoZmxv
YXQpIE1hdGguc2luKCBhbmdsZSApLCB3aWR0aCAqIDAuNWYgKTsKICAgICAgICBnbC5nbFZlcnRl
eDNmKCByMiAqIChmbG9hdCkgTWF0aC5jb3MoIGFuZ2xlICsgZGEgKSwgcjIgKiAoZmxvYXQpIE1h
dGguc2luKCBhbmdsZSArIGRhICksIHdpZHRoICogMC41ZiApOwogICAgICAgIGdsLmdsVmVydGV4
M2YoIHIyICogKGZsb2F0KSBNYXRoLmNvcyggYW5nbGUgKyAyLjBmICogZGEgKSwgcjIgKiAoZmxv
YXQpIE1hdGguc2luKCBhbmdsZSArIDIuMGYgKiBkYSApLCB3aWR0aCAqIDAuNWYgKTsKICAgICAg
ICBnbC5nbFZlcnRleDNmKCByMSAqIChmbG9hdCkgTWF0aC5jb3MoIGFuZ2xlICsgMy4wZiAqIGRh
ICksIHIxICogKGZsb2F0KSBNYXRoLnNpbiggYW5nbGUgKyAzLjBmICogZGEgKSwgd2lkdGggKiAw
LjVmICk7CiAgICAgIH0KICAgICAgZ2wuZ2xFbmQoKTsKICAgIAogICAgICAvKiBkcmF3IGJhY2sg
ZmFjZSAqLwogICAgICBnbC5nbEJlZ2luKCBHTC5HTF9RVUFEX1NUUklQICk7CiAgICAgIGZvciAo
aSA9IDA7IGkgPD0gdGVldGg7IGkrKykgewogICAgICAgIGFuZ2xlID0gaSAqIDIuMGYgKiAoZmxv
YXQpIE1hdGguUEkgLyB0ZWV0aDsKICAgICAgICBnbC5nbFZlcnRleDNmKCByMSAqIChmbG9hdCkg
TWF0aC5jb3MoIGFuZ2xlICksIHIxICogKGZsb2F0KSBNYXRoLnNpbiggYW5nbGUgKSwgLXdpZHRo
ICogMC41ZiApOwogICAgICAgIGdsLmdsVmVydGV4M2YoIHIwICogKGZsb2F0KSBNYXRoLmNvcygg
YW5nbGUgKSwgcjAgKiAoZmxvYXQpIE1hdGguc2luKCBhbmdsZSApLCAtd2lkdGggKiAwLjVmICk7
CiAgICAgICAgZ2wuZ2xWZXJ0ZXgzZiggcjEgKiAoZmxvYXQpIE1hdGguY29zKCBhbmdsZSArIDMg
KiBkYSApLCByMSAqIChmbG9hdCkgTWF0aC5zaW4oIGFuZ2xlICsgMyAqIGRhICksIC13aWR0aCAq
IDAuNWYgKTsKICAgICAgICBnbC5nbFZlcnRleDNmKCByMCAqIChmbG9hdCkgTWF0aC5jb3MoIGFu
Z2xlICksIHIwICogKGZsb2F0KSBNYXRoLnNpbiggYW5nbGUgKSwgLXdpZHRoICogMC41ZiApOwog
ICAgICB9CiAgICAgIGdsLmdsRW5kKCk7CiAgICAKICAgICAgLyogZHJhdyBiYWNrIHNpZGVzIG9m
IHRlZXRoICovCiAgICAgIGdsLmdsQmVnaW4oIEdMLkdMX1FVQURTICk7CiAgICAgIGZvciAoaSA9
IDA7IGkgPCB0ZWV0aDsgaSsrKSB7CiAgICAgICAgYW5nbGUgPSBpICogMi4wZiAqIChmbG9hdCkg
TWF0aC5QSSAvIHRlZXRoOwogICAgICAgIGdsLmdsVmVydGV4M2YoIHIxICogKGZsb2F0KSBNYXRo
LmNvcyggYW5nbGUgKyAzICogZGEgKSwgcjEgKiAoZmxvYXQpIE1hdGguc2luKCBhbmdsZSArIDMg
KiBkYSApLCAtd2lkdGggKiAwLjVmICk7CiAgICAgICAgZ2wuZ2xWZXJ0ZXgzZiggcjIgKiAoZmxv
YXQpIE1hdGguY29zKCBhbmdsZSArIDIgKiBkYSApLCByMiAqIChmbG9hdCkgTWF0aC5zaW4oIGFu
Z2xlICsgMiAqIGRhICksIC13aWR0aCAqIDAuNWYgKTsKICAgICAgICBnbC5nbFZlcnRleDNmKCBy
MiAqIChmbG9hdCkgTWF0aC5jb3MoIGFuZ2xlICsgZGEgKSwgcjIgKiAoZmxvYXQpIE1hdGguc2lu
KCBhbmdsZSArIGRhICksIC13aWR0aCAqIDAuNWYgKTsKICAgICAgICBnbC5nbFZlcnRleDNmKCBy
MSAqIChmbG9hdCkgTWF0aC5jb3MoIGFuZ2xlICksIHIxICogKGZsb2F0KSBNYXRoLnNpbiggYW5n
bGUgKSwgLXdpZHRoICogMC41ZiApOwogICAgICB9CiAgICAgIGdsLmdsRW5kKCk7CiAgICAKICAg
ICAgLyogZHJhdyBvdXR3YXJkIGZhY2VzIG9mIHRlZXRoICovCiAgICAgIGdsLmdsQmVnaW4oIEdM
LkdMX1FVQURfU1RSSVAgKTsKICAgICAgZm9yIChpID0gMDsgaSA8IHRlZXRoOyBpKyspIHsKICAg
ICAgICBhbmdsZSA9IGkgKiAyLjBmICogKGZsb2F0KSBNYXRoLlBJIC8gdGVldGg7CiAgICAgICAg
Z2wuZ2xWZXJ0ZXgzZiggcjEgKiAoZmxvYXQpIE1hdGguY29zKCBhbmdsZSApLCByMSAqIChmbG9h
dCkgTWF0aC5zaW4oIGFuZ2xlICksIHdpZHRoICogMC41ZiApOwogICAgICAgIGdsLmdsVmVydGV4
M2YoIHIxICogKGZsb2F0KSBNYXRoLmNvcyggYW5nbGUgKSwgcjEgKiAoZmxvYXQpIE1hdGguc2lu
KCBhbmdsZSApLCAtd2lkdGggKiAwLjVmICk7CiAgICAgICAgdSA9IHIyICogKGZsb2F0KSBNYXRo
LmNvcyggYW5nbGUgKyBkYSApIC0gcjEgKiAoZmxvYXQpIE1hdGguY29zKCBhbmdsZSApOwogICAg
ICAgIHYgPSByMiAqIChmbG9hdCkgTWF0aC5zaW4oIGFuZ2xlICsgZGEgKSAtIHIxICogKGZsb2F0
KSBNYXRoLnNpbiggYW5nbGUgKTsKICAgICAgICBsZW4gPSAoZmxvYXQpIE1hdGguc3FydCggdSAq
IHUgKyB2ICogdiApOwogICAgICAgIHUgLz0gbGVuOwogICAgICAgIHYgLz0gbGVuOwogICAgICAg
IGdsLmdsTm9ybWFsM2YoIHYsIC11LCAwLjBmICk7CiAgICAgICAgZ2wuZ2xWZXJ0ZXgzZiggcjIg
KiAoZmxvYXQpIE1hdGguY29zKCBhbmdsZSArIGRhICksIHIyICogKGZsb2F0KSBNYXRoLnNpbigg
YW5nbGUgKyBkYSApLCB3aWR0aCAqIDAuNWYgKTsKICAgICAgICBnbC5nbFZlcnRleDNmKCByMiAq
IChmbG9hdCkgTWF0aC5jb3MoIGFuZ2xlICsgZGEgKSwgcjIgKiAoZmxvYXQpIE1hdGguc2luKCBh
bmdsZSArIGRhICksIC13aWR0aCAqIDAuNWYgKTsKICAgICAgICBnbC5nbE5vcm1hbDNmKCAoZmxv
YXQpIE1hdGguY29zKCBhbmdsZSApLCAoZmxvYXQpIE1hdGguc2luKCBhbmdsZSApLCAwLjBmICk7
CiAgICAgICAgZ2wuZ2xWZXJ0ZXgzZiggcjIgKiAoZmxvYXQpIE1hdGguY29zKCBhbmdsZSArIDIg
KiBkYSApLCByMiAqIChmbG9hdCkgTWF0aC5zaW4oIGFuZ2xlICsgMiAqIGRhICksIHdpZHRoICog
MC41ZiApOwogICAgICAgIGdsLmdsVmVydGV4M2YoIHIyICogKGZsb2F0KSBNYXRoLmNvcyggYW5n
bGUgKyAyICogZGEgKSwgcjIgKiAoZmxvYXQpIE1hdGguc2luKCBhbmdsZSArIDIgKiBkYSApLCAt
d2lkdGggKiAwLjVmICk7CiAgICAgICAgdSA9IHIxICogKGZsb2F0KSBNYXRoLmNvcyggYW5nbGUg
KyAzICogZGEgKSAtIHIyICogKGZsb2F0KSBNYXRoLmNvcyggYW5nbGUgKyAyICogZGEgKTsKICAg
ICAgICB2ID0gcjEgKiAoZmxvYXQpIE1hdGguc2luKCBhbmdsZSArIDMgKiBkYSApIC0gcjIgKiAo
ZmxvYXQpIE1hdGguc2luKCBhbmdsZSArIDIgKiBkYSApOwogICAgICAgIGdsLmdsTm9ybWFsM2Yo
IHYsIC11LCAwLjBmICk7CiAgICAgICAgZ2wuZ2xWZXJ0ZXgzZiggcjEgKiAoZmxvYXQpIE1hdGgu
Y29zKCBhbmdsZSArIDMgKiBkYSApLCByMSAqIChmbG9hdCkgTWF0aC5zaW4oIGFuZ2xlICsgMyAq
IGRhICksIHdpZHRoICogMC41ZiApOwogICAgICAgIGdsLmdsVmVydGV4M2YoIHIxICogKGZsb2F0
KSBNYXRoLmNvcyggYW5nbGUgKyAzICogZGEgKSwgcjEgKiAoZmxvYXQpIE1hdGguc2luKCBhbmds
ZSArIDMgKiBkYSApLCAtd2lkdGggKiAwLjVmICk7CiAgICAgICAgZ2wuZ2xOb3JtYWwzZiggKGZs
b2F0KSBNYXRoLmNvcyggYW5nbGUgKSwgKGZsb2F0KSBNYXRoLnNpbiggYW5nbGUgKSwgMC4wZiAp
OwogICAgICB9CiAgICAgIGdsLmdsVmVydGV4M2YoIHIxICogKGZsb2F0KSBNYXRoLmNvcyggMCAp
LCByMSAqIChmbG9hdCkgTWF0aC5zaW4oIDAgKSwgd2lkdGggKiAwLjVmICk7CiAgICAgIGdsLmds
VmVydGV4M2YoIHIxICogKGZsb2F0KSBNYXRoLmNvcyggMCApLCByMSAqIChmbG9hdCkgTWF0aC5z
aW4oIDAgKSwgLXdpZHRoICogMC41ZiApOwogICAgICBnbC5nbEVuZCgpOwoKICAgICAgZ2wuZ2xT
aGFkZU1vZGVsKCBHTC5HTF9TTU9PVEggKTsKICAgIAogICAgICAvKiBkcmF3IGluc2lkZSByYWRp
dXMgY3lsaW5kZXIgKi8KICAgICAgZ2wuZ2xCZWdpbiggR0wuR0xfUVVBRF9TVFJJUCApOwogICAg
ICBmb3IgKGkgPSAwOyBpIDw9IHRlZXRoOyBpKyspIHsKICAgICAgICBhbmdsZSA9IGkgKiAyLjBm
ICogKGZsb2F0KSBNYXRoLlBJIC8gdGVldGg7CiAgICAgICAgZ2wuZ2xOb3JtYWwzZiggLShmbG9h
dCkgTWF0aC5jb3MoIGFuZ2xlICksIC0oZmxvYXQpIE1hdGguc2luKCBhbmdsZSApLCAwLjBmICk7
CiAgICAgICAgZ2wuZ2xWZXJ0ZXgzZiggcjAgKiAoZmxvYXQpIE1hdGguY29zKCBhbmdsZSApLCBy
MCAqIChmbG9hdCkgTWF0aC5zaW4oIGFuZ2xlICksIC13aWR0aCAqIDAuNWYgKTsKICAgICAgICBn
bC5nbFZlcnRleDNmKCByMCAqIChmbG9hdCkgTWF0aC5jb3MoIGFuZ2xlICksIHIwICogKGZsb2F0
KSBNYXRoLnNpbiggYW5nbGUgKSwgd2lkdGggKiAwLjVmICk7CiAgICAgIH0KICAgICAgZ2wuZ2xF
bmQoKTsKICAgIH0KCiAgICAvLyBNZXRob2RzIHJlcXVpcmVkIGZvciB0aGUgaW1wbGVtZW50YXRp
b24gb2YgTW91c2VMaXN0ZW5lcgogICAgcHVibGljIHZvaWQgbW91c2VFbnRlcmVkKCBNb3VzZUV2
ZW50IGUgKSB7CiAgICB9CgogICAgcHVibGljIHZvaWQgbW91c2VFeGl0ZWQoIE1vdXNlRXZlbnQg
ZSApIHsKICAgIH0KCiAgICBwdWJsaWMgdm9pZCBtb3VzZVByZXNzZWQoIE1vdXNlRXZlbnQgZSAp
IHsKICAgICAgcHJldk1vdXNlWCA9IGUuZ2V0WCgpOwogICAgICBwcmV2TW91c2VZID0gZS5nZXRZ
KCk7CiAgICAgIGlmICggKCBlLmdldE1vZGlmaWVycygpICYgZS5CVVRUT04zX01BU0sgKSAhPSAw
ICkgewogICAgICAgIG1vdXNlUkJ1dHRvbkRvd24gPSB0cnVlOwogICAgICB9CiAgICB9CgogICAg
cHVibGljIHZvaWQgbW91c2VSZWxlYXNlZCggTW91c2VFdmVudCBlICkgewogICAgICBpZiAoICgg
ZS5nZXRNb2RpZmllcnMoKSAmIGUuQlVUVE9OM19NQVNLICkgIT0gMCApIHsKICAgICAgICBtb3Vz
ZVJCdXR0b25Eb3duID0gZmFsc2U7CiAgICAgIH0KICAgIH0KCiAgICBwdWJsaWMgdm9pZCBtb3Vz
ZUNsaWNrZWQoIE1vdXNlRXZlbnQgZSApIHsKICAgIH0KCiAgICAvLyBNZXRob2RzIHJlcXVpcmVk
IGZvciB0aGUgaW1wbGVtZW50YXRpb24gb2YgTW91c2VNb3Rpb25MaXN0ZW5lcgogICAgcHVibGlj
IHZvaWQgbW91c2VEcmFnZ2VkKCBNb3VzZUV2ZW50IGUgKSB7CiAgICAgIGludCB4ID0gZS5nZXRY
KCk7CiAgICAgIGludCB5ID0gZS5nZXRZKCk7CiAgICAgIERpbWVuc2lvbiBzaXplID0gZS5nZXRD
b21wb25lbnQoKS5nZXRTaXplKCk7CgogICAgICBmbG9hdCB0aGV0YVkgPSAzNjAuMGYgKiAoIChm
bG9hdCkgKCB4IC0gcHJldk1vdXNlWCApIC8gKGZsb2F0KSBzaXplLndpZHRoICk7CiAgICAgIGZs
b2F0IHRoZXRhWCA9IDM2MC4wZiAqICggKGZsb2F0KSAoIHByZXZNb3VzZVkgLSB5ICkgLyAoZmxv
YXQpIHNpemUuaGVpZ2h0ICk7CgogICAgICBwcmV2TW91c2VYID0geDsKICAgICAgcHJldk1vdXNl
WSA9IHk7CgogICAgICB2aWV3X3JvdHggKz0gdGhldGFYOwogICAgICB2aWV3X3JvdHkgKz0gdGhl
dGFZOwoKICAgICAgZ2xkcmF3YWJsZS5kaXNwbGF5KCk7CiAgICB9CgogICAgcHVibGljIHZvaWQg
bW91c2VNb3ZlZCggTW91c2VFdmVudCBlICkgewogICAgfQogIH0KfQoK
</data>

          </attachment>
      

    </bug>

</bugzilla>