<?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>500</bug_id>
          
          <creation_ts>2011-05-22 17:40:23 +0200</creation_ts>
          <short_desc>OpenGL 4.0/4.1 core context creation fails if done  via getGL4() method</short_desc>
          <delta_ts>2011-12-02 08:04:00 +0100</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>3</classification_id>
          <classification>JogAmp</classification>
          <product>Jogl</product>
          <component>core</component>
          <version>2</version>
          <rep_platform>pc_x86_64</rep_platform>
          <op_sys>windows</op_sys>
          <bug_status>VERIFIED</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>1</everconfirmed>
          <reporter name="Job Zwiers">zwiers</reporter>
          <assigned_to name="Sven Gothel">sgothel</assigned_to>
          <cc>kai</cc>
    
    <cc>sgothel</cc>
          
          <cf_type>---</cf_type>
          <cf_scm_refs>4a77b439ca85a29c1cf5ac5043c4ef03c4206e0d</cf_scm_refs>
          <cf_workaround>---</cf_workaround>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>982</commentid>
    <comment_count>0</comment_count>
    <who name="Job Zwiers">zwiers</who>
    <bug_when>2011-05-22 17:40:23 +0200</bug_when>
    <thetext>The following method for creating an OGL 4 context fails:

public void init(GLAutoDrawable drawable) {
GL4 gl = drawable.getGL().getGL4();

The Exception: 
----------------------------------------------------------------------
Exception in thread &quot;AWT-EventQueue-0&quot; javax.media.opengl.GLException: Not a GL4 implementation
     [java] at jogamp.opengl.gl4.GL4bcImpl.getGL4(GL4bcImpl.java:32456)
     [java] at firstopengl.OGL4Test.init(OGL4Test.java:173)
     [java] at jogamp.opengl.GLDrawableHelper.init(GLDrawableHelper.java:132)
     [java] at jogamp.opengl.GLDrawableHelper.init(GLDrawableHelper.java:151)
     [java] at javax.media.opengl.awt.GLCanvas$InitAction.run(GLCanvas.java:872)
     [java] at jogamp.opengl.GLDrawableHelper.invokeGL(GLDrawableHelper.java:328)
     [java] at javax.media.opengl.awt.GLCanvas.maybeDoSingleThreadedWorkaround(GLCanvas.java:785)
     [java] at javax.media.opengl.awt.GLCanvas.display(GLCanvas.java:389)
     [java] at javax.media.opengl.awt.GLCanvas.paint(GLCanvas.java:488)
     [java] at sun.awt.RepaintArea.paintComponent(RepaintArea.java:248)
...
------------------------------------------------------------------------

Hardware: NVidia GTX 460, driver 270.61(whql),  Win7 64 bits 
Jogl builds used for the test: b391, b392 
Jogl profile selected with:
GLProfile glp = GLProfile.get(GLProfile.GL4);


The following workaround is ok:
GL4 gl = (GL4)drawable.getGL(); 

This yields a context reported by  glGetString(GL4.GL_VERSION) as OGL4.1)

A similar call for GL3 works fine:
GL3 gl = drawable.getGL().getGL3(); // Ok, but of course OGL3.3)

