<?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>555</bug_id>
          
          <creation_ts>2012-02-20 16:05:27 +0100</creation_ts>
          <short_desc>Embedding NEWT canvas into Applet object doesn&apos;t allow to set framerate on OSX</short_desc>
          <delta_ts>2012-04-22 05:13:41 +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>macosx</component>
          <version>2</version>
          <rep_platform>pc_all</rep_platform>
          <op_sys>macosx</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>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="ac">andres.colubri</reporter>
          <assigned_to name="Sven Gothel">sgothel</assigned_to>
          <cc>gouessej</cc>
          
          <cf_type>---</cf_type>
          <cf_scm_refs>218d67fc0222d7709b21c45792d44501351939c4
9d522e77a9ac1f85c57236f00d5432e671f9169c</cf_scm_refs>
          <cf_workaround>---</cf_workaround>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1411</commentid>
    <comment_count>0</comment_count>
      <attachid>328</attachid>
    <who name="ac">andres.colubri</who>
    <bug_when>2012-02-20 16:05:27 +0100</bug_when>
    <thetext>Created attachment 328
Full source of the test application demonstrating the bug

I have an application built on top of the AWT Applet class. I use NEWT for rendering, and the NewtCanvasAWT class for integrating NEWT with AWT.

I use a custom animator to control the frame rendering. But the framerate of my animator is not honored by the application. This happens only on MacOSX. The full source of my test application showing the issue is attached.

The target framerate is 120 in the test application, but it hovers around 60. This on a MacBook Pro with a NVidia 320M card and MacOSX Snow Leopard 10.6.8. I&apos;m using the b496 and b666 autobuilds packages for gluegen and jogl, respectively.

Also, as a minor detail, the application prints this error:

2012-02-20 09:38:38.304 java[8961:903] invalid drawable

just one time right after it starts.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1415</commentid>
    <comment_count>1</comment_count>
      <attachid>330</attachid>
    <who name="ac">andres.colubri</who>
    <bug_when>2012-02-23 02:16:55 +0100</bug_when>
    <thetext>Created attachment 330
Updated NEWT test application</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1416</commentid>
    <comment_count>2</comment_count>
      <attachid>331</attachid>
    <who name="ac">andres.colubri</who>
    <bug_when>2012-02-23 02:19:28 +0100</bug_when>
    <thetext>Created attachment 331
Updated AWT test application</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1417</commentid>
    <comment_count>3</comment_count>
    <who name="ac">andres.colubri</who>
    <bug_when>2012-02-23 03:42:15 +0100</bug_when>
    <thetext>Just uploaded updated versions of the test app, using both AWT and NEWT. I added the gl.setSwapInterval(0); call to force disabling vsync, but framerate is still lower in OSX. Other platforms work fine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1443</commentid>
    <comment_count>4</comment_count>
    <who name="ac">andres.colubri</who>
    <bug_when>2012-03-15 20:52:07 +0100</bug_when>
    <thetext>I wrote a small patch for the file jogl/classes/jogamp/opengl/macosx/cgl/MacOSXCGLContext.java, which appears to solve the issue reported here.

The patch adds the variable vsyncTimeout to the class NSOpenGLImpl. The value of this variable is set to the appropriate timeout in ms needed to call waitUntilNSOpenGLLayerIsReady() in swapBuffers(), according to the desired swap interval. In this way, framerates higher than 60 can be used. Basically, if the user specifies a swap interval of zero, i.e.: v-sync disabled, then vsyncTimeout is set to 2, which corresponds to a theoretical maximum refresh rate of 480Mhz.  If the swap interval is equal or larger than 1, then the following formula is used:

vsyncTimeout = interval * 16;

which yields the correct timeout in milliseconds to use with framerates equal or lower than 60.

The downside of this approach is that the timeout interval for framerates higher than 60 is not accurate, since is set to 2ms regardless of the target framerate. I&apos;d like to suggest the addition of a setFramerate method that should do the following:

public boolean setFramerate(int fps) {
    if(fps &lt;= 60) {
        if(fps &lt;= 15) {
          return setSwapInterval(3);
        } else if(fps &lt;= 30) {
          return setSwapInterval(2);
        } else {
          return setSwapInterval(1);
        }
    } else {
        if(0 != nsOpenGLLayer) {
          CGL.setNSOpenGLLayerSwapInterval(nsOpenGLLayer, 0);
        }
        CGL.setSwapInterval(contextHandle, 0);              
        if(fps &lt;= 120) {
          vsyncTimeout = 8; // 8ms -&gt; 120Mhz
        } else if(fps &lt;= 240) {
          vsyncTimeout = 4; // 4ms -&gt; 240Mhz
        } else {
          vsyncTimeout = 2;
        }              
        return true;
    }      
 }

so that it provides finer granularity for framerates above 60.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1444</commentid>
    <comment_count>5</comment_count>
      <attachid>340</attachid>
    <who name="ac">andres.colubri</who>
    <bug_when>2012-03-15 20:53:32 +0100</bug_when>
    <thetext>Created attachment 340
