Bug 1082

Summary: Incr. Robustness of GLDrawableFactoryImpl.createOffscreenDrawable(..) and AWTPrintLifecycle.setupPrint()
Product: [JogAmp] Jogl Reporter: Sven Gothel <sgothel>
Component: coreAssignee: Sven Gothel <sgothel>
Status: RESOLVED FIXED    
Severity: major CC: sgothel
Priority: ---    
Version: 2.3.0   
Hardware: All   
OS: all   
Type: --- SCM Refs:
4813455dc413fb37da28ed4845fb6f22c65629f4 39cd0dfa0e46a3617b51e5b15a5fccedeae77f39
Workaround: ---
Bug Depends on:    
Bug Blocks: 1078    

Description Sven Gothel 2014-10-01 00:59:03 CEST
Add Fallback in AWTPrintLifecycle.setupPrint(): 
Use Onscreen GLAD if Offscreen-GLAD Realization throws an Exception (Stability)

- GLDrawableFactoryImpl: createOffscreenDrawable(..) and createDummyAutoDrawable(..)
  Temporary catch exception during setRealized(true) of newly created GLDrawable,
  to unrealize the instance before propagating the exception.

  This handling removes a memory leak in case the exception of this method is handled
  and application continues to operate, e.g. as in AWTPrintLifecycle.setupPrint().

  The underlying drawable gets unrealized, since it's setRealized(boolean)
  implementation toggles its realize-state before delegating the realize-operation.
  Hence this is functional.

- AWTPrintLifecycle.setupPrint() Stability
  Catch exception thrown by factory.createOffscreenAutoDrawable(..)'s setRealize(true)
  to continue operation w/ onscreen GLAD.
Comment 1 Sven Gothel 2014-10-01 00:59:43 CEST
Commit 4813455dc413fb37da28ed4845fb6f22c65629f4
  - Fix as described
Comment 2 Sven Gothel 2014-10-01 05:06:02 CEST
39cd0dfa0e46a3617b51e5b15a5fccedeae77f39
 Bug 1078, Bug 1082: Fix regression (copy/paste), 
 add missing assignment of printGLAD in NewtCanvasAWT.setupPrint()