======================================================================
The following is a printout for gl.getContext().toString():

    [java] GL context: jogamp.opengl.windows.wgl.WindowsOnscreenWGLContext [OpenGL 4.1, options 0x25, 4.1 (core profile, any, new) - 4.1.0, handle 0x20000, jogamp.opengl.gl4.GL4bcImpl@1a42792,
     [java] 	Drawable: jogamp.opengl.windows.wgl.WindowsOnscreenWGLDrawable[Realized true,
     [java] 	Factory   jogamp.opengl.windows.wgl.WindowsWGLDrawableFactory@2200d5,
     [java] 	handle    0xffffffff93011a9c,
     [java] 	Window    JAWT-Window[windowHandle 0x100eec, surfaceHandle 0xffffffff93011a9c, bounds [ 8 / 30  624 x 362 ], pos 8/30, size 624x362, visible true, lockedExt false,
     [java] 	config AWTGraphicsConfiguration[AWTGraphicsScreen[AWTGraphicsDevice[type AWT[subType null], connection \Display0, unitID 0, awtDevice D3DGraphicsDevice[screen=0], handle 0x0], idx 0],
     [java] 	chosen    GLCaps[7 arb: on-scr, rgba 8/8/8/0, opaque, accum-rgba 16/16/16/16, dp/st/ms: 24/0/0, dbl, mono  , hw, GLProfile[GL4/GL4]],
     [java] 	requested GLCaps[on-scr, rgba 8/8/8/0, opaque, accum-rgba 0/0/0/0, dp/st/ms: 16/0/0, dbl, mono  , hw, GLProfile[GL4/GL4]],
     [java] 	sun.awt.Win32GraphicsConfig@1632847[dev=D3DGraphicsDevice[screen=0],pixfmt=7],
     [java] 	encapsulated WindowsWGLGraphicsConfiguration[DefaultGraphicsScreen[WindowsGraphicsDevice[type Windows, connection decon, unitID 0, handle 0x0], idx 0], pfdID 7, ARB-Choosen true,
     [java] 	requested GLCaps[on-scr, rgba 8/8/8/0, opaque, accum-rgba 0/0/0/0, dp/st/ms: 16/0/0, dbl, mono  , hw, GLProfile[GL4/GL4]],
     [java] 	chosen    GLCaps[7 arb: on-scr, rgba 8/8/8/0, opaque, accum-rgba 16/16/16/16, dp/st/ms: 24/0/0, dbl, mono  , hw, GLProfile[GL4/GL4]]]],
     [java] 	awtComponent AWT-GLCanvas[Realized true,
     [java] 	jogamp.opengl.windows.wgl.WindowsOnscreenWGLDrawable,
     [java] 	Realized true,
     [java] 	Factory   jogamp.opengl.windows.wgl.WindowsWGLDrawableFactory@2200d5,
     [java] 	handle    0xffffffff93011a9c,
     [java] 	Drawable size 624x362,
     [java] 	AWT pos 8/30, size 624x362,
     [java] 	visible true,
     [java] 	AWTGraphicsConfiguration[AWTGraphicsScreen[AWTGraphicsDevice[type AWT[subType null], connection \Display0, unitID 0, awtDevice D3DGraphicsDevice[screen=0], handle 0x0], idx 0],
     [java] 	chosen    GLCaps[7 arb: on-scr, rgba 8/8/8/0, opaque, accum-rgba 16/16/16/16, dp/st/ms: 24/0/0, dbl, mono  , hw, GLProfile[GL4/GL4]],
     [java] 	requested GLCaps[on-scr, rgba 8/8/8/0, opaque, accum-rgba 0/0/0/0, dp/st/ms: 16/0/0, dbl, mono  , hw, GLProfile[GL4/GL4]],
     [java] 	sun.awt.Win32GraphicsConfig@1632847[dev=D3DGraphicsDevice[screen=0],pixfmt=7],
     [java] 	encapsulated WindowsWGLGraphicsConfiguration[DefaultGraphicsScreen[WindowsGraphicsDevice[type Windows, connection decon, unitID 0, handle 0x0], idx 0], pfdID 7, ARB-Choosen true,
     [java] 	requested GLCaps[on-scr, rgba 8/8/8/0, opaque, accum-rgba 0/0/0/0, dp/st/ms: 16/0/0, dbl, mono  , hw, GLProfile[GL4/GL4]],
     [java] 	chosen    GLCaps[7 arb: on-scr, rgba 8/8/8/0, opaque, accum-rgba 16/16/16/16, dp/st/ms: 24/0/0, dbl, mono  , hw, GLProfile[GL4/GL4]]]]]]]]</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>994</commentid>
    <comment_count>1</comment_count>
    <who name="Kai Giebeler">kai</who>
    <bug_when>2011-06-21 00:27:21 +0200</bug_when>
    <thetext>I&apos;m experiencing a very similar result using jogl-2.0-b23-20110303-windows-amd64
Hardware, OS and Drivers are all the same.