Patch file for MacOSXCGLContext.java</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1445</commentid>
    <comment_count>6</comment_count>
    <who name="Julien Gouesse">gouessej</who>
    <bug_when>2012-03-15 22:32:44 +0100</bug_when>
    <thetext>(In reply to comment #4)
&gt; I wrote a small patch for the file
&gt; jogl/classes/jogamp/opengl/macosx/cgl/MacOSXCGLContext.java, which appears to
&gt; solve the issue reported here.
&gt; 
&gt; The patch adds the variable vsyncTimeout to the class NSOpenGLImpl. The value
&gt; of this variable is set to the appropriate timeout in ms needed to call
&gt; waitUntilNSOpenGLLayerIsReady() in swapBuffers(), according to the desired swap
&gt; interval. In this way, framerates higher than 60 can be used. Basically, if the
&gt; user specifies a swap interval of zero, i.e.: v-sync disabled, then
&gt; vsyncTimeout is set to 2, which corresponds to a theoretical maximum refresh
&gt; rate of 480Mhz.  If the swap interval is equal or larger than 1, then the
&gt; following formula is used:
&gt; 
&gt; vsyncTimeout = interval * 16;
&gt; 
&gt; which yields the correct timeout in milliseconds to use with framerates equal
&gt; or lower than 60.
&gt; 
&gt; The downside of this approach is that the timeout interval for framerates
&gt; higher than 60 is not accurate, since is set to 2ms regardless of the target
&gt; framerate. I&apos;d like to suggest the addition of a setFramerate method that
&gt; should do the following:
&gt; 
&gt; public boolean setFramerate(int fps) {
&gt;     if(fps &lt;= 60) {
&gt;         if(fps &lt;= 15) {
&gt;           return setSwapInterval(3);
&gt;         } else if(fps &lt;= 30) {
&gt;           return setSwapInterval(2);
&gt;         } else {
&gt;           return setSwapInterval(1);
&gt;         }
&gt;     } else {
&gt;         if(0 != nsOpenGLLayer) {
&gt;           CGL.setNSOpenGLLayerSwapInterval(nsOpenGLLayer, 0);
&gt;         }
&gt;         CGL.setSwapInterval(contextHandle, 0);              
&gt;         if(fps &lt;= 120) {
&gt;           vsyncTimeout = 8; // 8ms -&gt; 120Mhz
&gt;         } else if(fps &lt;= 240) {
&gt;           vsyncTimeout = 4; // 4ms -&gt; 240Mhz
&gt;         } else {
&gt;           vsyncTimeout = 2;
&gt;         }              
&gt;         return true;
&gt;     }      
&gt;  }
&gt; 
&gt; so that it provides finer granularity for framerates above 60.


I prefer your second suggestion. Nice job :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1474</commentid>
    <comment_count>7</comment_count>
    <who name="ac">andres.colubri</who>
    <bug_when>2012-03-18 23:35:25 +0100</bug_when>
    <thetext>Actually, I think that, when v-sync is disabled, we should remove the waiting altogether, since we want to render frames as fast as possible... so I just disabled the waitUntilNSOpenGLLayerIsReady() call when the vsyncTimeout is zero (no v-sync). This appears to work fine on Mac, Linux and Windows. I&apos;m attaching the new patch after this comment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1475</commentid>
    <comment_count>8</comment_count>
      <attachid>345</attachid>
    <who name="ac">andres.colubri</who>
    <bug_when>2012-03-18 23:37:09 +0100</bug_when>
    <thetext>Created attachment 345
New patch for MacOSXCGLContext.java that skips waitUntilNSOpenGLLayerIsReady() when v-sync is disabled</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1549</commentid>
    <comment_count>9</comment_count>
    <who name="Sven Gothel">sgothel</who>
    <bug_when>2012-04-22 05:13:41 +0200</bug_when>
    <thetext>Thank you Andres, I hope it works fine now.
Works with swap interval 0, 1, 2, ..</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>328</attachid>
            <date>2012-02-20 16:05:27 +0100</date>
            <delta_ts>2012-02-20 16:05:27 +0100</delta_ts>
            <desc>Full source of the test application demonstrating the bug</desc>
            <filename>MiniPApplet.java</filename>
            <type>application/octet-stream</type>
            <size>10258</size>
            <attacher name="ac">andres.colubri</attacher>
            
              <data encoding="base64">cGFja2FnZSBwNS50ZXN0X25ld3RfYXBwbGV0OwoKaW1wb3J0IGphdmEuYXBwbGV0LkFwcGxldDsK
aW1wb3J0IGphdmEuYXd0LkZyYW1lOwppbXBvcnQgamF2YS5hd3QuR3JhcGhpY3NEZXZpY2U7Cmlt
cG9ydCBqYXZhLmF3dC5HcmFwaGljc0Vudmlyb25tZW50OwppbXBvcnQgamF2YS5hd3QuSW5zZXRz
OwppbXBvcnQgamF2YS5hd3QuZXZlbnQuV2luZG93QWRhcHRlcjsKaW1wb3J0IGphdmEuYXd0LmV2
ZW50LldpbmRvd0V2ZW50OwppbXBvcnQgamF2YS51dGlsLlRpbWVyOwppbXBvcnQgamF2YS51dGls
LlRpbWVyVGFzazsKCmltcG9ydCBqYXZheC5tZWRpYS5uYXRpdmV3aW5kb3cuR3JhcGhpY3NDb25m
aWd1cmF0aW9uRmFjdG9yeTsKaW1wb3J0IGphdmF4Lm1lZGlhLm5hdGl2ZXdpbmRvdy5OYXRpdmVX
aW5kb3c7CmltcG9ydCBqYXZheC5tZWRpYS5uYXRpdmV3aW5kb3cuTmF0aXZlV2luZG93RmFjdG9y
eTsKaW1wb3J0IGphdmF4Lm1lZGlhLm5hdGl2ZXdpbmRvdy5hd3QuQVdUR3JhcGhpY3NDb25maWd1
cmF0aW9uOwppbXBvcnQgamF2YXgubWVkaWEubmF0aXZld2luZG93LmF3dC5BV1RHcmFwaGljc0Rl
dmljZTsKaW1wb3J0IGphdmF4Lm1lZGlhLm5hdGl2ZXdpbmRvdy5hd3QuQVdUR3JhcGhpY3NTY3Jl
ZW47CmltcG9ydCBqYXZheC5tZWRpYS5vcGVuZ2wuR0w7CmltcG9ydCBqYXZheC5tZWRpYS5vcGVu
Z2wuR0xBdXRvRHJhd2FibGU7CmltcG9ydCBqYXZheC5tZWRpYS5vcGVuZ2wuR0xDYXBhYmlsaXRp
ZXM7CmltcG9ydCBqYXZheC5tZWRpYS5vcGVuZ2wuR0xQcm9maWxlOwoKaW1wb3J0IGphdmF4Lm1l
ZGlhLm9wZW5nbC4qOwoKaW1wb3J0IGNvbS5qb2dhbXAubmV3dC5hd3QuTmV3dENhbnZhc0FXVDsK
aW1wb3J0IGNvbS5qb2dhbXAubmV3dC5vcGVuZ2wuR0xXaW5kb3c7CmltcG9ydCBjb20uam9nYW1w
Lm9wZW5nbC51dGlsLkFuaW1hdG9yQmFzZTsKCnB1YmxpYyBjbGFzcyBNaW5pUEFwcGxldCBleHRl
bmRzIEFwcGxldCB7CiAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgbG9uZyBzZXJpYWxWZXJzaW9uVUlE
ID0gMUw7CgogIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8KICAvLwogIC8vIFRlc3QgcGFyYW1ldGVycyAgCiAgCiAgcHVibGljIGlu
dCBmcmFtZVJhdGUgPSAxMjA7CiAgcHVibGljIGJvb2xlYW4gcHJpbnRUaHJlYWRJbmZvID0gZmFs
c2U7CiAgCiAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLwogIC8vCiAgLy8gSW50ZXJuYWwgdmFyaWFibGVzCiAgCiAgcHJpdmF0ZSBG
cmFtZSBmcmFtZTsKICBwcml2YXRlIEdMUHJvZmlsZSBwcm9maWxlOwogIHByaXZhdGUgR0xDYXBh
YmlsaXRpZXMgY2FwYWJpbGl0aWVzOwogIHByaXZhdGUgTmV3dENhbnZhc0FXVCBjYW52YXM7CiAg
cHJpdmF0ZSBHTFdpbmRvdyB3aW5kb3c7CgogIHByaXZhdGUgQ3VzdG9tQW5pbWF0b3IgYW5pbWF0
b3I7CiAgCiAgcHJpdmF0ZSBsb25nIGJlZm9yZVRpbWU7CiAgcHJpdmF0ZSBsb25nIG92ZXJTbGVl
cFRpbWU7CiAgcHJpdmF0ZSBsb25nIGZyYW1lUmF0ZVBlcmlvZCA9IDEwMDAwMDAwMDBMIC8gZnJh
bWVSYXRlOwogIAogIHByaXZhdGUgYm9vbGVhbiBpbml0aWFsaXplZCA9IGZhbHNlOyAgCiAgCiAg
cHJpdmF0ZSBkb3VibGUgdGhldGEgPSAwOwogIHByaXZhdGUgZG91YmxlIHMgPSAwOwogIHByaXZh
dGUgZG91YmxlIGMgPSAwOyAgCiAgCiAgcHJpdmF0ZSBsb25nIG1pbGxpc09mZnNldDsKICBwcml2
YXRlIGludCBmY291bnQsIGxhc3RtOwogIHByaXZhdGUgZmxvYXQgZnJhdGU7CiAgcHJpdmF0ZSBp
bnQgZmludCA9IDM7CiAgCiAgdm9pZCBydW4oKSB7CiAgICBUaHJlYWQgbG9vcCA9IG5ldyBUaHJl
YWQoIkFuaW1hdGlvbiBUaHJlYWQiKSB7CiAgICAgIHB1YmxpYyB2b2lkIHJ1bigpIHsgICAgICAg
ICAKICAgICAgICB3aGlsZSAodHJ1ZSkgeyAgICAgICAgICAKICAgICAgICAgIGlmICghaW5pdGlh
bGl6ZWQpIHsKICAgICAgICAgICAgc2V0dXAoKTsgICAgICAgICAgICAKICAgICAgICAgIH0KICAg
ICAgICAgIAogICAgICAgICAgYW5pbWF0b3IucmVxdWVzdFJlbmRlcigpOwogICAgICAgICAgCiAg
ICAgICAgICBjbG9jaygpOwogICAgICAgIH0KICAgICAgfQogICAgfTsKICAgIGxvb3Auc3RhcnQo
KTsgICAgICAgIAogIH0KCiAgdm9pZCBzZXR1cCgpIHsKICAgIGlmIChwcmludFRocmVhZEluZm8p
IFN5c3RlbS5vdXQucHJpbnRsbigiQ3VycmVudCB0aHJlYWQgYXQgc2V0dXAoKTogIiArIFRocmVh
ZC5jdXJyZW50VGhyZWFkKCkpOwogICAgCiAgICBtaWxsaXNPZmZzZXQgPSBTeXN0ZW0uY3VycmVu
dFRpbWVNaWxsaXMoKTsgICAgCgogICAgLy8gRnJhbWUgc2V0dXAgLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgCiAgICBHcmFwaGlj
c0Vudmlyb25tZW50IGVudmlyb25tZW50ID0KICAgICAgR3JhcGhpY3NFbnZpcm9ubWVudC5nZXRM
b2NhbEdyYXBoaWNzRW52aXJvbm1lbnQoKTsKICAgIEdyYXBoaWNzRGV2aWNlIGRpc3BsYXlEZXZp
Y2UgPSBlbnZpcm9ubWVudC5nZXREZWZhdWx0U2NyZWVuRGV2aWNlKCk7CiAgICBmcmFtZSA9IG5l
dyBGcmFtZShkaXNwbGF5RGV2aWNlLmdldERlZmF1bHRDb25maWd1cmF0aW9uKCkpOwogICAgCiAg
ICBmcmFtZS5zZXRMYXlvdXQobnVsbCk7CiAgICBmcmFtZS5zZXRUaXRsZSgiTWluaVBBcHBsZXQi
KTsKICAgIGZyYW1lLnBhY2soKTsKICAgIGZyYW1lLnNldFJlc2l6YWJsZShmYWxzZSk7CiAgICAK
ICAgIEluc2V0cyBpbnNldHMgPSBmcmFtZS5nZXRJbnNldHMoKTsKICAgIGludCB3aW5kb3dXID0g
MzAwICsgaW5zZXRzLmxlZnQgKyBpbnNldHMucmlnaHQ7CiAgICBpbnQgd2luZG93SCA9IDMwMCAr
IGluc2V0cy50b3AgKyBpbnNldHMuYm90dG9tOwogICAgaW50IGxvY2F0aW9uWCA9IDEwMDsgCiAg
ICBpbnQgbG9jYXRpb25ZID0gMTAwOwogICAgCiAgICBmcmFtZS5zZXRTaXplKHdpbmRvd1csIHdp
bmRvd0gpOyAgICAKICAgIGZyYW1lLnNldExvY2F0aW9uKGxvY2F0aW9uWCwgbG9jYXRpb25ZKTsg
ICAKICAgIAogICAgZnJhbWUuYWRkKHRoaXMpOwogICAgZnJhbWUuYWRkV2luZG93TGlzdGVuZXIo
bmV3IFdpbmRvd0FkYXB0ZXIoKSB7CiAgICAgIHB1YmxpYyB2b2lkIHdpbmRvd0Nsb3NpbmcoV2lu
ZG93RXZlbnQgZSkgewogICAgICAgICAgU3lzdGVtLmV4aXQoMCk7CiAgICAgIH0KICAgIH0pOyAg
ICAKICAgIAogICAgaW50IHVzYWJsZVdpbmRvd0ggPSB3aW5kb3dIIC0gaW5zZXRzLnRvcCAtIGlu
c2V0cy5ib3R0b207CiAgICB0aGlzLnNldEJvdW5kcygod2luZG93VyAtIDMwMCkvMiwgaW5zZXRz
LnRvcCArICh1c2FibGVXaW5kb3dIIC0gMzAwKS8yLCAzMDAsIDMwMCk7CiAgICAKICAgIGZyYW1l
LnNldFZpc2libGUodHJ1ZSk7CgogICAgLy8gQ2FudmFzIHNldHVwIC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgIAogICAgcHJvZmls
ZSA9IEdMUHJvZmlsZS5nZXRNYXhGaXhlZEZ1bmMoKTsKICAgIGNhcGFiaWxpdGllcyA9IG5ldyBH
TENhcGFiaWxpdGllcyhwcm9maWxlKTsgCiAgICBjYXBhYmlsaXRpZXMuc2V0U2FtcGxlQnVmZmVy
cyhmYWxzZSk7IAogICAgCiAgICBBV1RHcmFwaGljc1NjcmVlbiBzY3JlZW4gPSAoQVdUR3JhcGhp
Y3NTY3JlZW4pQVdUR3JhcGhpY3NTY3JlZW4uY3JlYXRlRGVmYXVsdCgpOwogICAgQVdUR3JhcGhp
Y3NDb25maWd1cmF0aW9uIGNvbmZpZyA9IChBV1RHcmFwaGljc0NvbmZpZ3VyYXRpb24pR3JhcGhp
Y3NDb25maWd1cmF0aW9uRmFjdG9yeQogICAgICAgIC5nZXRGYWN0b3J5KEFXVEdyYXBoaWNzRGV2
aWNlLmNsYXNzKS5jaG9vc2VHcmFwaGljc0NvbmZpZ3VyYXRpb24oY2FwYWJpbGl0aWVzLCBjYXBh
YmlsaXRpZXMsIG51bGwsIHNjcmVlbik7CiAgICBOYXRpdmVXaW5kb3cgbmF0V2luID0gTmF0aXZl
V2luZG93RmFjdG9yeS5nZXROYXRpdmVXaW5kb3codGhpcywgY29uZmlnKTsgICAKICAgIAogICAg
d2luZG93ID0gR0xXaW5kb3cuY3JlYXRlKG5hdFdpbiwgY2FwYWJpbGl0aWVzKTsKICAgIGNhbnZh
cyA9IG5ldyBOZXd0Q2FudmFzQVdUKHdpbmRvdyk7CiAgICAKICAgIGNhbnZhcy5zZXRCb3VuZHMo
MCwgMCwgMzAwLCAzMDApOwogICAgaW5zZXRzID0gZnJhbWUuZ2V0SW5zZXRzKCk7CiAgICBjYW52
YXMuc2V0TG9jYXRpb24oaW5zZXRzLmxlZnQsIGluc2V0cy50b3ApOyAgICAKICAgICAgCiAgICB0
aGlzLmFkZChjYW52YXMsIHRoaXMuZ2V0Q29tcG9uZW50Q291bnQoKSAtIDEpOwogICAgdGhpcy52
YWxpZGF0ZSgpOyAKICAgIAogICAgLy8gU2V0dGluZyB1cCBhbmltYXRpb24KICAgIHdpbmRvdy5h
ZGRHTEV2ZW50TGlzdGVuZXIobmV3IFJlbmRlcmVyKCkpOwogICAgYW5pbWF0b3IgPSBuZXcgQ3Vz
dG9tQW5pbWF0b3Iod2luZG93KTsKICAgIGFuaW1hdG9yLnNldFRocmVhZE5hbWUoIk9wZW5HTCIp
OwogICAgYW5pbWF0b3Iuc3RhcnQoKTsKICAgIAogICAgaW5pdGlhbGl6ZWQgPSB0cnVlOyAgICAK
ICB9CiAKICB2b2lkIGRyYXcoR0wyIGdsKSB7CiAgICBpZiAocHJpbnRUaHJlYWRJbmZvKSBTeXN0
ZW0ub3V0LnByaW50bG4oIkN1cnJlbnQgdGhyZWFkIGF0IGRyYXcoKTogIiArIFRocmVhZC5jdXJy
ZW50VGhyZWFkKCkpOyAgICAgICAgICAKICAgIAogICAgZ2wuZ2xDbGVhckNvbG9yKDAsIDAsIDAs
IDEpOwogICAgZ2wuZ2xDbGVhcihHTC5HTF9DT0xPUl9CVUZGRVJfQklUKTsKICAgIAogICAgdGhl
dGEgKz0gMC4wMTsKICAgIHMgPSBNYXRoLnNpbih0aGV0YSk7CiAgICBjID0gTWF0aC5jb3ModGhl
dGEpOyAgICAgIAogICAgCiAgICBnbC5nbEJlZ2luKEdMLkdMX1RSSUFOR0xFUyk7CiAgICBnbC5n
bENvbG9yM2YoMSwgMCwgMCk7CiAgICBnbC5nbFZlcnRleDJkKC1jLCAtYyk7CiAgICBnbC5nbENv
bG9yM2YoMCwgMSwgMCk7CiAgICBnbC5nbFZlcnRleDJkKDAsIGMpOwogICAgZ2wuZ2xDb2xvcjNm
KDAsIDAsIDEpOwogICAgZ2wuZ2xWZXJ0ZXgyZChzLCAtcyk7CiAgICBnbC5nbEVuZCgpOyAgICAg
CiAgICAKICAgIGdsLmdsRmx1c2goKTsKICAgIAogICAgZmNvdW50ICs9IDE7CiAgICBpbnQgbSA9
IChpbnQpIChTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKSAtIG1pbGxpc09mZnNldCk7CiAgICBp
ZiAobSAtIGxhc3RtID4gMTAwMCAqIGZpbnQpIHsKICAgICAgZnJhdGUgPSAoZmxvYXQpKGZjb3Vu
dCkgLyBmaW50OwogICAgICBmY291bnQgPSAwOwogICAgICBsYXN0bSA9IG07CiAgICAgIFN5c3Rl
bS5lcnIucHJpbnRsbigiZnBzOiAiICsgZnJhdGUpOyAKICAgIH0gICAgIAogIH0KICAKICB2b2lk
IGNsb2NrKCkgewogICAgbG9uZyBhZnRlclRpbWUgPSBTeXN0ZW0ubmFub1RpbWUoKTsKICAgIGxv
bmcgdGltZURpZmYgPSBhZnRlclRpbWUgLSBiZWZvcmVUaW1lOwogICAgbG9uZyBzbGVlcFRpbWUg
PSAoZnJhbWVSYXRlUGVyaW9kIC0gdGltZURpZmYpIC0gb3ZlclNsZWVwVGltZTsKCiAgICBpZiAo
c2xlZXBUaW1lID4gMCkgeyAgLy8gc29tZSB0aW1lIGxlZnQgaW4gdGhpcyBjeWNsZQogICAgICB0
cnkgewogICAgICAgIFRocmVhZC5zbGVlcChzbGVlcFRpbWUgLyAxMDAwMDAwTCwgKGludCkgKHNs
ZWVwVGltZSAlIDEwMDAwMDBMKSk7CiAgICAgIH0gY2F0Y2ggKEludGVycnVwdGVkRXhjZXB0aW9u
IGV4KSB7IH0KCiAgICAgIG92ZXJTbGVlcFRpbWUgPSAoU3lzdGVtLm5hbm9UaW1lKCkgLSBhZnRl
clRpbWUpIC0gc2xlZXBUaW1lOwoKICAgIH0gZWxzZSB7ICAgIC8vIHNsZWVwVGltZSA8PSAwOyB0
aGUgZnJhbWUgdG9vayBsb25nZXIgdGhhbiB0aGUgcGVyaW9kCiAgICAgIG92ZXJTbGVlcFRpbWUg
PSAwTDsKICAgIH0KCiAgICBiZWZvcmVUaW1lID0gU3lzdGVtLm5hbm9UaW1lKCk7ICAgIAogIH0g
IAogIAogIGNsYXNzIFJlbmRlcmVyIGltcGxlbWVudHMgR0xFdmVudExpc3RlbmVyIHsKICAgIEBP
dmVycmlkZQogICAgcHVibGljIHZvaWQgZGlzcGxheShHTEF1dG9EcmF3YWJsZSBkcmF3YWJsZSkg
ewogICAgICBkcmF3KGRyYXdhYmxlLmdldEdMKCkuZ2V0R0wyKCkpOwogICAgfQoKICAgIEBPdmVy
cmlkZQogICAgcHVibGljIHZvaWQgZGlzcG9zZShHTEF1dG9EcmF3YWJsZSBkcmF3YWJsZSkgeyB9
CgogICAgQE92ZXJyaWRlCiAgICBwdWJsaWMgdm9pZCBpbml0KEdMQXV0b0RyYXdhYmxlIGRyYXdh
YmxlKSB7IH0KCiAgICBAT3ZlcnJpZGUKICAgIHB1YmxpYyB2b2lkIHJlc2hhcGUoR0xBdXRvRHJh
d2FibGUgZHJhd2FibGUsIGludCB4LCBpbnQgeSwgaW50IHcsIGludCBoKSB7IH0gICAgCiAgfQog
IAogIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsKICAgIE1pbmlQQXBw
bGV0IG1pbmk7CiAgICB0cnkgewogICAgICBDbGFzczw/PiBjID0gVGhyZWFkLmN1cnJlbnRUaHJl
YWQoKS5nZXRDb250ZXh0Q2xhc3NMb2FkZXIoKS5sb2FkQ2xhc3MoTWluaVBBcHBsZXQuY2xhc3Mu
Z2V0TmFtZSgpKTsKICAgICAgbWluaSA9IChNaW5pUEFwcGxldCkgYy5uZXdJbnN0YW5jZSgpOwog
ICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKICAgICAgdGhyb3cgbmV3IFJ1bnRpbWVFeGNlcHRp
b24oZSk7CiAgICB9ICAgIAogICAgaWYgKG1pbmkgIT0gbnVsbCkgewogICAgICBtaW5pLnJ1bigp
OwogICAgfQogIH0gICAgICAKICAKICAvKiogQW4gQW5pbWF0b3Igc3ViY2xhc3Mgd2hpY2ggcmVu
ZGVycyBvbmUgZnJhbWUgYXQgdGhlIHRpbWUKICAgKiAgdXBvbiBjYWxscyB0byB0aGUgcmVxdWVz
dFJlbmRlcigpIG1ldGhvZC4gCiAgICoqLwogIHB1YmxpYyBjbGFzcyBDdXN0b21BbmltYXRvciBl
eHRlbmRzIEFuaW1hdG9yQmFzZSB7ICAgIAogICAgICBwcml2YXRlIFRpbWVyIHRpbWVyID0gbnVs
bDsKICAgICAgcHJpdmF0ZSBUaW1lclRhc2sgdGFzayA9IG51bGw7CiAgICAgIHByaXZhdGUgU3Ry
aW5nIHRocmVhZE5hbWUgPSBudWxsOwogICAgICBwcml2YXRlIHZvbGF0aWxlIGJvb2xlYW4gc2hv
dWxkUnVuOwoKICAgICAgcHJvdGVjdGVkIFN0cmluZyBnZXRCYXNlTmFtZShTdHJpbmcgcHJlZml4
KSB7CiAgICAgICAgICByZXR1cm4gIkN1c3RvbSIgKyBwcmVmaXggKyAiQW5pbWF0b3IiIDsKICAg
ICAgfQoKICAgICAgLyoqIENyZWF0ZXMgYW4gQ3VzdG9tQW5pbWF0b3Igd2l0aCBhbiBpbml0aWFs
IGRyYXdhYmxlIHRvIAogICAgICAgKiBhbmltYXRlLiAqLwogICAgICBwdWJsaWMgQ3VzdG9tQW5p
bWF0b3IoR0xBdXRvRHJhd2FibGUgZHJhd2FibGUpIHsKICAgICAgICAgIGlmIChkcmF3YWJsZSAh
PSBudWxsKSB7CiAgICAgICAgICAgICAgYWRkKGRyYXdhYmxlKTsKICAgICAgICAgIH0KICAgICAg
fQogICAgICAKICAgICAgcHVibGljIHZvaWQgc2V0VGhyZWFkTmFtZShTdHJpbmcgbmFtZSkgewog
ICAgICAgIHRocmVhZE5hbWUgPSBuYW1lOwogICAgICB9CgogICAgICBwdWJsaWMgc3luY2hyb25p
emVkIHZvaWQgcmVxdWVzdFJlbmRlcigpIHsKICAgICAgICAgIHNob3VsZFJ1biA9IHRydWU7CiAg
ICAgIH0KCiAgICAgIHB1YmxpYyBmaW5hbCBib29sZWFuIGlzU3RhcnRlZCgpIHsKICAgICAgICAg
IHN0YXRlU3luYy5sb2NrKCk7CiAgICAgICAgICB0cnkgewogICAgICAgICAgICAgIHJldHVybiAo
dGltZXIgIT0gbnVsbCk7CiAgICAgICAgICB9IGZpbmFsbHkgewogICAgICAgICAgICAgIHN0YXRl
U3luYy51bmxvY2soKTsKICAgICAgICAgIH0KICAgICAgfQoKICAgICAgcHVibGljIGZpbmFsIGJv
b2xlYW4gaXNBbmltYXRpbmcoKSB7CiAgICAgICAgICBzdGF0ZVN5bmMubG9jaygpOwogICAgICAg
ICAgdHJ5IHsKICAgICAgICAgICAgICByZXR1cm4gKHRpbWVyICE9IG51bGwpICYmICh0YXNrICE9
IG51bGwpOwogICAgICAgICAgfSBmaW5hbGx5IHsKICAgICAgICAgICAgICBzdGF0ZVN5bmMudW5s
b2NrKCk7CiAgICAgICAgICB9CiAgICAgIH0KCiAgICAgIHByaXZhdGUgdm9pZCBzdGFydFRhc2so
KSB7CiAgICAgICAgICBpZihudWxsICE9IHRhc2spIHsKICAgICAgICAgICAgICByZXR1cm47CiAg
ICAgICAgICB9CiAgICAgICAgICAKICAgICAgICAgIHRhc2sgPSBuZXcgVGltZXJUYXNrKCkgewog
ICAgICAgICAgICAgIHByaXZhdGUgYm9vbGVhbiBmaXJzdFJ1biA9IHRydWU7CiAgICAgICAgICAg
ICAgcHVibGljIHZvaWQgcnVuKCkgewogICAgICAgICAgICAgICAgICBpZiAoZmlyc3RSdW4pIHsK
ICAgICAgICAgICAgICAgICAgICBpZiAodGhyZWFkTmFtZSAhPSBudWxsKSBUaHJlYWQuY3VycmVu
dFRocmVhZCgpLnNldE5hbWUodGhyZWFkTmFtZSk7CiAgICAgICAgICAgICAgICAgICAgZmlyc3RS
dW4gPSBmYWxzZTsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICBpZihDdXN0
b21BbmltYXRvci50aGlzLnNob3VsZFJ1bikgewogICAgICAgICAgICAgICAgICAgICBDdXN0b21B
bmltYXRvci50aGlzLmFuaW1UaHJlYWQgPSBUaHJlYWQuY3VycmVudFRocmVhZCgpOwogICAgICAg
ICAgICAgICAgICAgICAgLy8gZGlzcGxheSBpbXBsLiB1c2VzIHN5bmNocm9uaXplZCBibG9jayBv
biB0aGUgYW5pbWF0b3IgaW5zdGFuY2UKICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXkoKTsg
ICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICBzeW5jaHJvbml6ZWQgKHRoaXMp
IHsKICAgICAgICAgICAgICAgICAgICAgICAgLy8gZG9uZSB3aXRoIGN1cnJlbnQgZnJhbWUuCiAg
ICAgICAgICAgICAgICAgICAgICAgIHNob3VsZFJ1biA9IGZhbHNlOwogICAgICAgICAgICAgICAg
ICAgICAgfSAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg
ICAgICB9CiAgICAgICAgICB9OwoKICAgICAgICAgIGZwc0NvdW50ZXIucmVzZXRGUFNDb3VudGVy
KCk7CiAgICAgICAgICBzaG91bGRSdW4gPSBmYWxzZTsKICAgICAgICAgIAogICAgICAgICAgdGlt
ZXIuc2NoZWR1bGUodGFzaywgMCwgMSk7CiAgICAgIH0KICAgICAgCiAgICAgIHB1YmxpYyBzeW5j
aHJvbml6ZWQgYm9vbGVhbiAgc3RhcnQoKSB7CiAgICAgICAgICBpZiAodGltZXIgIT0gbnVsbCkg
ewogICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgIH0KICAgICAgICAgIHN0YXRl
U3luYy5sb2NrKCk7CiAgICAgICAgICB0cnkgewogICAgICAgICAgICAgIHRpbWVyID0gbmV3IFRp
bWVyKCk7CiAgICAgICAgICAgICAgc3RhcnRUYXNrKCk7CiAgICAgICAgICB9IGZpbmFsbHkgewog
ICAgICAgICAgICAgIHN0YXRlU3luYy51bmxvY2soKTsKICAgICAgICAgIH0KICAgICAgICAgIHJl
dHVybiB0cnVlOwogICAgICB9CgogICAgICAvKiogU3RvcHMgdGhpcyBDdXN0b21BbmltYXRvci4g
Ki8KICAgICAgcHVibGljIHN5bmNocm9uaXplZCBib29sZWFuIHN0b3AoKSB7CiAgICAgICAgICBp
ZiAodGltZXIgPT0gbnVsbCkgewogICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAg
IH0KICAgICAgICAgIHN0YXRlU3luYy5sb2NrKCk7CiAgICAgICAgICB0cnkgewogICAgICAgICAg
ICAgIHNob3VsZFJ1biA9IGZhbHNlOwogICAgICAgICAgICAgIGlmKG51bGwgIT0gdGFzaykgewog
ICAgICAgICAgICAgICAgICB0YXNrLmNhbmNlbCgpOwogICAgICAgICAgICAgICAgICB0YXNrID0g
bnVsbDsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgaWYobnVsbCAhPSB0aW1lcikgewog
ICAgICAgICAgICAgICAgICB0aW1lci5jYW5jZWwoKTsKICAgICAgICAgICAgICAgICAgdGltZXIg
PSBudWxsOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBhbmltVGhyZWFkID0gbnVsbDsK
ICAgICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgICBUaHJlYWQuc2xlZXAoMjApOyAv
LyB+IDEvNjAgaHogd2FpdCwgc2luY2Ugd2UgY2FuJ3QgY3RybCBzdG9wcGVkIHRocmVhZHMKICAg
ICAgICAgICAgICB9IGNhdGNoIChJbnRlcnJ1cHRlZEV4Y2VwdGlvbiBlKSB7IH0KICAgICAgICAg
IH0gZmluYWxseSB7CiAgICAgICAgICAgICAgc3RhdGVTeW5jLnVubG9jaygpOwogICAgICAgICAg
fQogICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgIH0KICAgICAgCiAgICAgIHB1YmxpYyBmaW5h
bCBib29sZWFuIGlzUGF1c2VkKCkgeyByZXR1cm4gZmFsc2U7IH0KICAgICAgcHVibGljIHN5bmNo
cm9uaXplZCBib29sZWFuIHJlc3VtZSgpIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgIHB1YmxpYyBz
eW5jaHJvbml6ZWQgYm9vbGVhbiBwYXVzZSgpIHsgcmV0dXJuIGZhbHNlOyB9ICAgIAogIH0KfQ==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>330</attachid>
            <date>2012-02-23 02:16:55 +0100</date>
            <delta_ts>2012-02-23 02:16:55 +0100</delta_ts>
            <desc>Updated NEWT test application</desc>
            <filename>test_newt_applet.zip</filename>
            <type>application/zip</type>
            <size>3069</size>
            <attacher name="ac">andres.colubri</attacher>
            
              <data encoding="base64">UEsDBAoAAAAAALd1VkAAAAAAAAAAAAAAAAARABAAdGVzdF9uZXd0X2FwcGxldC9VWAwAOJJFT+pF
RU/1ARQAUEsDBBQACAAIAFOhVkAAAAAAAAAAAAAAAAAhABAAdGVzdF9uZXd0X2FwcGxldC9NaW5p
UEFwcGxldC5qYXZhVVgMAGqSRU8NkkVP9QEUAL0Za3PbuPG7fgVOM71Sjk0/btoP9Tmto8SuZ5TH
WL5LO51OBiYhCReK5BGgZKej++23uwBIgKSc9i4px2NRwL6wb6xKnnzkS8HKP8VaKP0hF1v9gZdl
JvT5aCTXZVFp9hPf8Ngsxpd2L9ja6viq4mvRX76ueLmSiXopNjJ5Yv9VvpFVka9FPkD7JldCq/66
2AB4/F7mabG9THmpRfU00KtNj36tZRbfyXUXtV2/4+pjqIuHeC1SyeOiFPkyiw8azKRYxz8VS74u
Y1Qk8X8DL1Oeb7i6fH+3F9KSup4ZQYfgLAgJdpnLNddF9YIrUOqorO8zmbAk40qx1zKX74yZmHjQ
Ik8Vs1//M2KsrOSGa8GU5hpwFjLnGcuKfMmUqCTPfhSVkkX+w81LdsFOZ0CdsePf8xA+/WN34GKs
5OgqYCvF2Ij+rPgy12yBe7coHzA/Ozlvd++LIhM8R/lzfbeqBE9v8kUBcAueoRaI1JeS9CYHAVEz
Gw5Kuc+EsqJa7ZG7G2nPveXr2buqWMgMAsp8hptTXvJ7mUkthWKJ98UHCxwGoPAtJGN8hG2tq3h7
c3CbTMykArOLimX2xUef1koXa+dAjNuX8/B85BD3YlFUAoPgvLtVbEQ1z4QoB3cbK74DlypStOWJ
e2bsuN3vcHU2Bg/W4Iryk0gb+zbOYmHTAvxCML0SmgPQyXl/T+1ZT2i9S5AkX8sMlPZ2sVCY5NpN
8s2kqHN9yCDK9NrfXGQFJ9fVooeD/y7Yd/agm0KmrKrzaEKxyJhxZOBdlAAGqcCuRGNjIYhEuzJ2
KE1E+MSYe0bupYmmKUrtNGGe7QpdNNJVLXzcFhnQFyz6xrNDy908oJ+6jCbn/poHsOuteK/O5+JK
/FxDSriFHCUqIDYMnmRF8nHvbnvGZ89akN3I/9yZDdRyDHmv0p7gIwRyprGnsmdFHXTSzYTNHyGm
1nFR65j2sjwaT+uqgsoCzkjWBGewhP7CxuyZNWCcGChr4Ik9EP3z3Q5MZXk4BAix1wRgxR4RDmQp
k4WIFzv6zU8rxkA1ZsJ7v7BaHYCLl0LPioRnA3vOdmEzwFKpyow/2m8XPiek9lIseJ3peVIJkRsg
R4hsbuOFdBAFtDzsaZEv5LKuKJJCnRORGJQ3449gzSivs8ynj1t3UmciGnsldRyAlLz1zAbpVij5
CWtGRJnL52k6GYhN+riwOCCu2XCkMHZNdn+PyePkBJzI4MSZWOj2WyWXK93F+XsXR0Nyab7cFxry
f4sDwUXK+YfJ0uest/NPuzOgujmkhshKeujYWycNdWxpRQ27w5Y+IXSp8zSN9EqqQLuwaIqfK3ER
ukDQAUbDedLINs0KJfNl5LWDTISpzcaeeJA6OmmSjs0j3tEaNdUKbf2+Ub0zwpGv/qMh9ePxUDkv
IHulKnKKBGAw3+T47DA0YBRyaqHgk/4NevePUkn0RUr2503qMB3GF8wdtuEBBTRNEDr2a/5wJR9E
elXniXNvv/OxURz2RpElNrHe6COQ23Fsc17UiwV0kS7KPLMYRZIoRlsxJBEoyZFPqBGGFGHECHov
aw9fq2Qx9EyD5W+BTudCa/AuBhrlrnqbwuMaMsMl7NKcVgw3pH49I89sABy6BXTl01ILG7pQ6KbS
Yi6juvMGs+X4LdwlrmfjHpStjb6D+50Y+pCLAIoIVzfTim+j69kZW2ZfoHgStc/UzjZgR+1/uB6h
d2x5Sf37hmdREBSwv8ym0GJW0yIDXUHYmL9TC9UCwGngNvZh+nb29vbDix+url7Bx81d6AzYej6D
zio+OTXr6EevuV7FkGUi2nde5jaSQrkNT/yW+QuxBFTD/O725vINOMM8kA4l/24RnRrZ/S24umnx
cJZGR8khO0qGsPCs+7Bgbx9OV0UNjgJGyt95laeuueqc7Cqr1SpwLtNQowZP23q0Bk1F8DJh0f42
CJKf3zK5sgkut4YtatDZc7p0sAPqwdscT2068qCufRIZISZ4K5G5dvneiuZ1zYboBVu7BVcoqqr1
5UWpjNsSF5eTdk4dO+8WYLtaKxddPvgCnBaP2baAOc8LXHF6IzgNCy/lYgFgLcpR57pmYZW7pNGR
O/eyo4YUarRzp2tU2pJ4Dp6D9wXIdaqA74jNqCOROeVGljwmmbAK0tWjV1ltIBMxj+SxuxrODp3Z
280/NJuTthJDxtbJikUU4lUNNT999ZCIku5K4gEF3I0scHAk1EBPrXDuRof4RXUUsGMCqou5JOGx
G2Lf0x0SQtl2o7ooPpLKIc3rFc9pqyQ97xHmZGbOZKVtzTdofudC7tpqhj2dCz99wwZasU4RsZb4
21sQopKpsZHfINkOGlLPZa2Ll5CCsdmgXIwvbQBRdnbLWOKvZ9HEfJ41HbY909PsCiWeYPd5Glic
fheBSqgVL/cKcUgJ6cF8PJqPrflYEf0wrC1lO1gjBmsOyXyuIT0s//Vvxqulcnr0p3RreLcdoRcy
UzTw9399TrVjuAyi1uGGA6lYE/Ss4HSRjiG1pbQSeXxichnEoSagDSnkj8HhwU5YgoNJuJZonrcX
ryb4vIhrPQMqOHRd2JPcQvIEt22gItEQcMmfkjUy/gbaGLx6NWRwNaa5hvMlf54Af8cHB+wyZ80M
S9X3Jhq2cLtcgVVxnKBYkbvY5JqiEUVCigcMWjQQHW6rmYLApc3OLIKthV4VaUzCHhwct/Y1rDpj
tGbQ6g1mTdJwdxE7FKKRMklC/Rsc/HwIAofOTOO/YSDjU7ZnemNvwwNwmyIDb8za0ZpaFXWWgn3O
Rw1ooUUCWdQRBQdB8clJ7FJZiYV8CC9KFVwdqpyNjSaw6BkoeBk7NYxZe4GyL2i8KXXjChrPrh63
Uq9YOwFsQhGt5Hgf2IZVxIzs4kV1pxf+bC5zjtiw6Tmje7Dpb/D9UVQ4aWrt7aWZsPm2Ks35OhAk
NCV3RdzTnMsvj3kCgZZTT27TWOi6vuyNvV37voeq+R2gGcCqOV4FRNqlBrlNzEGAuD+TC8t94COR
8Xen3EB9hnPWx2151Xmf2+6/PIcdo8Kd/2uchH37LSxhmH7dszXRjN6ElsH8EHX9mEZYKAlK1Hdh
c4QhRvj457d5B6fRLhlFfXrdqf1CVuCEPU9rwPtT6xF0VL0H49GR2gdjoLyQaQyyp1AqW/RaFND4
MGXvGPaXpSG43ai/BhYIE1BsJjwuBPsqtM8QFuY4++vAvvLf1bB7QF7bzVFDGLNaQbIN8sY9eh1U
SCp9zUBB2nK/h65rEcOpPz57EAKWZpq3TwVWbKzZVAPsUe0cay+On96a3wGHnt3Q4gBs167+911T
M/GBux797CDwdwzwr6t3c/s9tMyTIvpRh6EWq2Ql0hrndRB0wcV7X4kJ7WpjkdlRTq/SdfLXnjTX
k9NXw/+aOptmx+WTvud6Oe1LJlDvRIO1D3uRuS5KZS6vnTDsdReDmgaUcq+eL/6fev5sLHy2QhBl
2IkTzALZcIYZ6EqHpO8yRH3s4UiO/yTLgXZ5H88gbw4hDKkOn2BAcXYCSQ4S0i/s9PjPJ2z1iW25
1IdMSZCSbQWOjf+oWaKrjDygBI8wtUV15Xt6XmHuqT74V3J58/l0s/SOQ6Wgni900Ab9qUCAJFjT
ROW3IJfIeQjXCr0b7X4FUEsHCPmAHUqjCgAAqyQAAFBLAQIVAwoAAAAAALd1VkAAAAAAAAAAAAAA
AAARAAwAAAAAAAAAAEDtQQAAAAB0ZXN0X25ld3RfYXBwbGV0L1VYCAA4kkVP6kVFT1BLAQIVAxQA
CAAIAFOhVkD5gB1KowoAAKskAAAhAAwAAAAAAAAAAECkgT8AAAB0ZXN0X25ld3RfYXBwbGV0L01p
bmlQQXBwbGV0LmphdmFVWAgAapJFTw2SRU9QSwUGAAAAAAIAAgCmAAAAQQsAAAAA
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>331</attachid>
            <date>2012-02-23 02:19:28 +0100</date>
            <delta_ts>2012-02-23 02:19:28 +0100</delta_ts>
            <desc>Updated AWT test application</desc>
            <filename>test_awt_applet.zip</filename>
            <type>application/zip</type>
            <size>3018</size>
            <attacher name="ac">andres.colubri</attacher>
            
              <data encoding="base64">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
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>340</attachid>
            <date>2012-03-15 20:53:32 +0100</date>
            <delta_ts>2012-03-15 20:53:32 +0100</delta_ts>
            <desc>Patch file for MacOSXCGLContext.java</desc>
            <filename>MacOSXCGLContext.java.patch</filename>
            <type>text/plain</type>
            <size>1781</size>
            <attacher name="ac">andres.colubri</attacher>
            
              <data encoding="base64">KioqIE1hY09TWENHTENvbnRleHQuamF2YS5yZXBvCTIwMTItMDMtMTUgMTU6MjM6MDguMDAwMDAw
MDAwIC0wNDAwCi0tLSBNYWNPU1hDR0xDb250ZXh0LmphdmEJMjAxMi0wMy0xNSAxNToyODo0Mi4w
MDAwMDAwMDAgLTA0MDAKKioqKioqKioqKioqKioqCioqKiAzOTYsNDAxICoqKioKLS0tIDM5Niw0
MDIgLS0tLQogICAgY2xhc3MgTlNPcGVuR0xJbXBsIGltcGxlbWVudHMgR0xCYWNrZW5kSW1wbCB7
CiAgICAgIGxvbmcgbnNPcGVuR0xMYXllciA9IDA7CiAgICAgIGxvbmcgbnNPcGVuR0xMYXllclBG
bXQgPSAwOworICAgICBpbnQgdnN5bmNUaW1lb3V0ID0gMTY7CiAgICAgIAogICAgICBwdWJsaWMg
Ym9vbGVhbiBpc05TQ29udGV4dCgpIHsgcmV0dXJuIHRydWU7IH0KICAKKioqKioqKioqKioqKioq
CioqKiA1NTUsNTY3ICoqKioKICAgICAgICAgIENHTC5zZXROU09wZW5HTExheWVyU3dhcEludGVy
dmFsKG5zT3BlbkdMTGF5ZXIsIGludGVydmFsKTsKICAgICAgICB9CiAgICAgICAgQ0dMLnNldFN3
YXBJbnRlcnZhbChjb250ZXh0SGFuZGxlLCBpbnRlcnZhbCk7CiAgICAgICAgcmV0dXJuIHRydWU7
CiAgICAgIH0KICAgICAgCiAgICAgIHB1YmxpYyBib29sZWFuIHN3YXBCdWZmZXJzKCkgewogICAg
ICAgIGlmKDAgIT0gbnNPcGVuR0xMYXllcikgewogICAgICAgICAgLy8gc3luYyB3LyBDQUxheWVy
IHJlbmRlcmVyIC0gd2FpdCB1bnRpbCBuZXh0IGZyYW1lIGlzIHJlcXVpcmVkICh2LXN5bmMpCiEg
ICAgICAgICBDR0wud2FpdFVudGlsTlNPcGVuR0xMYXllcklzUmVhZHkobnNPcGVuR0xMYXllciwg
MTYpOyAvLyB0aW1lb3V0IDE2bXMgLT4gNjBIegogICAgICAgIH0KICAgICAgICBpZihDR0wuZmx1
c2hCdWZmZXIoY29udGV4dEhhbmRsZSkpIHsKICAgICAgICAgICAgaWYoMCAhPSBuc09wZW5HTExh
eWVyKSB7Ci0tLSA1NTYsNTc3IC0tLS0KICAgICAgICAgIENHTC5zZXROU09wZW5HTExheWVyU3dh
cEludGVydmFsKG5zT3BlbkdMTGF5ZXIsIGludGVydmFsKTsKICAgICAgICB9CiAgICAgICAgQ0dM
LnNldFN3YXBJbnRlcnZhbChjb250ZXh0SGFuZGxlLCBpbnRlcnZhbCk7CisgICAgICAgaWYgKGlu
dGVydmFsID09IDApIHsKKyAgICAgICAgIC8vIHYtc3luYyBpcyBkaXNhYmxlZCwgc28gc2V0dGlu
ZyB0aGUgdGltZW91dCB0byBhIG1pbmltdW0KKyAgICAgICAgIC8vIG9mIG1zICh3aGljaCBjb3Jy
ZXNwb25kcyB0byA1MDBmcHMpLgorICAgICAgICAgdnN5bmNUaW1lb3V0ID0gMjsKKyAgICAgICB9
IGVsc2UgeworICAgICAgICAgLy8gdi1zeW5jIGlzIGVuYWJsZWQuIFN3YXBpbmcgaW50ZXJ2YWwg
b2YgMSBtZWFucyBhIAorICAgICAgICAgLy8gdGltZW91dCBvZiAxNm1zIC0+IDYwSHosIDYwZnBz
CisgICAgICAgICB2c3luY1RpbWVvdXQgPSBpbnRlcnZhbCAqIDE2OworICAgICAgIH0gICAgICAK
ICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgfQogICAgICAKICAgICAgcHVibGljIGJvb2xlYW4g
c3dhcEJ1ZmZlcnMoKSB7CiAgICAgICAgaWYoMCAhPSBuc09wZW5HTExheWVyKSB7CiAgICAgICAg
ICAvLyBzeW5jIHcvIENBTGF5ZXIgcmVuZGVyZXIgLSB3YWl0IHVudGlsIG5leHQgZnJhbWUgaXMg
cmVxdWlyZWQgKHYtc3luYykKISAgICAgICAgIENHTC53YWl0VW50aWxOU09wZW5HTExheWVySXNS
ZWFkeShuc09wZW5HTExheWVyLCB2c3luY1RpbWVvdXQpOyAKICAgICAgICB9CiAgICAgICAgaWYo
Q0dMLmZsdXNoQnVmZmVyKGNvbnRleHRIYW5kbGUpKSB7CiAgICAgICAgICAgIGlmKDAgIT0gbnNP
cGVuR0xMYXllcikgewo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>345</attachid>
            <date>2012-03-18 23:37:09 +0100</date>
            <delta_ts>2012-03-18 23:37:09 +0100</delta_ts>
            <desc>New patch for MacOSXCGLContext.java that skips waitUntilNSOpenGLLayerIsReady() when v-sync is disabled</desc>
            <filename>MacOSXCGLContext.patch</filename>
            <type>text/plain</type>
            <size>1803</size>
            <attacher name="ac">andres.colubri</attacher>
            
              <data encoding="base64">KioqIE1hY09TWENHTENvbnRleHQuamF2YS5yZXBvCTIwMTItMDMtMTUgMTU6MjM6MDguMDAwMDAw
MDAwIC0wNDAwCi0tLSBNYWNPU1hDR0xDb250ZXh0LmphdmEJMjAxMi0wMy0xOCAxMDoyMzowMy4w
MDAwMDAwMDAgLTA0MDAKKioqKioqKioqKioqKioqCioqKiAzOTYsNDAxICoqKioKLS0tIDM5Niw0
MDIgLS0tLQogICAgY2xhc3MgTlNPcGVuR0xJbXBsIGltcGxlbWVudHMgR0xCYWNrZW5kSW1wbCB7
CiAgICAgIGxvbmcgbnNPcGVuR0xMYXllciA9IDA7CiAgICAgIGxvbmcgbnNPcGVuR0xMYXllclBG
bXQgPSAwOworICAgICBpbnQgdnN5bmNUaW1lb3V0ID0gMTY7CiAgICAgIAogICAgICBwdWJsaWMg
Ym9vbGVhbiBpc05TQ29udGV4dCgpIHsgcmV0dXJuIHRydWU7IH0KICAKKioqKioqKioqKioqKioq
CioqKiA1NTUsNTY3ICoqKioKICAgICAgICAgIENHTC5zZXROU09wZW5HTExheWVyU3dhcEludGVy
dmFsKG5zT3BlbkdMTGF5ZXIsIGludGVydmFsKTsKICAgICAgICB9CiAgICAgICAgQ0dMLnNldFN3
YXBJbnRlcnZhbChjb250ZXh0SGFuZGxlLCBpbnRlcnZhbCk7CiAgICAgICAgcmV0dXJuIHRydWU7
CiAgICAgIH0KICAgICAgCiAgICAgIHB1YmxpYyBib29sZWFuIHN3YXBCdWZmZXJzKCkgewohICAg
ICAgIGlmKDAgIT0gbnNPcGVuR0xMYXllcikgewogICAgICAgICAgLy8gc3luYyB3LyBDQUxheWVy
IHJlbmRlcmVyIC0gd2FpdCB1bnRpbCBuZXh0IGZyYW1lIGlzIHJlcXVpcmVkICh2LXN5bmMpCiEg
ICAgICAgICBDR0wud2FpdFVudGlsTlNPcGVuR0xMYXllcklzUmVhZHkobnNPcGVuR0xMYXllciwg
MTYpOyAvLyB0aW1lb3V0IDE2bXMgLT4gNjBIegogICAgICAgIH0KICAgICAgICBpZihDR0wuZmx1
c2hCdWZmZXIoY29udGV4dEhhbmRsZSkpIHsKICAgICAgICAgICAgaWYoMCAhPSBuc09wZW5HTExh
eWVyKSB7Ci0tLSA1NTYsNTc3IC0tLS0KICAgICAgICAgIENHTC5zZXROU09wZW5HTExheWVyU3dh
cEludGVydmFsKG5zT3BlbkdMTGF5ZXIsIGludGVydmFsKTsKICAgICAgICB9CiAgICAgICAgQ0dM
LnNldFN3YXBJbnRlcnZhbChjb250ZXh0SGFuZGxlLCBpbnRlcnZhbCk7CisgICAgICAgaWYgKGlu
dGVydmFsID09IDApIHsKKyAgICAgICAgIC8vIHYtc3luYyBpcyBkaXNhYmxlZCwgZnJhbWVzIHdl
cmUgZHJhd24gYXMgcXVpY2tseSBhcyBwb3NzaWJsZSB3aXRob3V0IGFkZGluZyBhbnkKKyAgICAg
ICAgIC8vIHRpbWVvdXQgZGVsYXkuCisgICAgICAgICB2c3luY1RpbWVvdXQgPSAwOworICAgICAg
IH0gZWxzZSB7CisgICAgICAgICAvLyB2LXN5bmMgaXMgZW5hYmxlZC4gU3dhcGluZyBpbnRlcnZh
bCBvZiAxIG1lYW5zIGEgCisgICAgICAgICAvLyB0aW1lb3V0IG9mIDE2bXMgLT4gNjBIeiwgNjBm
cHMKKyAgICAgICAgIHZzeW5jVGltZW91dCA9IGludGVydmFsICogMTY7CisgICAgICAgfSAgICAg
IAogICAgICAgIHJldHVybiB0cnVlOwogICAgICB9CiAgICAgIAogICAgICBwdWJsaWMgYm9vbGVh
biBzd2FwQnVmZmVycygpIHsKISAgICAgICBpZigwICE9IG5zT3BlbkdMTGF5ZXIgJiYgMCA8IHZz
eW5jVGltZW91dCkgewogICAgICAgICAgLy8gc3luYyB3LyBDQUxheWVyIHJlbmRlcmVyIC0gd2Fp
dCB1bnRpbCBuZXh0IGZyYW1lIGlzIHJlcXVpcmVkICh2LXN5bmMpCiEgICAgICAgICBDR0wud2Fp
dFVudGlsTlNPcGVuR0xMYXllcklzUmVhZHkobnNPcGVuR0xMYXllciwgdnN5bmNUaW1lb3V0KTsg
CiAgICAgICAgfQogICAgICAgIGlmKENHTC5mbHVzaEJ1ZmZlcihjb250ZXh0SGFuZGxlKSkgewog
ICAgICAgICAgICBpZigwICE9IG5zT3BlbkdMTGF5ZXIpIHsK
</data>

          </attachment>
      

    </bug>

</bugzilla>