<?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>1198</bug_id>
          
          <creation_ts>2015-08-24 16:56:41 +0200</creation_ts>
          <short_desc>Problem with java 8 + gnome + JOGL + dual screen</short_desc>
          <delta_ts>2015-10-06 18:45:46 +0200</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>3</classification_id>
          <classification>JogAmp</classification>
          <product>Jogl</product>
          <component>awt</component>
          <version>2.3.2</version>
          <rep_platform>pc_x86_64</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>major</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jonathan">jonathan.gallon</reporter>
          <assigned_to name="Sven Gothel">sgothel</assigned_to>
          <cc>gouessej</cc>
          
          <cf_type>DEFECT</cf_type>
          <cf_scm_refs></cf_scm_refs>
          <cf_workaround>TRUE</cf_workaround>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>4985</commentid>
    <comment_count>0</comment_count>
      <attachid>723</attachid>
    <who name="Jonathan">jonathan.gallon</who>
    <bug_when>2015-08-24 16:56:41 +0200</bug_when>
    <thetext>Created attachment 723
Simple test program

Hello,

We have a problem with JOGL (version 2.2.4 or lastest) and Gnome on a dual screen environement using Java 8 (works fine in Java 6).
When we drag a window from a screen to the other, the window blinks and moves itself to the other screen. So the focus and the drag are lost.

After some test, we had try to remove the override method getGraphicsConfiguration() of the GLCanvas and everything works fine.
We can drag the frame from screen to screen.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>4989</commentid>
    <comment_count>1</comment_count>
    <who name="Julien Gouesse">gouessej</who>
    <bug_when>2015-08-25 17:52:56 +0200</bug_when>
    <thetext>Please test with the very latest version (2.3.2 RC), mention exactly which version of Java you use (8 isn&apos;t accurate enough), which OS, etc...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>4990</commentid>
    <comment_count>2</comment_count>
    <who name="Julien Gouesse">gouessej</who>
    <bug_when>2015-08-25 17:57:49 +0200</bug_when>
    <thetext>Are you talking about this method?

https://github.com/sgothel/jogl/blob/master/src/jogl/classes/com/jogamp/opengl/awt/GLCanvas.java#L337

There is no animator in your simple test, is it intentional? Please look at my example:
https://gist.github.com/gouessej/3420e2b6f632efdddf98</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>4996</commentid>
    <comment_count>3</comment_count>
      <attachid>724</attachid>
    <who name="Jonathan">jonathan.gallon</who>
    <bug_when>2015-08-26 10:05:29 +0200</bug_when>
    <thetext>Created attachment 724
Simple test program with animator</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>4999</commentid>
    <comment_count>4</comment_count>
    <who name="Jonathan">jonathan.gallon</who>
    <bug_when>2015-08-26 11:03:34 +0200</bug_when>
    <thetext>Hello,

Thank you for your answer.

Information :
- java : 1.8.0_u40 (same behavior with previous version)
- os : debian and redhat
- gnome : 2.24.2 and 3.14

We use jogl 2.24 in our project, but I also tried last RC version of JOGL.

This is exactly this method ! When I remove it and use the super.getGraphicConfiguration() returned value, it works fine.

With the actual code, the window &quot;jumps&quot; in the next screen when we drag it and the focus is lost.
So it&apos;s very hard to work with a dual screen and some jogl windows.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>5000</commentid>
    <comment_count>5</comment_count>
    <who name="Julien Gouesse">gouessej</who>
    <bug_when>2015-08-26 12:00:17 +0200</bug_when>
    <thetext>Do you reproduce this bug when using NewtCanvasAWT instead of GLCanvas? Please can you make the same test with GLWindow? I suspect that this bug is caused by a change in AWT. By the way, please test with OpenJDK 1.7 update 80 too so that I can determine if the problem only concerns Java 1.8:
https://github.com/alexkasko/openjdk-unofficial-builds#openjdk-7-update-80-build-32

Feel free to use an official build if possible.

Can you test with any other window manager (KDE, Unity, XFCE, ...)?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>5013</commentid>
    <comment_count>6</comment_count>
    <who name="Jonathan">jonathan.gallon</who>
    <bug_when>2015-08-27 14:33:32 +0200</bug_when>
    <thetext>
The bug is not present when I use NewtCanvasAWT and a GLWindow.
I tried OpenJDK 1.7 u80 and I have the same bug.