Default Profile: GL4bc
GL-Class: GL4bcImpl
Context Version: 3.0 (compatibility profile, any, old) - 4.1.0
but: getGL3(), getGL3bc(), getGL4() and getGL4bc() fail

I&apos;ve attached a detailed extract of what JOGL allows/disallows.

My creation method (I&apos;m relative new to JOGL, so I hope there&apos;s no newbie-mistake inside)
AbstractGraphicsDevice device = GLProfile.getDefaultDevice();
GLProfile glProfile = GLProfile.getDefault(device);
GLContext glContext = GLDrawableFactory.getFactory(glProfile).create.createExternalGLContext();

--------- SNIP ---------
AbstractGraphicsDevice.DEFAULT_CONNECTION  = decon
AbstractGraphicsDevice.DEFAULT_UNIT        = 0
AbstractGraphicsDevice.EXTERNAL_CONNECTION = excon
device = WindowsGraphicsDevice[type Windows, connection decon, unitID 0, handle 0x0]
device.getConnection = decon
device.getHandle = 0
device.getType = Windows
device.getUniqueID = Windows_decon_0
device.getUnitID = 0

GLContext.getMaxMajor              = 4
GLContext.getMaxMinor(getMaxMajor) = 1
GLContext.isGL2Available(device) = true
GLContext.isGL3Available(device) = true
GLContext.isGL3bcAvailable(device) = true
GLContext.isGL4Available(device) = true
GLContext.isGL4bcAvailable(device) = true
GLContext.isGLES1Available(device) = false
GLContext.isGLES2Available(device) = false
GLContext.isValidGLVersion(1, 0) = true
GLContext.isValidGLVersion(1, 1) = true
GLContext.isValidGLVersion(1, 2) = true
GLContext.isValidGLVersion(1, 3) = true
GLContext.isValidGLVersion(1, 4) = true
GLContext.isValidGLVersion(1, 5) = true
GLContext.isValidGLVersion(2, 0) = true
GLContext.isValidGLVersion(2, 1) = true
GLContext.isValidGLVersion(3, 0) = true
GLContext.isValidGLVersion(3, 1) = true
GLContext.isValidGLVersion(3, 2) = true
GLContext.isValidGLVersion(3, 3) = true
GLContext.isValidGLVersion(4, 0) = true
GLContext.isValidGLVersion(4, 1) = true
GLProfile.glAvailabilityToString =
GLAvailability[
  Native[
    GL4bc true[4.1 (compatibility profile, any, new)],
    GL4 true[4.1 (core profile, any, new)],
    GL3bc true[3.3 (compatibility profile, any, new)],
    GL3 true[3.3 (core profile, any, new)],
    GL2 true[3.0 (compatibility profile, any, new)],
    GL2ES1 true,
    GLES1 false,
    GL2ES2 true,
    GLES2 false
  ],
  Profiles[
    GLProfile[GL2ES2/GL2],
    GLProfile[GL2ES1/GL2],
    GLProfile[GL2/GL2],
    GLProfile[GL4/GL4],
    GLProfile[GL3/GL3],
    GLProfile[GL4bc/GL4bc],
    GLProfile[GL4bc/GL4bc],
    GLProfile[GL2GL3/GL2],
    GLProfile[GL3bc/GL3bc],
    ,
    default GLProfile[GL4bc/GL4bc]
  ]
]
GLProfile.getDefaultDesktopDevice = WindowsGraphicsDevice[type Windows, connection decon, unitID 0, handle 0x0]
GLProfile.getDefaultDevice        = WindowsGraphicsDevice[type Windows, connection decon, unitID 0, handle 0x0]
GLProfile.getDefaultEGLDevice     = EGLGraphicsDevice[type EGL, connection decon, unitID 0, handle 0x0]
GLProfile.isAWTAvailable    = true
GLProfile.isGL2Available    = true
GLProfile.isGL2ES1Available = true
GLProfile.isGL2ES2Available = true
GLProfile.isGL3Available    = true
GLProfile.isGL3bcAvailable  = true
GLProfile.isGL4Available    = true
GLProfile.isGL4bcAvailable  = true
GLProfile.isGLES1Available  = false
GLProfile.isGLES2Available  = false

