<?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>969</bug_id>
          
          <creation_ts>2014-02-10 12:53:39 +0100</creation_ts>
          <short_desc>NewtCanvasSWT positioning and resizing issues</short_desc>
          <delta_ts>2020-01-15 12:53:46 +0100</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>3</classification_id>
          <classification>JogAmp</classification>
          <product>Newt</product>
          <component>swt</component>
          <version>2.4.0</version>
          <rep_platform>All</rep_platform>
          <op_sys>all</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>---</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>672</dependson>
    
    <dependson>822</dependson>
    
    <dependson>956</dependson>
    
    <dependson>985</dependson>
          <blocked>674</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Petros Koutsolampros">pjgl</reporter>
          <assigned_to name="Petros Koutsolampros">pjgl</assigned_to>
          <cc>bryan.osborn</cc>
    
    <cc>sgothel</cc>
          
          <cf_type>DEFECT</cf_type>
          <cf_scm_refs>78fcb8228d4a391054501aef16eb0462322ba39d</cf_scm_refs>
          <cf_workaround>---</cf_workaround>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>3704</commentid>
    <comment_count>0</comment_count>
    <who name="Petros Koutsolampros">pjgl</who>
    <bug_when>2014-02-10 12:53:39 +0100</bug_when>
    <thetext>Gathering issues, discussions and possible solutions here for NewtCanvasSWT positioning and resizing issues

Discussion:
http://jogamp.org/log/irc/jogamp_20140210050544.html#l15

ideas to folllow</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>3705</commentid>
    <comment_count>1</comment_count>
      <attachid>590</attachid>
    <who name="Petros Koutsolampros">pjgl</who>
    <bug_when>2014-02-10 18:20:51 +0100</bug_when>
    <thetext>Created attachment 590
Basic NewtCanvasSWT tester with Sash

If we add a println(event) in NewtCanvasSWT (constr) -&gt; listener -&gt; handleEvent we see that:

 If we use a GridLayout (NewtSashTest.java / L42) for the NewtCanvasSWT parent, SWT.Resize events ARE NOT sent when resizing, but only once in the beginning. In OSX (Mavericks) SWT.Paint events are sent while resizing

 If we use a FillLayout (NewtSashTest.java / L41) SWT.Resize events ARE sent in the beginning and while resizing. SWT.Paint events, only in OSX when resizing

Without fix for Bug 672, NewtCanvasSWT in OSX does not get position updates, but does so in Win7x64. The fix was to take advantage of the SWT.Paint events to update position of the newtChild:

  if( SWTAccessor.isOSX ) {
    newtChild.setPosition(parent.getLocation().x,parent.getLocation().y);
  }

Problem comes with multiple parents in different places like in bug 965</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>3708</commentid>
    <comment_count>2</comment_count>
      <attachid>591</attachid>
    <who name="Petros Koutsolampros">pjgl</who>
    <bug_when>2014-02-10 20:15:27 +0100</bug_when>
    <thetext>Created attachment 591
patch to fix positioning in OSX

proposed patch is to use the existing SWT method Control.setBounds(int x, int y, int width, int height); which trickles down from parent elements to help update the newtChild&apos;s position. Thus, no need for hacking the SWT.Paint event. The method getLocationOnScreen() in SWTNativeWindow is also simplified (for OSX) to use SWT&apos;s Control.toDisplay(int x, int y) which returns the position of the parent element on the screen. setBounds() can then position the element from that point, since the numbers it provides are relative to the parent element. 

The new positioning requires the newtChild to be manually positioned when it is created, otherwise the parent has to be resized for it to update its position. Thus newtChild.setPosition(getLocation().x, getLocation().y); has been placed after the creation of the SWTNativeWindow in validateNative().

Last but not least, since setBounds() will now provide coordinates relative to the parent, if the NewtCanvasSWT is not moved within the parent, it will not be updated due to line 2090 in WindowImpl.java:

if ( !isFullscreen() &amp;&amp; ( getX() != x || getY() != y ) ) {

this line has thus been changed to allow for moving the newtChild as long as the parent is not null:

if ( !isFullscreen() &amp;&amp; ( getX() != x || getY() != y || null != getParent()) ) {

Apart from the last piece in WindowImpl.java, all the others are wrapped with checks to only be executed in OSX since windows seems to be handling the positioning of child windows on its own...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>3790</commentid>
    <comment_count>3</comment_count>
    <who name="Petros Koutsolampros">pjgl</who>
    <bug_when>2014-02-25 13:21:24 +0100</bug_when>
    <thetext>78fcb8228d4a391054501aef16eb0462322ba39d

Refer to commit: https://github.com/orange-vertex/jogl/commit/78fcb8228d4a391054501aef16eb0462322ba39d

Tested on OSX Mavericks and Windows 7 JVMx64. Refer to test TestBug672NewtCanvasSWTSashForm as it is a better solution for the same problem.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>3791</commentid>
    <comment_count>4</comment_count>
    <who name="Sven Gothel">sgothel</who>
    <bug_when>2014-02-25 13:26:48 +0100</bug_when>
    <thetext>(In reply to comment #2)
&gt; Created attachment 591 [details]
&gt; patch to fix positioning in OSX
&gt; 
&gt; proposed patch is to use the existing SWT method Control.setBounds(int x,
&gt; int y, int width, int height); which trickles down from parent elements to
&gt; help update the newtChild&apos;s position. Thus, no need for hacking the
&gt; SWT.Paint event. The method getLocationOnScreen() in SWTNativeWindow is also
&gt; simplified (for OSX) to use SWT&apos;s Control.toDisplay(int x, int y) which
&gt; returns the position of the parent element on the screen. setBounds() can
&gt; then position the element from that point, since the numbers it provides are
&gt; relative to the parent element. 

We discussed a probable case for a deadlock, i.e. if 
we need to run the command on the SWT-EDT
and the caller is on another thread.
Is this deadlock threat still exisiting or will you call toDisplay(..) 
always while on the SWT-EDT ?

&gt; 
&gt; The new positioning requires the newtChild to be manually positioned when it
&gt; is created, otherwise the parent has to be resized for it to update its
&gt; position. Thus newtChild.setPosition(getLocation().x, getLocation().y); has
&gt; been placed after the creation of the SWTNativeWindow in validateNative().
&gt; 
&gt; Last but not least, since setBounds() will now provide coordinates relative
&gt; to the parent, if the NewtCanvasSWT is not moved within the parent, it will
&gt; not be updated due to line 2090 in WindowImpl.java:
&gt; 
&gt; if ( !isFullscreen() &amp;&amp; ( getX() != x || getY() != y ) ) {
&gt; 
&gt; this line has thus been changed to allow for moving the newtChild as long as
&gt; the parent is not null:
&gt; 
&gt; if ( !isFullscreen() &amp;&amp; ( getX() != x || getY() != y || null != getParent())
&gt; ) {

OK, as discussed

&gt; 
&gt; Apart from the last piece in WindowImpl.java, all the others are wrapped
&gt; with checks to only be executed in OSX since windows seems to be handling
&gt; the positioning of child windows on its own...

Please mention the test case name and platform for which you have
tested this patch and can confirm it&apos;s working.

Thank you.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>3792</commentid>
    <comment_count>5</comment_count>
    <who name="Sven Gothel">sgothel</who>
    <bug_when>2014-02-25 13:27:12 +0100</bug_when>
    <thetext>(In reply to comment #3)
&gt; 78fcb8228d4a391054501aef16eb0462322ba39d
&gt; 
&gt; Refer to commit:
&gt; https://github.com/orange-vertex/jogl/commit/
&gt; 78fcb8228d4a391054501aef16eb0462322ba39d
&gt; 
&gt; Tested on OSX Mavericks and Windows 7 JVMx64. Refer to test
&gt; TestBug672NewtCanvasSWTSashForm as it is a better solution for the same
&gt; problem.


Thank you!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>6152</commentid>
    <comment_count>6</comment_count>
    <who name="Sven Gothel">sgothel</who>
    <bug_when>2019-03-30 03:01:07 +0100</bug_when>
    <thetext>Fix probably landed in version 2.1.5</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>590</attachid>
            <date>2014-02-10 18:20:51 +0100</date>
            <delta_ts>2014-02-10 18:20:51 +0100</delta_ts>
            <desc>Basic NewtCanvasSWT tester with Sash</desc>
            <filename>NewtSashTest.java</filename>
            <type>text/x-java</type>
            <size>3175</size>
            <attacher name="Petros Koutsolampros">pjgl</attacher>
            
              <data encoding="base64">CXBhY2thZ2UgbGFsYTsKCWltcG9ydCBqYXZheC5tZWRpYS5vcGVuZ2wuKjsKCWltcG9ydCBqYXZh
eC5tZWRpYS5vcGVuZ2wuZ2x1LkdMVTsKCQoJaW1wb3J0IG9yZy5lY2xpcHNlLnN3dC5TV1Q7Cglp
bXBvcnQgb3JnLmVjbGlwc2Uuc3d0LmN1c3RvbS5TYXNoRm9ybTsKCWltcG9ydCBvcmcuZWNsaXBz
ZS5zd3QubGF5b3V0LkZpbGxMYXlvdXQ7CglpbXBvcnQgb3JnLmVjbGlwc2Uuc3d0LmxheW91dC5H
cmlkTGF5b3V0OwoJaW1wb3J0IG9yZy5lY2xpcHNlLnN3dC53aWRnZXRzLio7CglpbXBvcnQgb3Jn
LmVjbGlwc2Uuc3d0LmV2ZW50cy5QYWludExpc3RlbmVyOwoJaW1wb3J0IG9yZy5lY2xpcHNlLnN3
dC5ldmVudHMuUGFpbnRFdmVudDsKCWltcG9ydCBvcmcuZWNsaXBzZS5zd3QuZ3JhcGhpY3MuUmVj
dGFuZ2xlOwoJCglpbXBvcnQgY29tLmpvZ2FtcC5uZXd0Lm9wZW5nbC5HTFdpbmRvdzsKCWltcG9y
dCBjb20uam9nYW1wLm5ld3Quc3d0Lk5ld3RDYW52YXNTV1Q7CglpbXBvcnQgY29tLmpvZ2FtcC5v
cGVuZ2wudXRpbC5BbmltYXRvcjsKCQoJcHVibGljIGNsYXNzIE5ld3RTYXNoVGVzdCB7CgkJTmV3
dENhbnZhc1NXVCByaWdodDsKCQlDYW52YXMgY2FudmFzOwoJCUNvbXBvc2l0ZSBsb2xsZXI7CgkK
CQlwdWJsaWMgTmV3dFNhc2hUZXN0KCkgewoJCQlmaW5hbCBEaXNwbGF5IGQgPSBuZXcgRGlzcGxh
eSgpOwoJCQlTaGVsbCBzaGVsbCA9IG5ldyBTaGVsbChkKTsKCQkJc2hlbGwuc2V0TGF5b3V0KG5l
dyBGaWxsTGF5b3V0KCkpOwoJCQlzaGVsbC5zZXRTaXplKDQwMCwgMjAwKTsKCQkJU2FzaEZvcm0g
c2FzaCA9IG5ldyBTYXNoRm9ybShzaGVsbCwgU1dULkJPUkRFUiB8IFNXVC5IT1JJWk9OVEFMKTsK
CQoJCQlUZXh0IGxlZnQgPSBuZXcgVGV4dChzYXNoLCBTV1QuQ0VOVEVSKTsKCQkJbGVmdC5zZXRU
ZXh0KCIgLS0tIExlZnQgdGV4dCAtLS0tIik7CgkKCQkJQmFzZUNsYXNzIGRlbW8gPSBuZXcgQmFz
ZUNsYXNzKCk7CgkJCUdMQ2FwYWJpbGl0aWVzIGNhcHMgPSBuZXcgR0xDYXBhYmlsaXRpZXMoR0xQ
cm9maWxlLmdldChHTFByb2ZpbGUuR0wyKSk7CgkKCQkJR0xXaW5kb3cgZ2xXaW5kb3cxID0gR0xX
aW5kb3cuY3JlYXRlKGNhcHMpOwoJCQlnbFdpbmRvdzEuYWRkR0xFdmVudExpc3RlbmVyKGRlbW8p
OwoJCgkJCWxvbGxlciA9IG5ldyBDb21wb3NpdGUoc2FzaCwgU1dULk5PTkUpOwoJCQkKLy8JCQls
b2xsZXIuc2V0TGF5b3V0KG5ldyBGaWxsTGF5b3V0KFNXVC5OT05FKSk7CgkJCWxvbGxlci5zZXRM
YXlvdXQobmV3IEdyaWRMYXlvdXQoMSwgZmFsc2UpKTsKCQkJCgkJCWNhbnZhcyA9IG5ldyBDYW52
YXMobG9sbGVyLCBTV1QuTk9ORSk7CgkJCWNhbnZhcy5hZGRQYWludExpc3RlbmVyKG5ldyBQYWlu
dExpc3RlbmVyKCkgewoJCQkJcHVibGljIHZvaWQgcGFpbnRDb250cm9sKFBhaW50RXZlbnQgZSkg
ewoJCQkJCVJlY3RhbmdsZSBjbGllbnRBcmVhID0gY2FudmFzLmdldENsaWVudEFyZWEoKTsKCQkJ
CQllLmdjLnNldEJhY2tncm91bmQoZC5nZXRTeXN0ZW1Db2xvcihTV1QuQ09MT1JfQ1lBTikpOwoJ
CQkJCWUuZ2MuZmlsbE92YWwoMCwgMCwgY2xpZW50QXJlYS53aWR0aCwgY2xpZW50QXJlYS5oZWln
aHQpOwoJCQkJfQoJCQl9KTsKCQkJcmlnaHQgPSBOZXd0Q2FudmFzU1dULmNyZWF0ZShsb2xsZXIs
IFNXVC5TSEVMTF9UUklNLCBnbFdpbmRvdzEpOwoJCQlzaGVsbC5vcGVuKCk7CgkJCUFuaW1hdG9y
IGFuaW0gPSBuZXcgQW5pbWF0b3IoZ2xXaW5kb3cxKTsKCQkJYW5pbS5zdGFydCgpOwoJCQl3aGls
ZSAoIXNoZWxsLmlzRGlzcG9zZWQoKSkgewoJCQkJaWYgKCFkLnJlYWRBbmREaXNwYXRjaCgpKSB7
CgkJCQkJZC5zbGVlcCgpOwoJCQkJfQoJCQl9CgkJCWQuZGlzcG9zZSgpOwoJCQlTeXN0ZW0uZXhp
dCgwKTsKCQl9CgkKCQljbGFzcyBCYXNlQ2xhc3MgaW1wbGVtZW50cyBHTEV2ZW50TGlzdGVuZXIg
ewoJCgkJCWludCB4LCB5OwoJCQlpbnQgdywgaDsKCQoJCQlwcm90ZWN0ZWQgdm9pZCBzZXR1cChH
TDIgZ2wyKSB7CgkJCQlnbDIuZ2xNYXRyaXhNb2RlKEdMMi5HTF9QUk9KRUNUSU9OKTsKCQkJCWds
Mi5nbExvYWRJZGVudGl0eSgpOwoJCQkJR0xVIGdsdSA9IG5ldyBHTFUoKTsKCQkJCWdsdS5nbHVP
cnRobzJEKDAuMGYsIHcsIDAuMGYsIGgpOwoJCQkJZ2wyLmdsTWF0cml4TW9kZShHTDIuR0xfTU9E
RUxWSUVXKTsKCQkJCWdsMi5nbExvYWRJZGVudGl0eSgpOwoJCQkJZ2wyLmdsVmlld3BvcnQoeCwg
eSwgdywgaCk7CgkKCQkJfQoJCgkJCXByb3RlY3RlZCB2b2lkIHJlbmRlcihHTDIgZ2wyKSB7CgkJ
CQlnbDIuZ2xDbGVhcihHTC5HTF9DT0xPUl9CVUZGRVJfQklUKTsKCQkJCWdsMi5nbExvYWRJZGVu
dGl0eSgpOwoJCQkJZ2wyLmdsQmVnaW4oR0wuR0xfVFJJQU5HTEVTKTsKCQkJCWdsMi5nbENvbG9y
M2YoMSwgMCwgMCk7CgkJCQlnbDIuZ2xWZXJ0ZXgyZigwLCAwKTsKCQkJCWdsMi5nbENvbG9yM2Yo
MCwgMSwgMCk7CgkJCQlnbDIuZ2xWZXJ0ZXgyZih3LCAwKTsKCQkJCWdsMi5nbENvbG9yM2YoMCwg
MCwgMSk7CgkJCQlnbDIuZ2xWZXJ0ZXgyZih3IC8gMiwgaCk7CgkJCQlnbDIuZ2xFbmQoKTsKCQkJ
fQoJCgkJCUBPdmVycmlkZQoJCQlwdWJsaWMgdm9pZCBkaXNwbGF5KEdMQXV0b0RyYXdhYmxlIGFy
ZzApIHsKCQkJCXJlbmRlcigoR0wyKSBhcmcwLmdldEdMKCkpOwoJCQl9CgkKCQkJQE92ZXJyaWRl
CgkJCXB1YmxpYyB2b2lkIGRpc3Bvc2UoR0xBdXRvRHJhd2FibGUgYXJnMCkgewoJCQl9CgkKCQkJ
QE92ZXJyaWRlCgkJCXB1YmxpYyB2b2lkIGluaXQoR0xBdXRvRHJhd2FibGUgYXJnMCkgewoJCQkJ
c2V0dXAoKEdMMikgYXJnMC5nZXRHTCgpKTsKCQkJfQoJCgkJCUBPdmVycmlkZQoJCQlwdWJsaWMg
dm9pZCByZXNoYXBlKEdMQXV0b0RyYXdhYmxlIGFyZzAsIGludCB4LCBpbnQgeSwgaW50IHcsIGlu
dCBoKSB7CgkJCQl0aGlzLnggPSB4OwoJCQkJdGhpcy55ID0geTsKCQkJCXRoaXMudyA9IHc7CgkJ
CQl0aGlzLmggPSBoOwoJCQkJU3lzdGVtLm91dAoJCQkJCQkucHJpbnRsbigieDogIiArIHggKyAi
IHk6ICIgKyB5ICsgIiB3OiAiICsgdyArICIgaDogIiArIGgpOwoJCQkJc2V0dXAoKEdMMikgYXJn
MC5nZXRHTCgpKTsKCQkJfQoJCX0KCQoJCXB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZyBh
cmdzW10pIHsKCQkJbmV3IE5ld3RTYXNoVGVzdCgpOwoJCX0KCQp9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>591</attachid>
            <date>2014-02-10 20:15:27 +0100</date>
            <delta_ts>2014-02-10 20:15:27 +0100</delta_ts>
            <desc>patch to fix positioning in OSX</desc>
            <filename>jogl.patch</filename>
            <type>application/octet-stream</type>
            <size>4414</size>
            <attacher name="Petros Koutsolampros">pjgl</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL3NyYy9uZXd0L2NsYXNzZXMvY29tL2pvZ2FtcC9uZXd0L3N3dC9OZXd0Q2Fu
dmFzU1dULmphdmEgYi9zcmMvbmV3dC9jbGFzc2VzL2NvbS9qb2dhbXAvbmV3dC9zd3QvTmV3dENh
bnZhc1NXVC5qYXZhCmluZGV4IDQzZTU2YzguLjczZmExZjcgMTAwNjQ0Ci0tLSBhL3NyYy9uZXd0
L2NsYXNzZXMvY29tL2pvZ2FtcC9uZXd0L3N3dC9OZXd0Q2FudmFzU1dULmphdmEKKysrIGIvc3Jj
L25ld3QvY2xhc3Nlcy9jb20vam9nYW1wL25ld3Qvc3d0L05ld3RDYW52YXNTV1QuamF2YQpAQCAt
MTQ2LDkgKzE0Niw2IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld3RDaGls
ZC5zZXRTaXplKGNsaWVudEFyZWEud2lkdGgsIGNsaWVudEFyZWEuaGVpZ2h0KTsKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcG9zdFNldFNpemUgPSBmYWxzZTsKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoIFNXVEFj
Y2Vzc29yLmlzT1NYICkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXd0Q2hp
bGQuc2V0UG9zaXRpb24ocGFyZW50LmdldExvY2F0aW9uKCkueCxwYXJlbnQuZ2V0TG9jYXRpb24o
KS55KTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgbmV3dENoaWxkLndpbmRvd1JlcGFpbnQoMCwgMCwgY2xpZW50QXJlYS53aWR0aCwg
Y2xpZW50QXJlYS5oZWlnaHQpOwogICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg
ICAgICAgICAgICB9CkBAIC0xNjYsNyArMTYzLDE4IEBACiAgICAgICAgIGFkZExpc3RlbmVyIChT
V1QuUGFpbnQsIGxpc3RlbmVyKTsKICAgICAgICAgYWRkTGlzdGVuZXIgKFNXVC5EaXNwb3NlLCBs
aXN0ZW5lcik7CiAgICAgfQotCisgICAgQE92ZXJyaWRlIAorICAgIHB1YmxpYyB2b2lkIHNldEJv
dW5kcyhpbnQgeCwgaW50IHksIGludCB3LCBpbnQgaCkgeworICAgIAkvLyBwcm9wYWdhdGUgdGhl
IHNldEJvdW5kcyBtZXRob2QgY29taW5nIGZyb20gcGFyZW50IGVsZW1lbnRzIHRvIHRoaXMgZWxl
bWVudAorICAgIAkvLyBhbmQgZm9yY2UgbmV3dENoaWxkIHRvIHVwZGF0ZSBpdHMgcG9zaXRpb24g
aW4gT1NYCisgICAgCXN1cGVyLnNldEJvdW5kcyh4LHksdyxoKTsKKyAgICAJaWYoU1dUQWNjZXNz
b3IuaXNPU1gpIHsKKyAgICAJCW5ld3RDaGlsZC5zZXRQb3NpdGlvbih4LCB5KTsKKyAgICAJCWNs
aWVudEFyZWEud2lkdGggPSB3OworICAgIAkJY2xpZW50QXJlYS5oZWlnaHQgPSBoOworICAgIAkJ
dXBkYXRlU2l6ZUNoZWNrKCk7CisgICAgCX0KKyAgICB9CiAgICAgLyoqIGFzc3VtZXMgbmF0aXZl
V2luZG93ID09IG51bGwgISAqLwogICAgIHByb3RlY3RlZCBmaW5hbCBib29sZWFuIHZhbGlkYXRl
TmF0aXZlKCkgewogICAgICAgICB1cGRhdGVTaXplQ2hlY2soKTsKQEAgLTE5OSw2ICsyMDcsMTAg
QEAKIAogICAgICAgICAgICAgbmF0aXZlV2luZG93ID0gbmV3IFNXVE5hdGl2ZVdpbmRvdyhjb25m
aWcsIG5hdGl2ZVdpbmRvd0hhbmRsZSk7CiAgICAgICAgICAgICByZXBhcmVudFdpbmRvdyggdHJ1
ZSApOworICAgICAgICAJaWYoU1dUQWNjZXNzb3IuaXNPU1gpIHsKKyAgICAgICAgCQkvLyBpbml0
aWFsIHBvc2l0aW9uaW5nIGZvciBPU1gsIGNhbGxlZCB3aGVuIHRoZSB3aW5kb3cgaXMgY3JlYXRl
ZAorICAgICAgICAgICAgICAgIG5ld3RDaGlsZC5zZXRQb3NpdGlvbihnZXRMb2NhdGlvbigpLngs
IGdldExvY2F0aW9uKCkueSk7CisgICAgICAgIAl9CiAgICAgICAgIH0KIAogICAgICAgICByZXR1
cm4gbnVsbCAhPSBuYXRpdmVXaW5kb3c7CkBAIC0yNTUsOSArMjY3LDEwIEBACiAgICAgICAgIG5h
dGl2ZVdpbmRvdyA9IG51bGw7CiAgICAgICAgIHN1cGVyLmRpc3Bvc2UoKTsKICAgICB9Ci0KLSAg
ICBwcml2YXRlIFJlY3RhbmdsZSBnZXRTV1RDYW52YXNQb3NpdGlvbigpIHsKLSAgICAgICAgcmV0
dXJuIHN1cGVyLmdldEJvdW5kcygpOworICAgIAorICAgIHByaXZhdGUgUG9pbnQgZ2V0UGFyZW50
TG9jYXRpb25PblNjcmVlbigpIHsKKyAgICAJb3JnLmVjbGlwc2Uuc3d0LmdyYXBoaWNzLlBvaW50
IHBhcmVudExvYyA9IGdldFBhcmVudCgpLnRvRGlzcGxheSgwLDApOworICAgICAgICByZXR1cm4g
bmV3IFBvaW50KHBhcmVudExvYy54LHBhcmVudExvYy55KTsKICAgICB9CiAgICAgLyoqIEByZXR1
cm4gdGhpcyBTV1QgQ2FudmFzIE5hdGl2ZVdpbmRvdyByZXByZXNlbnRhdGlvbiwgbWF5IGJlIG51
bGwgaW4gY2FzZSBpdCBoYXMgbm90IGJlZW4gcmVhbGl6ZWQuICovCiAgICAgcHVibGljIE5hdGl2
ZVdpbmRvdyBnZXROYXRpdmVXaW5kb3coKSB7IHJldHVybiBuYXRpdmVXaW5kb3c7IH0KQEAgLTUw
NiwxMCArNTE5LDkgQEAKICAgICAgICAgcHVibGljIFBvaW50IGdldExvY2F0aW9uT25TY3JlZW4o
UG9pbnQgcG9pbnQpIHsKICAgICAgICAgICAgIGZpbmFsIFBvaW50IGxvczsgLy8gY2xpZW50IHdp
bmRvdyBsb2NhdGlvbiBvbiBzY3JlZW4KICAgICAgICAgICAgIGlmKCBTV1RBY2Nlc3Nvci5pc09T
WCApIHsKLSAgICAgICAgICAgICAgICBsb3MgPSBPU1hVdGlsLkdldExvY2F0aW9uT25TY3JlZW4o
bmF0aXZlV2luZG93SGFuZGxlLCBmYWxzZSwgMCwgMCk7Ci0gICAgICAgICAgICAgICAgLy8gdG9w
LWxldmVsIHBvc2l0aW9uIC0+IGNsaWVudCB3aW5kb3cgcG9zaXRpb246IE9TWCBuZWVkcyB0byBh
ZGQgU1dUIHBhcmVudCBwb3NpdGlvbiBpbmNsLiBpbnNldHMKLSAgICAgICAgICAgICAgICBmaW5h
bCBSZWN0YW5nbGUgc3d0Q2FudmFzUG9zaXRpb24gPSBnZXRTV1RDYW52YXNQb3NpdGlvbigpOwot
ICAgICAgICAgICAgICAgIGxvcy50cmFuc2xhdGUoc3d0Q2FudmFzUG9zaXRpb24ueCArIGluc2V0
cy5nZXRMZWZ0V2lkdGgoKSwgc3d0Q2FudmFzUG9zaXRpb24ueSArIGluc2V0cy5nZXRUb3BIZWln
aHQoKSk7CisgICAgICAgICAgICAJLy8gbGV0IGdldExPUyBwcm92aWRlIHRoZSBwb2ludCB3aGVy
ZSB0aGUgY2hpbGQgd2luZG93IG1heSBiZSBwbGFjZWQgCisgICAgICAgICAgICAJLy8gZnJvbSwg
YXMgdGFrZW4gZnJvbSBTV1QgQ29udHJvbC50b0Rpc3BsYXkoKTsKKyAgICAgICAgICAgIAlsb3Mg
PSBnZXRQYXJlbnRMb2NhdGlvbk9uU2NyZWVuKCk7CiAgICAgICAgICAgICB9IGVsc2UgaWYgKFNX
VEFjY2Vzc29yLmlzWDExKSB7CiAgICAgICAgICAgICAgICAgZmluYWwgQWJzdHJhY3RHcmFwaGlj
c1NjcmVlbiBzID0gY29uZmlnLmdldFNjcmVlbigpOwogICAgICAgICAgICAgICAgIGxvcyA9IFgx
MUxpYi5HZXRSZWxhdGl2ZUxvY2F0aW9uKHMuZ2V0RGV2aWNlKCkuZ2V0SGFuZGxlKCksIHMuZ2V0
SW5kZXgoKSwgbmF0aXZlV2luZG93SGFuZGxlLCAwIC8qcm9vdCB3aW4qLywgMCwgMCk7CmRpZmYg
LS1naXQgYS9zcmMvbmV3dC9jbGFzc2VzL2pvZ2FtcC9uZXd0L1dpbmRvd0ltcGwuamF2YSBiL3Ny
Yy9uZXd0L2NsYXNzZXMvam9nYW1wL25ld3QvV2luZG93SW1wbC5qYXZhCmluZGV4IDFlMjI5MWMu
LjcyZjg4ZWYgMTAwNjQ0Ci0tLSBhL3NyYy9uZXd0L2NsYXNzZXMvam9nYW1wL25ld3QvV2luZG93
SW1wbC5qYXZhCisrKyBiL3NyYy9uZXd0L2NsYXNzZXMvam9nYW1wL25ld3QvV2luZG93SW1wbC5q
YXZhCkBAIC0yMDg3LDcgKzIwODcsOCBAQAogICAgICAgICAgICAgICAgIGlmKERFQlVHX0lNUExF
TUVOVEFUSU9OKSB7CiAgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbigiV2lu
ZG93IHNldFBvc2l0aW9uOiAiK2dldFgoKSsiLyIrZ2V0WSgpKyIgLT4gIit4KyIvIit5KyIsIGZz
ICIrZnVsbHNjcmVlbisiLCB3aW5kb3dIYW5kbGUgIit0b0hleFN0cmluZyh3aW5kb3dIYW5kbGUp
KTsKICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgaWYgKCAhaXNGdWxsc2NyZWVu
KCkgJiYgKCBnZXRYKCkgIT0geCB8fCBnZXRZKCkgIT0geSApICkgeworICAgICAgICAgICAgICAg
IC8vIGxldCB0aGUgd2luZG93IGJlIHJlc2l6ZWQgYXMgbG9uZyBhcyB0aGUgcGFyZW50IGlzIHRo
ZXJlCisgICAgICAgICAgICAgICAgaWYgKCAhaXNGdWxsc2NyZWVuKCkgJiYgKCBnZXRYKCkgIT0g
eCB8fCBnZXRZKCkgIT0geSB8fCBudWxsICE9IGdldFBhcmVudCgpKSApIHsKICAgICAgICAgICAg
ICAgICAgICAgaWYoaXNOYXRpdmVWYWxpZCgpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAv
LyB0aGlzLngvdGhpcy55IHdpbGwgYmUgc2V0IGJ5IHNpemVDaGFuZ2VkLCB0cmlnZ2VyZWQgYnkg
d2luZG93aW5nIGV2ZW50IHN5c3RlbQogICAgICAgICAgICAgICAgICAgICAgICAgcmVjb25maWd1
cmVXaW5kb3dJbXBsKHgsIHksIGdldFdpZHRoKCksIGdldEhlaWdodCgpLCBnZXRSZWNvbmZpZ3Vy
ZUZsYWdzKDAsIGlzVmlzaWJsZSgpKSk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>