We also tried with KDE but the bug is not present. Just with gnome.

Is there any recommendation for the canvas to use with JOGL ? GLCanvas or NewtCanvasAWT ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>5014</commentid>
    <comment_count>7</comment_count>
    <who name="Julien Gouesse">gouessej</who>
    <bug_when>2015-08-27 17:11:51 +0200</bug_when>
    <thetext>(In reply to comment #6)
&gt; The bug is not present when I use NewtCanvasAWT and a GLWindow.
&gt; I tried OpenJDK 1.7 u80 and I have the same bug.
&gt; 
&gt; We also tried with KDE but the bug is not present. Just with gnome.
&gt; 
Thank you.

&gt; Is there any recommendation for the canvas to use with JOGL ? GLCanvas or
&gt; NewtCanvasAWT ?

The AWT GLCanvas is the oldest and the most reliable canvas but when there are some problems of transparency with Swing (for example when using a Swing internal frame), I advise the use of GLJPanel.

NewtCanvasAWT is a good compromise, it allows to benefit of the speed of NEWT while keeping the compatibility with AWT. We have much more control on it as it&apos;s a bridge, it uses NEWT under the hood. The only drawback is that it can be less reliable than GLCanvas in some cases, some events might not be forwarded to NEWT or AWT but it&apos;s mostly a limitation of the past.

Use the one that fits the best to your needs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>5020</commentid>
    <comment_count>8</comment_count>
    <who name="Sven Gothel">sgothel</who>
    <bug_when>2015-08-27 20:53:42 +0200</bug_when>
    <thetext>(In reply to comment #6)
&gt; The bug is not present when I use NewtCanvasAWT and a GLWindow.
&gt; I tried OpenJDK 1.7 u80 and I have the same bug.
&gt; 
&gt; We also tried with KDE but the bug is not present. Just with gnome.
&gt; 

Thank you!

Indeed I test myself using KDE.
Hence I will jump in and fix for 2.3.2,
promoted:
&lt;https://jogamp.org/wiki/index.php/SW_Tracking_Report_Objectives_for_the_release_2.3.2&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>5031</commentid>
    <comment_count>9</comment_count>
    <who name="Jonathan">jonathan.gallon</who>
    <bug_when>2015-08-28 08:31:01 +0200</bug_when>
    <thetext>Thank you :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>5290</commentid>
    <comment_count>10</comment_count>
    <who name="Sven Gothel">sgothel</who>
    <bug_when>2015-09-29 04:48:54 +0200</bug_when>
    <thetext>[1]  Debian 8.1.0

[2]  Mesa3D 10.3.2

[3a] KDE 4.4 
[3b] Gnome 3.14

+++

JRE 1.8.0_60 will be described in a followup comment.

+++

Moving from one monitor to another monitor using JRE 1.7.0_79:

[J1] JRE 1.7.0_79
  OpenJDK Runtime Environment (IcedTea 2.5.6) (7u79-2.5.6-1~deb8u1)
  OpenJDK 64-Bit Server VM (build 24.79-b02, mixed mode)

Summary:
  Operation works, even though inefficiently,
  since the whole native peer gets destroyed and 
  recreated by AWT while moving to other monitor.
  Seems AWT of JRE 1.7 has not validated the visual-id
  and new graphics config compatibility, as we do within GLCanvas.

  Differences between KDE and Gnome:
    - Draggin is lost when reaching the other monitor on Gnome,
      where it works seamless w/ KDE as expected.
   

[J1.1.1] GLCanvas.removeNotify() is issued by AWT,
i.e. the the native peer gets disposed
while leaving one monitor just to get
re-created on the other monitor.

    [6]: java.awt.Frame.removeNotify(Frame.java:1041)
    [7]: java.awt.Component.setGraphicsConfiguration(Component.java:1157)
    [8]: java.awt.Window.setGraphicsConfiguration(Window.java:3144)
    [9]: java.awt.Component$1.setGraphicsConfiguration(Component.java:883)
    [10]: sun.awt.X11.XWindowPeer$1.run(XWindowPeer.java:718)

[J1.1.2] The GLEventListener.dispose(..) gets called,
as well as all other resources get disposed.

[J1.1.3] GLCanvas.getGraphicsConfiguration(..) 
is issued during disposing GLEventListener / JAWTWindow.lockSurface()
and detects a compatible AWT GC change:

AWT-EventQueue-0: getGraphicsConfiguration() Info: Changed GC and GD
Created Config (n): Old     GC X11GraphicsConfig[dev=X11GraphicsDevice[screen=0],vis=0x136]
Created Config (n): Old     GD :0.0
Created Config (n): Parent  GC X11GraphicsConfig[dev=X11GraphicsDevice[screen=1],vis=0x21]
Created Config (n): Parent  GD :0.1
Created Config (n): New     GC X11GraphicsConfig[dev=X11GraphicsDevice[screen=1],vis=0x136]
Created Config (n): New     GD :0.1
Created Config (n): Old     CF AWTGraphicsConfiguration[AWTGraphicsScreen[AWTGraphicsDevice[type .awt, connection :0.0, unitID 0, awtDevice X11GraphicsDevice[screen=0], handle 0x0], idx 0],
        chosen    GLCaps[glx vid 0x136, fbc 0x84: rgba 8/8/8/0, opaque, accum-rgba 0/0/0/0, dp/st/ms 32/0/0, dbl, mono  , sw, GLProfile[GL3/GL3.sw], on-scr[.]],
        requested GLCaps[rgba 8/8/8/0, opaque, accum-rgba 0/0/0/0, dp/st/ms 16/0/0, dbl, mono  , hw, GLProfile[GL3/GL3.sw], on-scr[.]],
        X11GraphicsConfig[dev=X11GraphicsDevice[screen=0],vis=0x136],
        encapsulated X11GLXGraphicsConfiguration[X11GraphicsScreen[X11GraphicsDevice[type .x11, connection :0.0, unitID 0, handle 0x7f954800a8a0, owner true, JAWTToolkitLock[obj 0x4f2fd227, isOwner false, &lt;4c8e270e, 8a62f66&gt;[count 0, qsz 0, owner &lt;NULL&gt;]]], idx 0], visualID 0x136, fbConfigID 0x84,
        requested GLCaps[rgba 8/8/8/0, opaque, accum-rgba 0/0/0/0, dp/st/ms 16/0/0, dbl, mono  , hw, GLProfile[GL3/GL3.sw], on-scr[.]],
        chosen    GLCaps[glx vid 0x136, fbc 0x84: rgba 8/8/8/0, opaque, accum-rgba 0/0/0/0, dp/st/ms 32/0/0, dbl, mono  , sw, GLProfile[GL3/GL3.sw], on-scr[.]]]]
Created Config (n): New     CF AWTGraphicsConfiguration[AWTGraphicsScreen[AWTGraphicsDevice[type .awt, connection :0.1, unitID 0, awtDevice X11GraphicsDevice[screen=1], handle 0x0], idx 1],
        chosen    GLCaps[glx vid 0x136, fbc 0x84: rgba 8/8/8/0, opaque, accum-rgba 0/0/0/0, dp/st/ms 32/0/0, dbl, mono  , sw, GLProfile[GL3/GL3.sw], on-scr[.]],
        requested GLCaps[rgba 8/8/8/0, opaque, accum-rgba 0/0/0/0, dp/st/ms 16/0/0, dbl, mono  , hw, GLProfile[GL3/GL3.sw], on-scr[.]],
        X11GraphicsConfig[dev=X11GraphicsDevice[screen=1],vis=0x136],
        encapsulated X11GLXGraphicsConfiguration[X11GraphicsScreen[X11GraphicsDevice[type .x11, connection :0.0, unitID 0, handle 0x7f9548673cb0, owner true, JAWTToolkitLock[obj 0x4f2fd227, isOwner false, &lt;4c8e270e, 8a62f66&gt;[count 0, qsz 0, owner &lt;NULL&gt;]]], idx 0], visualID 0x136, fbConfigID 0x84,
        requested GLCaps[rgba 8/8/8/0, opaque, accum-rgba 0/0/0/0, dp/st/ms 16/0/0, dbl, mono  , hw, GLProfile[GL3/GL3.sw], on-scr[.]],
        chosen    GLCaps[glx vid 0x136, fbc 0x84: rgba 8/8/8/0, opaque, accum-rgba 0/0/0/0, dp/st/ms 32/0/0, dbl, mono  , sw, GLProfile[GL3/GL3.sw], on-scr[.]]]]
Created Config (n): EQUALS CAPS true

The new AWT Config gets propagated to JAWTWindow.

Proposal: This step can probably suppressed during disposal
while reading a &apos;within-disposing&apos; flag, if required.
However, this action shall not harm.

[J1.1.4] GLCanvas.addNotify() gets called by AWT 
for its re-creation on the other monitor.

.. then the GLEventListener.init(..) is being called again
and operation continues normally.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>5291</commentid>
    <comment_count>11</comment_count>
    <who name="Sven Gothel">sgothel</who>
    <bug_when>2015-09-29 05:03:46 +0200</bug_when>
    <thetext>[J2] JRE 1.8.0_60 (Oracle)
   Java(TM) SE Runtime Environment (build 1.8.0_60-b27)
   Java HotSpot(TM) 64-Bit Server VM (build 25.60-b23, mixed mode)

Same behavior as for [J1] !

+++

Note: I have run this on VirtualBox w/ software MesaGL.
The screens are being mapped to multiple screen display connections, 
see [J1.1.3] in comment 10.

I need to test on a physical device maybe.

Hint: Is your GLEventListener fully functional
(in a mathematical sense)?
In detail: Does it properly behave when issuing 
  - init
  - reshape
  - display
  - dispose
_multiple_ times?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>5292</commentid>
    <comment_count>12</comment_count>
    <who name="Sven Gothel">sgothel</who>
    <bug_when>2015-09-29 05:21:59 +0200</bug_when>
    <thetext>(In reply to Sven Gothel from comment #11)
&gt; [J2] JRE 1.8.0_60 (Oracle)
&gt;    Java(TM) SE Runtime Environment (build 1.8.0_60-b27)
&gt;    Java HotSpot(TM) 64-Bit Server VM (build 25.60-b23, mixed mode)
&gt; 
&gt; Same behavior as for [J1] !
&gt; 
&gt; +++
&gt; 
&gt; Note: I have run this on VirtualBox w/ software MesaGL.
&gt; The screens are being mapped to multiple screen display connections, 
&gt; see [J1.1.3] in comment 10.
&gt; 
&gt; I need to test on a physical device maybe.

Tested w/ NV driver (Same Debian 8 system) 
and KDE - same behavior as already reported.

The multiple screen display connections are visible here as well!

So .. I can only assume you have an issue w/ your application
or your graphics driver?

Marking this bug WORKSFORME.

If you can prove it works .. pls reopen
w/ detailed description.

Note: I have tested w/ 
&apos;com.jogamp.opengl.test.junit.jogl.demos.es2.awt.TestGearsES2AWT -manual -time 100000&apos;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>723</attachid>
            <date>2015-08-24 16:56:41 +0200</date>
            <delta_ts>2015-08-24 16:56:41 +0200</delta_ts>
            <desc>Simple test program</desc>
            <filename>GLCanvasTest.java</filename>
            <type>application/octet-stream</type>
            <size>1435</size>
            <attacher name="Jonathan">jonathan.gallon</attacher>
            
              <data encoding="base64">cGFja2FnZSBjb20udG90YWwudGVzdDsKCmltcG9ydCBqYXZheC5tZWRpYS5vcGVuZ2wuR0w7Cmlt
cG9ydCBqYXZheC5tZWRpYS5vcGVuZ2wuR0wyOwppbXBvcnQgamF2YXgubWVkaWEub3BlbmdsLkdM
QXV0b0RyYXdhYmxlOwppbXBvcnQgamF2YXgubWVkaWEub3BlbmdsLkdMRXZlbnRMaXN0ZW5lcjsK
aW1wb3J0IGphdmF4Lm1lZGlhLm9wZW5nbC5hd3QuR0xDYW52YXM7CmltcG9ydCBqYXZheC5zd2lu
Zy5KRnJhbWU7CgpwdWJsaWMgY2xhc3MgR0xDYW52YXNUZXN0IHsKCiAgcHVibGljIHN0YXRpYyB2
b2lkIG1haW4oU3RyaW5nW10gYXJncykgewoKICAgIGZpbmFsIEpGcmFtZSBmcmFtZSA9IG5ldyBK
RnJhbWUoIkNhbnZhcyB0ZXN0Iik7CgogICAgR0xDYW52YXMgY2FudmFzID0gbmV3IEdMQ2FudmFz
KCk7CgogICAgY2FudmFzLmFkZEdMRXZlbnRMaXN0ZW5lcihuZXcgU2ltcGxlU2NlbmUoKSk7Cgog
ICAgZnJhbWUuYWRkKGNhbnZhcyk7CgogICAgZnJhbWUuc2V0RGVmYXVsdENsb3NlT3BlcmF0aW9u
KEpGcmFtZS5FWElUX09OX0NMT1NFKTsKICAgIGZyYW1lLnNldFNpemUoODAwLCA4MDApOwogICAg
ZnJhbWUuc2V0TG9jYXRpb25SZWxhdGl2ZVRvKG51bGwpOwogICAgZnJhbWUuc2V0VmlzaWJsZSh0
cnVlKTsKICB9CgogIHByaXZhdGUgc3RhdGljIGNsYXNzIFNpbXBsZVNjZW5lIGltcGxlbWVudHMg
R0xFdmVudExpc3RlbmVyIHsKCiAgICBwdWJsaWMgdm9pZCBpbml0KEdMQXV0b0RyYXdhYmxlIGRy
YXdhYmxlKSB7fQoKICAgIHB1YmxpYyB2b2lkIGRpc3Bvc2UoR0xBdXRvRHJhd2FibGUgZHJhd2Fi
bGUpIHt9CgogICAgcHVibGljIHZvaWQgcmVzaGFwZShHTEF1dG9EcmF3YWJsZSBkcmF3YWJsZSwg
aW50IHgsIGludCB5LCBpbnQgd2lkdGgsIGludCBoZWlnaHQpIHt9CgogICAgcHVibGljIHZvaWQg
ZGlzcGxheShHTEF1dG9EcmF3YWJsZSBkcmF3YWJsZSkgewogICAgICB1cGRhdGUoKTsKICAgICAg
cmVuZGVyKGRyYXdhYmxlKTsKICAgIH0KCiAgICBwcml2YXRlIHZvaWQgdXBkYXRlKCkgewogICAg
ICAvLyBub3RoaW5nIHRvIHVwZGF0ZSB5ZXQKICAgIH0KCiAgICBwcml2YXRlIHZvaWQgcmVuZGVy
KEdMQXV0b0RyYXdhYmxlIGRyYXdhYmxlKSB7CiAgICAgIEdMMiBnbCA9IGRyYXdhYmxlLmdldEdM
KCkuZ2V0R0wyKCk7CgogICAgICAvLyBkcmF3IGEgdHJpYW5nbGUgZmlsbGluZyB0aGUgd2luZG93
CiAgICAgIGdsLmdsQmVnaW4oR0wuR0xfVFJJQU5HTEVTKTsKICAgICAgZ2wuZ2xDb2xvcjNmKDEs
IDAsIDApOwogICAgICBnbC5nbFZlcnRleDJmKC0xLCAtMSk7CiAgICAgIGdsLmdsQ29sb3IzZigw
LCAxLCAwKTsKICAgICAgZ2wuZ2xWZXJ0ZXgyZigwLCAxKTsKICAgICAgZ2wuZ2xDb2xvcjNmKDAs
IDAsIDEpOwogICAgICBnbC5nbFZlcnRleDJmKDEsIC0xKTsKICAgICAgZ2wuZ2xFbmQoKTsKICAg
IH0KCiAgfQp9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>724</attachid>
            <date>2015-08-26 10:05:29 +0200</date>
            <delta_ts>2015-08-26 10:05:29 +0200</delta_ts>
            <desc>Simple test program with animator</desc>
            <filename>GLCanvasTest.java</filename>
            <type>application/octet-stream</type>
            <size>2860</size>
            <attacher name="Jonathan">jonathan.gallon</attacher>
            
              <data encoding="base64">cGFja2FnZSBjb20udG90YWwudGVzdDsKCmltcG9ydCBqYXZheC5tZWRpYS5vcGVuZ2wuR0w7Cmlt
cG9ydCBqYXZheC5tZWRpYS5vcGVuZ2wuR0wyOwppbXBvcnQgamF2YXgubWVkaWEub3BlbmdsLkdM
MkVTMTsKaW1wb3J0IGphdmF4Lm1lZGlhLm9wZW5nbC5HTEF1dG9EcmF3YWJsZTsKaW1wb3J0IGph
dmF4Lm1lZGlhLm9wZW5nbC5HTEV2ZW50TGlzdGVuZXI7CmltcG9ydCBqYXZheC5tZWRpYS5vcGVu
Z2wuYXd0LkdMQ2FudmFzOwppbXBvcnQgamF2YXgubWVkaWEub3BlbmdsLmZpeGVkZnVuYy5HTExp
Z2h0aW5nRnVuYzsKaW1wb3J0IGphdmF4Lm1lZGlhLm9wZW5nbC5maXhlZGZ1bmMuR0xNYXRyaXhG
dW5jOwppbXBvcnQgamF2YXguc3dpbmcuSkZyYW1lOwoKaW1wb3J0IGNvbS5qb2dhbXAub3Blbmds
LnV0aWwuQW5pbWF0b3I7CgpwdWJsaWMgY2xhc3MgR0xDYW52YXNUZXN0IHsKCiAgcHVibGljIHN0
YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgewogICAgZmluYWwgR0xDYW52YXMgY2FudmFz
ID0gbmV3IEdMQ2FudmFzKCk7CiAgICBmaW5hbCBKRnJhbWUgZnJhbWUgPSBuZXcgSkZyYW1lKCJK
b2dsIFF1YWQgZHJhd2luZyIpOwogICAgZmluYWwgQW5pbWF0b3IgYW5pbWF0b3IgPSBuZXcgQW5p
bWF0b3IoY2FudmFzKTsKICAgIGNhbnZhcy5hZGRHTEV2ZW50TGlzdGVuZXIobmV3IEpPR0xRdWFk
KCkpOwogICAgZnJhbWUuYWRkKGNhbnZhcyk7CiAgICBmcmFtZS5zZXRTaXplKDY0MCwgNDgwKTsK
ICAgIGZyYW1lLnNldERlZmF1bHRDbG9zZU9wZXJhdGlvbihKRnJhbWUuRVhJVF9PTl9DTE9TRSk7
CiAgICBmcmFtZS5zZXRWaXNpYmxlKHRydWUpOwogICAgYW5pbWF0b3Iuc3RhcnQoKTsKICAgIGNh
bnZhcy5yZXF1ZXN0Rm9jdXMoKTsKICB9CgogIHByaXZhdGUgc3RhdGljIGNsYXNzIEpPR0xRdWFk
IGltcGxlbWVudHMgR0xFdmVudExpc3RlbmVyIHsKCiAgICBwcml2YXRlIGZsb2F0IHJvdGF0ZVQg
PSAwLjBmOwoKICAgIEBPdmVycmlkZQogICAgcHVibGljIHZvaWQgZGlzcGxheShHTEF1dG9EcmF3
YWJsZSBnTERyYXdhYmxlKSB7CiAgICAgIGZpbmFsIEdMMiBnbCA9IGdMRHJhd2FibGUuZ2V0R0wo
KS5nZXRHTDIoKTsKICAgICAgZ2wuZ2xDbGVhcihHTC5HTF9DT0xPUl9CVUZGRVJfQklUKTsKICAg
ICAgZ2wuZ2xDbGVhcihHTC5HTF9ERVBUSF9CVUZGRVJfQklUKTsKICAgICAgZ2wuZ2xMb2FkSWRl
bnRpdHkoKTsKICAgICAgZ2wuZ2xUcmFuc2xhdGVmKDAuMGYsIDAuMGYsIC01LjBmKTsKCiAgICAg
IC8vIHJvdGF0ZSBhYm91dCB0aGUgdGhyZWUgYXhlcwogICAgICBnbC5nbFJvdGF0ZWYocm90YXRl
VCwgMS4wZiwgMC4wZiwgMC4wZik7CiAgICAgIGdsLmdsUm90YXRlZihyb3RhdGVULCAwLjBmLCAx
LjBmLCAwLjBmKTsKICAgICAgZ2wuZ2xSb3RhdGVmKHJvdGF0ZVQsIDAuMGYsIDAuMGYsIDEuMGYp
OwoKICAgICAgLy8gRHJhdyBBIFF1YWQKICAgICAgZ2wuZ2xCZWdpbihHTDIuR0xfUVVBRFMpOwog
ICAgICBnbC5nbENvbG9yM2YoMC4wZiwgMS4wZiwgMS4wZik7IC8vIHNldCB0aGUgY29sb3Igb2Yg
dGhlIHF1YWQKICAgICAgZ2wuZ2xWZXJ0ZXgzZigtMS4wZiwgMS4wZiwgMC4wZik7IC8vIFRvcCBM
ZWZ0CiAgICAgIGdsLmdsVmVydGV4M2YoMS4wZiwgMS4wZiwgMC4wZik7IC8vIFRvcCBSaWdodAog
ICAgICBnbC5nbFZlcnRleDNmKDEuMGYsIC0xLjBmLCAwLjBmKTsgLy8gQm90dG9tIFJpZ2h0CiAg
ICAgIGdsLmdsVmVydGV4M2YoLTEuMGYsIC0xLjBmLCAwLjBmKTsgLy8gQm90dG9tIExlZnQKICAg
ICAgLy8gRG9uZSBEcmF3aW5nIFRoZSBRdWFkCiAgICAgIGdsLmdsRW5kKCk7CgogICAgICAvLyBp
bmNyZWFzaW5nIHJvdGF0aW9uIGZvciB0aGUgbmV4dCBpdGVyYXRpb24gICAgICAgICAgICAgICAg
ICAgCiAgICAgIHJvdGF0ZVQgKz0gMC4yZjsKICAgIH0KCiAgICBAT3ZlcnJpZGUKICAgIHB1Ymxp
YyB2b2lkIGluaXQoR0xBdXRvRHJhd2FibGUgZ2xEcmF3YWJsZSkgewogICAgICBHTDIgZ2wgPSBn
bERyYXdhYmxlLmdldEdMKCkuZ2V0R0wyKCk7CiAgICAgIGdsLmdsU2hhZGVNb2RlbChHTExpZ2h0
aW5nRnVuYy5HTF9TTU9PVEgpOwogICAgICBnbC5nbENsZWFyQ29sb3IoMC4wZiwgMC4wZiwgMC4w
ZiwgMC4wZik7CiAgICAgIGdsLmdsQ2xlYXJEZXB0aCgxLjBmKTsKICAgICAgZ2wuZ2xFbmFibGUo
R0wuR0xfREVQVEhfVEVTVCk7CiAgICAgIGdsLmdsRGVwdGhGdW5jKEdMLkdMX0xFUVVBTCk7CiAg
ICAgIGdsLmdsSGludChHTDJFUzEuR0xfUEVSU1BFQ1RJVkVfQ09SUkVDVElPTl9ISU5ULCBHTC5H
TF9OSUNFU1QpOwogICAgfQoKICAgIEBPdmVycmlkZQogICAgcHVibGljIHZvaWQgcmVzaGFwZShH
TEF1dG9EcmF3YWJsZSBnTERyYXdhYmxlLCBpbnQgeCwgaW50IHksIGludCB3aWR0aCwgaW50IGhl
aWdodCkgewogICAgICBHTDIgZ2wgPSBnTERyYXdhYmxlLmdldEdMKCkuZ2V0R0wyKCk7CiAgICAg
IGZpbmFsIGZsb2F0IGFzcGVjdCA9IChmbG9hdCkgd2lkdGggLyAoZmxvYXQpIGhlaWdodDsKICAg
ICAgZ2wuZ2xNYXRyaXhNb2RlKEdMTWF0cml4RnVuYy5HTF9QUk9KRUNUSU9OKTsKICAgICAgZ2wu
Z2xMb2FkSWRlbnRpdHkoKTsKICAgICAgZmluYWwgZmxvYXQgZmggPSAwLjVmOwogICAgICBmaW5h
bCBmbG9hdCBmdyA9IGZoICogYXNwZWN0OwogICAgICBnbC5nbEZydXN0dW1mKC1mdywgZncsIC1m
aCwgZmgsIDEuMGYsIDEwMDAuMGYpOwogICAgICBnbC5nbE1hdHJpeE1vZGUoR0xNYXRyaXhGdW5j
LkdMX01PREVMVklFVyk7CiAgICAgIGdsLmdsTG9hZElkZW50aXR5KCk7CiAgICB9CgogICAgQE92
ZXJyaWRlCiAgICBwdWJsaWMgdm9pZCBkaXNwb3NlKEdMQXV0b0RyYXdhYmxlIGdMRHJhd2FibGUp
IHt9CgogIH0KfQ==
</data>

          </attachment>
      

    </bug>

</bugzilla>