glprofile = GLProfile[GL4bc/GL4bc]
glprofile.getGLImplBaseClassName = jogamp.opengl.gl4.GL4bc
glprofile.getImplName            = GL4bc
glprofile.getName                = GL4bc
glprofile.hasGLSL  = true
glprofile.isGL2    = true
glprofile.isGL2ES1 = true
glprofile.isGL2ES2 = true
glprofile.isGL2GL3 = true
glprofile.isGL3    = true
glprofile.isGL3bc  = true
glprofile.isGL4    = true
glprofile.isGL4bc  = true
glprofile.isGLES1  = false
glprofile.isGLES2  = false
glprofile.usesNativeGLES  = false
glprofile.usesNativeGLES1 = false
glprofile.usesNativeGLES2 = false

glcontext = jogamp.opengl.windows.wgl.WindowsExternalWGLContext[
  OpenGL 3.0,
  options 0x22,
  3.0 (compatibility profile, any, old) - 4.1.0,
  handle 0x20000,
  jogamp.opengl.gl4.GL4bcImpl@7290cb03,
  Drawable: jogamp.opengl.windows.wgl.WindowsExternalWGLContext$Drawable[
    Realized true,
    Factory   jogamp.opengl.windows.wgl.WindowsWGLDrawableFactory@6cb8,
    handle    0x40011b9a,
    Window    WrappedSurface[
      config WindowsWGLGraphicsConfiguration[
        DefaultGraphicsScreen[
          DefaultGraphicsDevice[
            type Windows,
            connection decon,
            unitID 0,
            handle 0x0
          ],
          idx 0
        ],
        pfdID 7,
        ARB-Choosen true,
        requested GLCaps[
          7 arb: on-scr,
          rgba 8/8/8/0,
          opaque,
          accum-rgba 16/16/16/16,
          dp/st/ms: 24/0/0,
          dbl,
          mono  ,
          hw,
          GLProfile[GL4bc/GL4bc]
        ],
        chosen    GLCaps[
          7 arb: on-scr,
          rgba 8/8/8/0,
          opaque,
          accum-rgba 16/16/16/16,
          dp/st/ms: 24/0/0,
          dbl,
          mono  ,
          hw,
          GLProfile[GL4bc/GL4bc]
        ]
      ],
      displayHandle 0x0,
      surfaceHandle 0x40011b9a,
      size 0x0
    ]
  ]
] 
glcontext.getGLVersion      = 3.0 (compatibility profile, any, old) - 4.1.0
glcontext.getGLVersionMajor = 3
glcontext.getGLVersionMinor = 0

glcontext.getGL().class            = class jogamp.opengl.gl4.GL4bcImpl
glcontext.getGL() instanceof GL2   = true
glcontext.getGL().getGL(): Ok
glcontext.getGL() instanceof GL2   = true
glcontext.getGL().getGL2() Ok
glcontext.getGL() instanceof GL2ES1 = true
glcontext.getGL().getGL2ES1() Ok
glcontext.getGL() instanceof GL2ES2 = true
glcontext.getGL().getGL2ES2() Ok
glcontext.getGL() instanceof GL2GL3 = true
glcontext.getGL().getGL2GL3() Ok
glcontext.getGL() instanceof GL3   = true
glcontext.getGL().getGL3(): Not a GL3 implementation
glcontext.getGL() instanceof GL3bc = true
glcontext.getGL().getGL3bc(): Not a GL3bc implementation
glcontext.getGL() instanceof GL4   = true
glcontext.getGL().getGL4(): Not a GL4 implementation
glcontext.getGL() instanceof GL4bc = true
glcontext.getGL().getGL4bc(): Not a GL4bc implementation
glcontext.getGL() instanceof GL4bc = false
glcontext.getGL().getGLES1(): Not a GLES1 implementation
glcontext.getGL() instanceof GL4bc = false
glcontext.getGL().getGLES2(): Not a GLES2 implementation
--------- SNAP ---------</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1017</commentid>
    <comment_count>2</comment_count>
    <who name="Sven Gothel">sgothel</who>
    <bug_when>2011-07-23 02:55:20 +0200</bug_when>
    <thetext>I cannot confirm this bug, since we use GL4 ctx a long time ago on linux/windows
w/ appropriate GPUs ..

Your logs might say that you have requested a GL4 ctx, but for some reason it is not,
and no exception has been thrown at getGL4() ?

NV GTX 460 supports GL4 AFAIK.
So does it&apos;s driver on windows.

Please attach your test application, or better a unit test.

Thank you.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1019</commentid>
    <comment_count>3</comment_count>
    <who name="Sven Gothel">sgothel</who>
    <bug_when>2011-07-23 02:57:33 +0200</bug_when>
    <thetext>BTW, we already have a simple unit test for those GLProfiles here:
  jogl/src/test/com/jogamp/opengl/test/junit/jogl/acore/TestGLProfile01NEWT.java

Maybe you can test that one on your machine and/or create a modified version of it,
reproducing the bug you experience.
Its much simpler to understand the issue having a unit test ..</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1040</commentid>
    <comment_count>4</comment_count>
      <attachid>262</attachid>
    <who name="Job Zwiers">zwiers</who>
    <bug_when>2011-08-03 11:42:04 +0200</bug_when>
    <thetext>Created attachment 262
test program showing a bug for getGL4() method

Small test program showing a bug when using the combination 
GLProfile.get(GLProfile.GL4)  and later on  GL4 gl = drawable.getGL().getGL4();</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1041</commentid>
    <comment_count>5</comment_count>
    <who name="Job Zwiers">zwiers</who>
    <bug_when>2011-08-03 11:50:32 +0200</bug_when>
    <thetext>I could run the junit test (except for a few lines in the first test which seem to require some android.content.Context class which I apparantly don&apos;t have)

The test completes ok, but it would not trigger this bug, since it is only
the particular *combination* of GLProfile.get(GLProfile.GL4) for profile selction and later on GL4 gl = drawable.getGL().getGL4() for obtaining a
GL4 context. Replacing the latter line with GL4 gl = (GL4) drawable.getGL();
for instancce works ok. Alternatively, selecting the profile with 
GLProfile glp = GLProfile.getDefault(); also avaoid this bug (I think it selects a GL4bc rather than a GL4 profile). 

For triggering this bug in the junit test I guess we need a revised dumpVersion/DumpGLInfo, so I created a small test program instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1050</commentid>
    <comment_count>6</comment_count>
    <who name="Sven Gothel">sgothel</who>
    <bug_when>2011-08-23 15:03:55 +0200</bug_when>
    <thetext>fixed (jogl: 4a77b439ca85a29c1cf5ac5043c4ef03c4206e0d)

sorry, it was copy/paste code bug. thx for being persistent demonstrating it.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>262</attachid>
            <date>2011-08-03 11:42:04 +0200</date>
            <delta_ts>2011-08-03 11:42:04 +0200</delta_ts>
            <desc>test program showing a bug for getGL4() method</desc>
            <filename>GL4Bug.java</filename>
            <type>text/plain</type>
            <size>2757</size>
            <attacher name="Job Zwiers">zwiers</attacher>
            
              <data encoding="base64">cGFja2FnZSBnbDRidWc7DQppbXBvcnQgamF2YS5hd3QuKjsNCmltcG9ydCBqYXZhLmF3dC5ldmVu
dC4qOw0KaW1wb3J0IGphdmF4Lm1lZGlhLm9wZW5nbC4qOyAgICAgIA0KaW1wb3J0IGphdmF4Lm1l
ZGlhLm9wZW5nbC5hd3QuKjsgIA0KDQovKioNCiAqIFNob3dzIGEgYnVnICg/KSB3aXRoIHRoZSBj
b21iaW5hdGlvbiBHTFByb2ZpbGUuZ2V0KEdMUHJvZmlsZS5HTDQpIC8gR0w0IGdsID0gZHJhd2Fi
bGUuZ2V0R0woKS5nZXRHTDQoKTsNCiAgIEluIHRoYXQgY2FzZSB0aGUgc3RhY2t0cmFjZSBzdGFy
dHMgbGlrZToNCg0KICAgICBbamF2YV0gRXhjZXB0aW9uIGluIHRocmVhZCAiQVdULUV2ZW50UXVl
dWUtMCIgamF2YXgubWVkaWEub3BlbmdsLkdMRXhjZXB0aW9uOiBOb3QgYSBHTDQgaW1wbGVtZW50
YXRpb24NCiAgICAgW2phdmFdIAlhdCBqb2dhbXAub3BlbmdsLmdsNC5HTDRiY0ltcGwuZ2V0R0w0
KEdMNGJjSW1wbC5qYXZhOjMyNDU2KQ0KICAgICBbamF2YV0gCWF0IGZpcnN0b3BlbmdsLkdMNEJ1
Zy5pbml0KEdMNEJ1Zy5qYXZhOjMxKQ0KICAgICBbamF2YV0gCWF0IGpvZ2FtcC5vcGVuZ2wuR0xE
cmF3YWJsZUhlbHBlci5pbml0KEdMRHJhd2FibGVIZWxwZXIuamF2YToxMzIpDQogICAgIA0KICAg
SW4gYWxsIG90aGVyIGNhc2VzIGV2ZXJ5dGhpbmcgbG9va3Mgb2ssIGFuZCBmb3IgaW5zdGFuY2Ug
R0w0IGdsID0gKEdMNCkgZHJhd2FibGUuZ2V0R0woKTsgd29ya3MsIGFuZCANCiAgIGNvcnJlY3Rs
eSByZXBvcnRzIGFuIE9wZW5HTCB2ZXJzaW9uIDQuMS4wLiANCiAgIA0KICAgU2ltaWxhciBjb2Rl
IGJ1dCB3aXRoIEdMUHJvZmlsZS5nZXQoR0xQcm9maWxlLkdMMykgLyBHTDMgZ2wgPSBkcmF3YWJs
ZS5nZXRHTCgpLmdldEdMMygpIHNob3dzIHZlcnNpb24gMy4zLjAgYW5kIHdvcmtzIG9rLg0KICAg
DQogICBUZXN0ZWQgd2l0aCBOVmlkaWEgR1RYIDQ2MCBhbmQgR1RYIDU2MCwgZHJpdmVyIHZlcnNp
b24gMjc1LjMzLCBvbiBXaW5kb3dzIDcgNjQtYml0LzMyLWJpdCBKYXZhIDEuNi4wXzI2DQogICBK
b2dsIHZlcnNpb25zOiBqb2dsLTIuMC1iMjMtMjAxMTAzMDMtd2luZG93cy1pNTg2Ljd6IGFuZCBq
b2dsLTIuMC1iNDE3LTIwMTEwODAyLXdpbmRvd3MtaTU4Ni43eg0KDQogKi8NCnB1YmxpYyBjbGFz
cyBHTDRCdWcgaW1wbGVtZW50cyBHTEV2ZW50TGlzdGVuZXIgIHsNCg0KICAgcHVibGljIEdMNEJ1
ZygpIHsNCiAgICAgIC8vR0xQcm9maWxlIGdscCA9IEdMUHJvZmlsZS5nZXREZWZhdWx0KCk7ICAg
ICAgIC8vIFRoaXMgd29ya3Mgb2ssIGFuZCByZXBvcnRzIE9HTCB2ZXJzaW9uIDQuMS4wIGxhdGVy
IG9uDQogICAgICAvL0dMUHJvZmlsZSBnbHAgPSBHTFByb2ZpbGUuZ2V0KEdMUHJvZmlsZS5HTDMp
OyAvLyBUaGlzIHdvcmtzIG9rLCBidXQgd2lsbCByZXBvcnQgT0dMIHZlcnNpb24gMy4zLjAgbGF0
ZXIgb24NCiAgICAgIEdMUHJvZmlsZSBnbHAgPSBHTFByb2ZpbGUuZ2V0KEdMUHJvZmlsZS5HTDQp
OyAgIC8vID09PT4gVGhpcyB3aWxsIGZhaWwgbGF0ZXIgb24sIGJ1dCBPTkxZIHdpdGggdGhlIGdl
dEdMNCgpIGNhbGwsIG5vdCB3aXRoIChHTDQpIGRyYXdhYmxlLmdldEdMKCkNCiAgICAgIEdMQ2Fw
YWJpbGl0aWVzIGNhcHMgPSBuZXcgR0xDYXBhYmlsaXRpZXMoZ2xwKTsNCiAgICAgIEdMQ2FudmFz
IGNhbnZhcyA9IG5ldyBHTENhbnZhcyhjYXBzKTsNCiAgICAgIGNhbnZhcy5hZGRHTEV2ZW50TGlz
dGVuZXIodGhpcyk7DQogICAgICANCiAgICAgIEZyYW1lIGZyYW1lID0gbmV3IEZyYW1lKCk7DQog
ICAgICBmcmFtZS5hZGRXaW5kb3dMaXN0ZW5lcihuZXcgV2luZG93QWRhcHRlcigpIHsNCiAgICAg
ICAgIHB1YmxpYyB2b2lkIHdpbmRvd0Nsb3NpbmcoV2luZG93RXZlbnQgZSkgeyAgU3lzdGVtLmV4
aXQoMCk7ICB9DQogICAgICB9KTsNCiAgICAgIGZyYW1lLnNldFNpemUoMjU2LCAxMjgpOw0KICAg
ICAgZnJhbWUuc2V0TG9jYXRpb24oMjU2LCAyNTYpOw0KICAgICAgZnJhbWUuYWRkKGNhbnZhcyk7
DQogICAgICBmcmFtZS5zZXRWaXNpYmxlKHRydWUpOyANCiAgIH0NCiANCiAgIHB1YmxpYyB2b2lk
IGluaXQoR0xBdXRvRHJhd2FibGUgZHJhd2FibGUpIHsNCiAgICAgIEdMNCBnbCA9IGRyYXdhYmxl
LmdldEdMKCkuZ2V0R0w0KCk7ICAgICAgIC8vIHRoaXMgZmFpbHMgZm9yIEdMUHJvZmlsZS5nZXQo
R0xQcm9maWxlLkdMNCksIGJ1dCB3b3JrcyBvayBmb3IgR0xQcm9maWxlLmdldERlZmF1bHQoKQ0K
ICAgICAgLy9HTDQgZ2wgPSAoR0w0KSBkcmF3YWJsZS5nZXRHTCgpOyAgIC8vIFRoaXMgYWx3YXlz
IHdvcmtzIG9rLCBuZXh0IGxpbmUgd2lsbCBwcmludCBjb3JyZWN0IHZlcnNpb24gNC4xLjAgKG9y
IDMuMy4wIGZvciBHTFByb2ZpbGUuR0wzKQ0KICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJHTFZF
UlNJT046ICIgKyBnbC5nbEdldFN0cmluZyhHTC5HTF9WRVJTSU9OKSk7DQoNCiAgIH0NCg0KICAg
cHVibGljIHZvaWQgZGlzcG9zZShHTEF1dG9EcmF3YWJsZSBkcmF3YWJsZSkgeyB9DQogICBwdWJs
aWMgdm9pZCByZXNoYXBlKEdMQXV0b0RyYXdhYmxlIGdsLCBpbnQgeCwgaW50IHksIGludCB3aWR0
aCwgaW50IGhlaWdodCkgeyB9DQogICBwdWJsaWMgdm9pZCBkaXNwbGF5KEdMQXV0b0RyYXdhYmxl
IGRyYXdhYmxlKSB7IH0NCg0KICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJn
KSB7ICAgICANCiAgICAgIEdMUHJvZmlsZS5pbml0U2luZ2xldG9uKGZhbHNlKTsJDQogICAgICBu
ZXcgR0w0QnVnKCk7DQogICB9DQp9
</data>

          </attachment>
      

    </bug>

</bugzilla>