aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/jogl/classes/com/jogamp/opengl/FBObject.java7
-rw-r--r--src/jogl/classes/com/jogamp/opengl/util/AnimatorBase.java4
-rw-r--r--src/jogl/classes/com/jogamp/opengl/util/FPSAnimator.java4
-rw-r--r--src/jogl/classes/com/jogamp/opengl/util/ImmModeSink.java3
-rw-r--r--src/jogl/classes/com/jogamp/opengl/util/glsl/ShaderState.java15
-rw-r--r--src/jogl/classes/javax/media/opengl/DefaultGLCapabilitiesChooser.java3
-rw-r--r--src/jogl/classes/javax/media/opengl/GLProfile.java5
-rw-r--r--src/jogl/classes/jogamp/opengl/GLBufferObjectTracker.java17
-rw-r--r--src/jogl/classes/jogamp/opengl/GLContextImpl.java19
-rw-r--r--src/jogl/classes/jogamp/opengl/GLDebugMessageHandler.java4
-rw-r--r--src/jogl/classes/jogamp/opengl/GLDrawableFactoryImpl.java3
-rw-r--r--src/jogl/classes/jogamp/opengl/GLDrawableHelper.java4
-rw-r--r--src/jogl/classes/jogamp/opengl/GLDrawableImpl.java4
-rw-r--r--src/jogl/classes/jogamp/opengl/GLFBODrawableImpl.java7
-rw-r--r--src/jogl/classes/jogamp/opengl/openal/av/ALAudioSink.java10
-rw-r--r--src/jogl/classes/jogamp/opengl/windows/wgl/WindowsWGLGraphicsConfiguration.java9
-rw-r--r--src/jogl/classes/jogamp/opengl/windows/wgl/WindowsWGLGraphicsConfigurationFactory.java9
-rw-r--r--src/jogl/classes/jogamp/opengl/x11/glx/X11GLXContext.java5
-rw-r--r--src/jogl/classes/jogamp/opengl/x11/glx/X11GLXDrawableFactory.java3
-rw-r--r--src/jogl/classes/jogamp/opengl/x11/glx/X11GLXGraphicsConfigurationFactory.java5
-rw-r--r--src/nativewindow/classes/com/jogamp/nativewindow/awt/JAWTWindow.java7
-rw-r--r--src/nativewindow/classes/javax/media/nativewindow/GraphicsConfigurationFactory.java4
-rw-r--r--src/nativewindow/classes/jogamp/nativewindow/SharedResourceToolkitLock.java3
-rw-r--r--src/nativewindow/classes/jogamp/nativewindow/windows/GDIUtil.java4
-rw-r--r--src/nativewindow/classes/jogamp/nativewindow/x11/X11Util.java5
-rw-r--r--src/newt/classes/com/jogamp/newt/awt/NewtCanvasAWT.java7
-rw-r--r--src/newt/classes/jogamp/newt/DefaultEDTUtil.java11
-rw-r--r--src/newt/classes/jogamp/newt/DisplayImpl.java11
-rw-r--r--src/newt/classes/jogamp/newt/WindowImpl.java17
-rw-r--r--src/newt/classes/jogamp/newt/driver/android/WindowDriver.java9
-rw-r--r--src/newt/classes/jogamp/newt/driver/awt/AWTEDTUtil.java5
-rw-r--r--src/newt/classes/jogamp/newt/driver/x11/WindowDriver.java3
-rw-r--r--src/newt/classes/jogamp/newt/swt/SWTEDTUtil.java7
-rw-r--r--src/test/com/jogamp/opengl/test/junit/jogl/acore/TestSharedContextNewtAWTBug523.java5
-rw-r--r--src/test/com/jogamp/opengl/test/junit/util/AWTRobotUtil.java5
35 files changed, 140 insertions, 103 deletions
diff --git a/src/jogl/classes/com/jogamp/opengl/FBObject.java b/src/jogl/classes/com/jogamp/opengl/FBObject.java
index 03693a688..20e576716 100644
--- a/src/jogl/classes/com/jogamp/opengl/FBObject.java
+++ b/src/jogl/classes/com/jogamp/opengl/FBObject.java
@@ -44,6 +44,7 @@ import javax.media.opengl.GLProfile;
import jogamp.opengl.Debug;
+import com.jogamp.common.ExceptionUtils;
import com.jogamp.common.util.PropertyAccess;
import com.jogamp.opengl.FBObject.Attachment.Type;
@@ -1071,7 +1072,7 @@ public class FBObject {
vStatus = GL.GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT; // always incomplete w/o attachments!
if(DEBUG) {
System.err.println("FBObject.init() END: "+this);
- Thread.dumpStack();
+ ExceptionUtils.dumpStack(System.err);
}
}
@@ -1306,7 +1307,7 @@ public class FBObject {
final int glerr = gl.glGetError();
if(DEBUG && GL.GL_NO_ERROR != glerr) {
System.err.println("Pre-existing GL error: "+toHexString(glerr));
- Thread.dumpStack();
+ ExceptionUtils.dumpStack(System.err);
}
return glerr;
}
@@ -2306,7 +2307,7 @@ public class FBObject {
public final boolean resetSamplingSink(final GL gl) throws GLException {
if(DEBUG) {
System.err.println("FBObject.resetSamplingSink.0");
- Thread.dumpStack();
+ ExceptionUtils.dumpStack(System.err);
}
if( 0 == samples ) {
diff --git a/src/jogl/classes/com/jogamp/opengl/util/AnimatorBase.java b/src/jogl/classes/com/jogamp/opengl/util/AnimatorBase.java
index 5f2db20bd..3bd013a1a 100644
--- a/src/jogl/classes/com/jogamp/opengl/util/AnimatorBase.java
+++ b/src/jogl/classes/com/jogamp/opengl/util/AnimatorBase.java
@@ -39,6 +39,8 @@ import javax.media.opengl.GLAutoDrawable;
import javax.media.opengl.GLException;
import javax.media.opengl.GLProfile;
+import com.jogamp.common.ExceptionUtils;
+
/**
* Base implementation of GLAnimatorControl<br>
* <p>
@@ -625,7 +627,7 @@ public abstract class AnimatorBase implements GLAnimatorControl {
" - " + getThreadName());
System.err.println(" - "+toString());
if(nok) {
- Thread.dumpStack();
+ ExceptionUtils.dumpStack(System.err);
}
}
return res;
diff --git a/src/jogl/classes/com/jogamp/opengl/util/FPSAnimator.java b/src/jogl/classes/com/jogamp/opengl/util/FPSAnimator.java
index 54d40f285..1bd428c10 100644
--- a/src/jogl/classes/com/jogamp/opengl/util/FPSAnimator.java
+++ b/src/jogl/classes/com/jogamp/opengl/util/FPSAnimator.java
@@ -45,6 +45,8 @@ import java.util.TimerTask;
import javax.media.opengl.GLAutoDrawable;
import javax.media.opengl.GLException;
+import com.jogamp.common.ExceptionUtils;
+
/**
* An Animator subclass which attempts to achieve a target
* frames-per-second rate to avoid using all CPU time. The target FPS
@@ -392,7 +394,7 @@ public class FPSAnimator extends AnimatorBase {
if( null != task ) {
if( DEBUG ) {
System.err.println("FPSAnimator.resume() Ops: !pauseIssued, but task != null: "+toString());
- Thread.dumpStack();
+ ExceptionUtils.dumpStack(System.err);
}
task.cancel();
task = null;
diff --git a/src/jogl/classes/com/jogamp/opengl/util/ImmModeSink.java b/src/jogl/classes/com/jogamp/opengl/util/ImmModeSink.java
index 150e92c2e..eea76116c 100644
--- a/src/jogl/classes/com/jogamp/opengl/util/ImmModeSink.java
+++ b/src/jogl/classes/com/jogamp/opengl/util/ImmModeSink.java
@@ -16,6 +16,7 @@ import javax.media.opengl.fixedfunc.GLPointerFunc;
import jogamp.opengl.Debug;
+import com.jogamp.common.ExceptionUtils;
import com.jogamp.common.nio.Buffers;
import com.jogamp.common.os.Platform;
import com.jogamp.common.util.PropertyAccess;
@@ -1376,7 +1377,7 @@ public class ImmModeSink {
if(DEBUG_BUFFER) {
System.err.println("ImmModeSink.realloc.X: "+this.toString());
- Thread.dumpStack();
+ ExceptionUtils.dumpStack(System.err);
}
return true;
}
diff --git a/src/jogl/classes/com/jogamp/opengl/util/glsl/ShaderState.java b/src/jogl/classes/com/jogamp/opengl/util/glsl/ShaderState.java
index d758fc121..428252ad4 100644
--- a/src/jogl/classes/com/jogamp/opengl/util/glsl/ShaderState.java
+++ b/src/jogl/classes/com/jogamp/opengl/util/glsl/ShaderState.java
@@ -40,6 +40,7 @@ import javax.media.opengl.GLUniformData;
import jogamp.opengl.Debug;
+import com.jogamp.common.ExceptionUtils;
import com.jogamp.common.os.Platform;
import com.jogamp.common.util.PropertyAccess;
import com.jogamp.opengl.util.GLArrayDataEditable;
@@ -161,7 +162,7 @@ public class ShaderState {
final int newId = (null!=prog)?prog.id():-1;
System.err.println("ShaderState: attachShaderProgram: "+curId+" -> "+newId+" (enable: "+enable+")\n\t"+shaderProgram+"\n\t"+prog);
if(DEBUG) {
- Thread.dumpStack();
+ ExceptionUtils.dumpStack(System.err);
}
}
if(null!=shaderProgram) {
@@ -405,7 +406,7 @@ public class ShaderState {
} else if(verbose) {
System.err.println("ShaderState: glGetAttribLocation failed, no location for: "+name+", loc: "+location);
if(DEBUG) {
- Thread.dumpStack();
+ ExceptionUtils.dumpStack(System.err);
}
}
}
@@ -448,7 +449,7 @@ public class ShaderState {
} else if(verbose) {
System.err.println("ShaderState: glGetAttribLocation failed, no location for: "+name+", loc: "+location);
if(DEBUG) {
- Thread.dumpStack();
+ ExceptionUtils.dumpStack(System.err);
}
}
}
@@ -483,7 +484,7 @@ public class ShaderState {
if(verbose) {
System.err.println("ShaderState: glEnableVertexAttribArray failed, no index for: "+name);
if(DEBUG) {
- Thread.dumpStack();
+ ExceptionUtils.dumpStack(System.err);
}
}
return false;
@@ -558,7 +559,7 @@ public class ShaderState {
if(verbose) {
System.err.println("ShaderState: glDisableVertexAttribArray failed, no index for: "+name);
if(DEBUG) {
- Thread.dumpStack();
+ ExceptionUtils.dumpStack(System.err);
}
}
return false;
@@ -875,7 +876,7 @@ public class ShaderState {
} else if(verbose) {
System.err.println("ShaderState: glUniform failed, no location for: "+name+", index: "+location);
if(DEBUG) {
- Thread.dumpStack();
+ ExceptionUtils.dumpStack(System.err);
}
}
}
@@ -916,7 +917,7 @@ public class ShaderState {
} else if(verbose) {
System.err.println("ShaderState: glUniform failed, no location for: "+name+", index: "+location);
if(DEBUG) {
- Thread.dumpStack();
+ ExceptionUtils.dumpStack(System.err);
}
}
}
diff --git a/src/jogl/classes/javax/media/opengl/DefaultGLCapabilitiesChooser.java b/src/jogl/classes/javax/media/opengl/DefaultGLCapabilitiesChooser.java
index 412af25e0..1991ad7d0 100644
--- a/src/jogl/classes/javax/media/opengl/DefaultGLCapabilitiesChooser.java
+++ b/src/jogl/classes/javax/media/opengl/DefaultGLCapabilitiesChooser.java
@@ -46,6 +46,7 @@ import java.util.List;
import javax.media.nativewindow.CapabilitiesImmutable;
+import com.jogamp.common.ExceptionUtils;
import com.jogamp.common.util.PropertyAccess;
import jogamp.opengl.Debug;
@@ -126,7 +127,7 @@ public class DefaultGLCapabilitiesChooser implements GLCapabilitiesChooser {
final int availnum = available.size();
if (DEBUG) {
- Thread.dumpStack();
+ ExceptionUtils.dumpStack(System.err);
System.err.println("Desired: " + gldes);
System.err.println("Available: " + availnum);
for (int i = 0; i < available.size(); i++) {
diff --git a/src/jogl/classes/javax/media/opengl/GLProfile.java b/src/jogl/classes/javax/media/opengl/GLProfile.java
index c7aaca5d3..c1ca9a48b 100644
--- a/src/jogl/classes/javax/media/opengl/GLProfile.java
+++ b/src/jogl/classes/javax/media/opengl/GLProfile.java
@@ -41,6 +41,7 @@ import jogamp.opengl.Debug;
import jogamp.opengl.GLDrawableFactoryImpl;
import jogamp.opengl.DesktopGLDynamicLookupHelper;
+import com.jogamp.common.ExceptionUtils;
import com.jogamp.common.GlueGenVersion;
import com.jogamp.common.jvm.JNILibLoaderBase;
import com.jogamp.common.os.Platform;
@@ -175,7 +176,7 @@ public class GLProfile {
justInitialized = true;
if(DEBUG) {
System.err.println("GLProfile.initSingleton() - thread "+Thread.currentThread().getName());
- Thread.dumpStack();
+ ExceptionUtils.dumpStack(System.err);
}
if(ReflectionUtil.DEBUG_STATS_FORNAME) {
@@ -246,7 +247,7 @@ public class GLProfile {
initialized = false;
if(DEBUG) {
System.err.println("GLProfile.shutdown() - thread "+Thread.currentThread().getName());
- Thread.dumpStack();
+ ExceptionUtils.dumpStack(System.err);
}
GLDrawableFactory.shutdown();
}
diff --git a/src/jogl/classes/jogamp/opengl/GLBufferObjectTracker.java b/src/jogl/classes/jogamp/opengl/GLBufferObjectTracker.java
index 7e49b3464..f278f73ae 100644
--- a/src/jogl/classes/jogamp/opengl/GLBufferObjectTracker.java
+++ b/src/jogl/classes/jogamp/opengl/GLBufferObjectTracker.java
@@ -34,6 +34,7 @@ import java.nio.IntBuffer;
import javax.media.opengl.*;
+import com.jogamp.common.ExceptionUtils;
import com.jogamp.common.nio.Buffers;
import com.jogamp.common.util.IntObjectHashMap;
import com.jogamp.common.util.PropertyAccess;
@@ -266,7 +267,7 @@ public class GLBufferObjectTracker {
if( null == objOld ) {
if (DEBUG) {
System.err.printf("%s: %s.notifyBuffersDeleted()[%d/%d]: Buffer %d not tracked%n", warning, msgClazzName, i+1, count, bufferName);
- Thread.dumpStack();
+ ExceptionUtils.dumpStack(System.err);
}
return;
}
@@ -409,7 +410,7 @@ public class GLBufferObjectTracker {
if ( 0 == addr ) {
if( DEBUG ) {
System.err.printf("%s.%s: %s MapBuffer null result for target 0x%X -> %d: %s, off %d, len %d, acc 0x%X%n", msgClazzName, msgMapBuffer, warning, target, bufferName, store, offset, length, access);
- Thread.dumpStack();
+ ExceptionUtils.dumpStack(System.err);
}
// User shall handle the glError !
} else {
@@ -442,14 +443,14 @@ public class GLBufferObjectTracker {
if( 0 == bufferName ) {
if (DEBUG) {
System.err.printf("%s: %s.%s: Buffer for target 0x%X not bound%n", warning, msgClazzName, msgUnmapped, target);
- Thread.dumpStack();
+ ExceptionUtils.dumpStack(System.err);
}
store = null;
} else {
store = (GLBufferStorageImpl) bufferName2StorageMap.get(bufferName);
if( DEBUG && null == store ) {
System.err.printf("%s: %s.%s: Buffer %d not tracked%n", warning, msgClazzName, msgUnmapped, bufferName);
- Thread.dumpStack();
+ ExceptionUtils.dumpStack(System.err);
}
}
final boolean res = dispatch.unmap(target, glProcAddress);
@@ -459,7 +460,7 @@ public class GLBufferObjectTracker {
if( DEBUG ) {
System.err.printf("%s.%s %s target: 0x%X -> %d: %s%n", msgClazzName, msgUnmapped, res ? "OK" : "Failed", target, bufferName, store.toString(false));
if(!res) {
- Thread.dumpStack();
+ ExceptionUtils.dumpStack(System.err);
}
}
return res;
@@ -476,7 +477,7 @@ public class GLBufferObjectTracker {
final GLBufferStorageImpl store = (GLBufferStorageImpl) bufferName2StorageMap.get(bufferName);
if (DEBUG && null == store ) {
System.err.printf("%s: %s.%s: Buffer %d not tracked%n", warning, msgClazzName, msgUnmapped, bufferName);
- Thread.dumpStack();
+ ExceptionUtils.dumpStack(System.err);
}
final boolean res = dispatch.unmap(bufferName, glProcAddress);
if( res && null != store ) {
@@ -485,7 +486,7 @@ public class GLBufferObjectTracker {
if (DEBUG) {
System.err.printf("%s.%s %s %d: %s%n", msgClazzName, msgUnmapped, res ? "OK" : "Failed", bufferName, store.toString(false));
if(!res) {
- Thread.dumpStack();
+ ExceptionUtils.dumpStack(System.err);
}
}
return res;
@@ -505,7 +506,7 @@ public class GLBufferObjectTracker {
public synchronized final void clear() {
if (DEBUG) {
System.err.printf("%s.clear() - Thread %s%n", msgClazzName, Thread.currentThread().getName());
- // Thread.dumpStack();
+ // ExceptionUtils.dumpStackTrace(System.err);
}
bufferName2StorageMap.clear();
}
diff --git a/src/jogl/classes/jogamp/opengl/GLContextImpl.java b/src/jogl/classes/jogamp/opengl/GLContextImpl.java
index bf860e92c..2a224fd0e 100644
--- a/src/jogl/classes/jogamp/opengl/GLContextImpl.java
+++ b/src/jogl/classes/jogamp/opengl/GLContextImpl.java
@@ -48,6 +48,7 @@ import java.security.PrivilegedAction;
import java.util.HashMap;
import java.util.Map;
+import com.jogamp.common.ExceptionUtils;
import com.jogamp.common.os.DynamicLookupHelper;
import com.jogamp.common.os.Platform;
import com.jogamp.common.util.ReflectionUtil;
@@ -305,7 +306,7 @@ public abstract class GLContextImpl extends GLContext {
final String sgl1 = (null!=this.gl)?this.gl.getClass().getSimpleName()+", "+this.gl.toString():"<null>";
final String sgl2 = (null!=gl)?gl.getClass().getSimpleName()+", "+gl.toString():"<null>";
System.err.println("Info: setGL (OpenGL "+getGLVersion()+"): "+getThreadName()+", "+sgl1+" -> "+sgl2);
- Thread.dumpStack();
+ ExceptionUtils.dumpStack(System.err);
}
this.gl = gl;
return gl;
@@ -383,7 +384,7 @@ public abstract class GLContextImpl extends GLContext {
lastCtxReleaseStack = new Throwable(msg);
if( TRACE_SWITCH ) {
System.err.println(msg);
- // Thread.dumpStack();
+ // ExceptionUtils.dumpStackTrace(System.err, 0, 10);
}
}
}
@@ -419,7 +420,7 @@ public abstract class GLContextImpl extends GLContext {
if ( DEBUG_TRACE_SWITCH ) {
if ( lock.getHoldCount() > 2 ) {
System.err.println(getThreadName() + ": GLContextImpl.destroy: Lock was hold more than once - makeCurrent/release imbalance: "+getTraceSwitchMsg());
- Thread.dumpStack();
+ ExceptionUtils.dumpStack(System.err);
}
}
try {
@@ -712,7 +713,7 @@ public abstract class GLContextImpl extends GLContext {
}
if ( DEBUG_TRACE_SWITCH ) {
System.err.println(getThreadName() + ": Create GL context "+(created?"OK":"FAILED")+": For " + getClass().getName()+" - "+getGLVersion()+" - "+getTraceSwitchMsg());
- // Thread.dumpStack();
+ // ExceptionUtils.dumpStackTrace(System.err, 0, 10);
}
if(!created) {
return CONTEXT_NOT_CURRENT;
@@ -1296,7 +1297,7 @@ public abstract class GLContextImpl extends GLContext {
if(0 == _glGetString) {
System.err.println("Error: Entry point to 'glGetString' is NULL.");
if(DEBUG) {
- Thread.dumpStack();
+ ExceptionUtils.dumpStack(System.err);
}
return false;
} else {
@@ -1304,7 +1305,7 @@ public abstract class GLContextImpl extends GLContext {
if(null == _glVendor) {
if(DEBUG) {
System.err.println("Warning: GL_VENDOR is NULL.");
- Thread.dumpStack();
+ ExceptionUtils.dumpStack(System.err);
}
return false;
}
@@ -1314,7 +1315,7 @@ public abstract class GLContextImpl extends GLContext {
if(null == _glRenderer) {
if(DEBUG) {
System.err.println("Warning: GL_RENDERER is NULL.");
- Thread.dumpStack();
+ ExceptionUtils.dumpStack(System.err);
}
return false;
}
@@ -1326,7 +1327,7 @@ public abstract class GLContextImpl extends GLContext {
// FIXME
if(DEBUG) {
System.err.println("Warning: GL_VERSION is NULL.");
- Thread.dumpStack();
+ ExceptionUtils.dumpStack(System.err);
}
return false;
}
@@ -1370,7 +1371,7 @@ public abstract class GLContextImpl extends GLContext {
if( 0 == _glGetIntegerv ) {
System.err.println("Error: Entry point to 'glGetIntegerv' is NULL.");
if(DEBUG) {
- Thread.dumpStack();
+ ExceptionUtils.dumpStack(System.err);
}
return false;
} else {
diff --git a/src/jogl/classes/jogamp/opengl/GLDebugMessageHandler.java b/src/jogl/classes/jogamp/opengl/GLDebugMessageHandler.java
index 7519d568b..e682431a9 100644
--- a/src/jogl/classes/jogamp/opengl/GLDebugMessageHandler.java
+++ b/src/jogl/classes/jogamp/opengl/GLDebugMessageHandler.java
@@ -33,13 +33,13 @@ import java.util.ArrayList;
import javax.media.nativewindow.NativeWindowException;
import javax.media.opengl.GL2ES2;
-import javax.media.opengl.GL2GL3;
import javax.media.opengl.GLDebugListener;
import javax.media.opengl.GLDebugMessage;
import javax.media.opengl.GLException;
import jogamp.common.os.PlatformPropsImpl;
+import com.jogamp.common.ExceptionUtils;
import com.jogamp.common.os.Platform;
import com.jogamp.gluegen.runtime.ProcAddressTable;
import com.jogamp.opengl.GLExtensions;
@@ -308,7 +308,7 @@ public class GLDebugMessageHandler {
public void messageSent(final GLDebugMessage event) {
System.err.println(event);
if(threadDump) {
- Thread.dumpStack();
+ ExceptionUtils.dumpStack(System.err);
}
}
}
diff --git a/src/jogl/classes/jogamp/opengl/GLDrawableFactoryImpl.java b/src/jogl/classes/jogamp/opengl/GLDrawableFactoryImpl.java
index b51f290e9..d7868c6dd 100644
--- a/src/jogl/classes/jogamp/opengl/GLDrawableFactoryImpl.java
+++ b/src/jogl/classes/jogamp/opengl/GLDrawableFactoryImpl.java
@@ -67,6 +67,7 @@ import javax.media.opengl.GLFBODrawable;
import javax.media.opengl.GLOffscreenAutoDrawable;
import javax.media.opengl.GLProfile;
+import com.jogamp.common.ExceptionUtils;
import com.jogamp.nativewindow.MutableGraphicsConfiguration;
import com.jogamp.nativewindow.DelegatedUpstreamSurfaceHookWithSurfaceSize;
import com.jogamp.nativewindow.UpstreamSurfaceHookMutableSize;
@@ -195,7 +196,7 @@ public abstract class GLDrawableFactoryImpl extends GLDrawableFactory {
System.err.println("chosenCapsMod: "+chosenCapsMod);
System.err.println("OffscreenLayerSurface: **** "+ols);
System.err.println("Target: **** "+target);
- Thread.dumpStack();
+ ExceptionUtils.dumpStack(System.err);
}
if( ! ( target instanceof MutableSurface ) ) {
throw new IllegalArgumentException("Passed NativeSurface must implement SurfaceChangeable for offscreen layered surface: "+target);
diff --git a/src/jogl/classes/jogamp/opengl/GLDrawableHelper.java b/src/jogl/classes/jogamp/opengl/GLDrawableHelper.java
index 3847b4042..6982418a9 100644
--- a/src/jogl/classes/jogamp/opengl/GLDrawableHelper.java
+++ b/src/jogl/classes/jogamp/opengl/GLDrawableHelper.java
@@ -355,7 +355,7 @@ public class GLDrawableHelper {
}
if( DEBUG && ( 0>=newWidth || 0>=newHeight) ) {
System.err.println("WARNING: Odd size detected: "+newWidth+"x"+newHeight+", using safe size 1x1. Drawable "+drawable);
- Thread.dumpStack();
+ ExceptionUtils.dumpStack(System.err);
}
if( 0 >= newWidth ) { newWidth = 1; validateSize=false; }
if( 0 >= newHeight ) { newHeight = 1; validateSize=false; }
@@ -734,7 +734,7 @@ public class GLDrawableHelper {
final int glerr0 = drawable.getGL().glGetError();
if( GL.GL_NO_ERROR != glerr0 ) {
System.err.println("Info: GLDrawableHelper.reshape: pre-exisiting GL error 0x"+Integer.toHexString(glerr0));
- Thread.dumpStack();
+ ExceptionUtils.dumpStack(System.err);
}
}
drawable.getGL().glViewport(x, y, width, height);
diff --git a/src/jogl/classes/jogamp/opengl/GLDrawableImpl.java b/src/jogl/classes/jogamp/opengl/GLDrawableImpl.java
index 544aaf064..7cd887fee 100644
--- a/src/jogl/classes/jogamp/opengl/GLDrawableImpl.java
+++ b/src/jogl/classes/jogamp/opengl/GLDrawableImpl.java
@@ -51,6 +51,8 @@ import javax.media.opengl.GLDrawableFactory;
import javax.media.opengl.GLException;
import javax.media.opengl.GLProfile;
+import com.jogamp.common.ExceptionUtils;
+
public abstract class GLDrawableImpl implements GLDrawable {
protected static final boolean DEBUG = GLDrawableFactoryImpl.DEBUG;
@@ -176,7 +178,7 @@ public abstract class GLDrawableImpl implements GLDrawable {
final boolean isProxySurface = surface instanceof ProxySurface;
if(DEBUG) {
System.err.println(getThreadName() + ": setRealized: drawable "+getClass().getSimpleName()+", surface "+surface.getClass().getSimpleName()+", isProxySurface "+isProxySurface+": "+realized+" -> "+realizedArg);
- Thread.dumpStack();
+ ExceptionUtils.dumpStack(System.err);
}
final AbstractGraphicsDevice aDevice = surface.getGraphicsConfiguration().getScreen().getDevice();
if(realizedArg) {
diff --git a/src/jogl/classes/jogamp/opengl/GLFBODrawableImpl.java b/src/jogl/classes/jogamp/opengl/GLFBODrawableImpl.java
index 991a351e6..579dc27dc 100644
--- a/src/jogl/classes/jogamp/opengl/GLFBODrawableImpl.java
+++ b/src/jogl/classes/jogamp/opengl/GLFBODrawableImpl.java
@@ -11,6 +11,7 @@ import javax.media.opengl.GLContext;
import javax.media.opengl.GLException;
import javax.media.opengl.GLFBODrawable;
+import com.jogamp.common.ExceptionUtils;
import com.jogamp.common.util.PropertyAccess;
import com.jogamp.common.util.VersionUtil;
import com.jogamp.nativewindow.MutableGraphicsConfiguration;
@@ -171,7 +172,7 @@ public class GLFBODrawableImpl extends GLDrawableImpl implements GLFBODrawable {
if( !initialized && !realize ) {
if( DEBUG ) {
System.err.println("GLFBODrawableImpl.initialize(): WARNING - Already unrealized!");
- Thread.dumpStack();
+ ExceptionUtils.dumpStack(System.err);
}
return; // NOP, no exception for de-init twice or no init!
}
@@ -233,7 +234,7 @@ public class GLFBODrawableImpl extends GLDrawableImpl implements GLFBODrawable {
if(DEBUG) {
System.err.println("GLFBODrawableImpl.initialize("+realize+"): "+this);
- Thread.dumpStack();
+ ExceptionUtils.dumpStack(System.err);
}
}
@@ -284,7 +285,7 @@ public class GLFBODrawableImpl extends GLDrawableImpl implements GLFBODrawable {
final boolean ctxSwitch = null != curContext && curContext != ourContext;
if(DEBUG) {
System.err.println("GLFBODrawableImpl.reset(newSamples "+newSamples+"): BEGIN - ctxSwitch "+ctxSwitch+", "+this);
- Thread.dumpStack();
+ ExceptionUtils.dumpStack(System.err);
}
Throwable tFBO = null;
Throwable tGL = null;
diff --git a/src/jogl/classes/jogamp/opengl/openal/av/ALAudioSink.java b/src/jogl/classes/jogamp/opengl/openal/av/ALAudioSink.java
index 003b9148e..562d4883d 100644
--- a/src/jogl/classes/jogamp/opengl/openal/av/ALAudioSink.java
+++ b/src/jogl/classes/jogamp/opengl/openal/av/ALAudioSink.java
@@ -33,6 +33,7 @@ import java.util.Arrays;
import jogamp.opengl.Debug;
+import com.jogamp.common.ExceptionUtils;
import com.jogamp.common.util.LFRingbuffer;
import com.jogamp.common.util.PropertyAccess;
import com.jogamp.common.util.Ringbuffer;
@@ -262,7 +263,7 @@ public class ALAudioSink implements AudioSink {
if( ALCConstants.ALC_NO_ERROR != alcErr ) {
final String err = getThreadName()+": ALCError "+toHexString(alcErr)+" while makeCurrent. "+this;
System.err.println(err);
- Thread.dumpStack();
+ ExceptionUtils.dumpStack(System.err);
lock.unlock();
throw new RuntimeException(err);
}
@@ -270,7 +271,7 @@ public class ALAudioSink implements AudioSink {
if( ALCConstants.ALC_NO_ERROR != alErr ) {
if( DEBUG ) {
System.err.println(getThreadName()+": Prev - ALError "+toHexString(alErr)+" @ makeCurrent. "+this);
- Thread.dumpStack();
+ ExceptionUtils.dumpStack(System.err);
}
}
}
@@ -290,8 +291,7 @@ public class ALAudioSink implements AudioSink {
alc.alcDestroyContext(context);
} catch (final Throwable t) {
if( DEBUG ) {
- System.err.println("Caught "+t.getClass().getName()+": "+t.getMessage());
- t.printStackTrace();
+ ExceptionUtils.dumpThrowable("", t);
}
}
context = null;
@@ -652,7 +652,7 @@ public class ALAudioSink implements AudioSink {
alBufferBytesQueued = 0;
if(DEBUG_TRACE) {
System.err.println("<< _FLUSH_ [al "+val[0]+", err "+toHexString(alErr)+"] <- "+shortString()+" @ "+getThreadName());
- Thread.dumpStack();
+ ExceptionUtils.dumpStack(System.err);
}
}
diff --git a/src/jogl/classes/jogamp/opengl/windows/wgl/WindowsWGLGraphicsConfiguration.java b/src/jogl/classes/jogamp/opengl/windows/wgl/WindowsWGLGraphicsConfiguration.java
index 5785f8041..c29972fca 100644
--- a/src/jogl/classes/jogamp/opengl/windows/wgl/WindowsWGLGraphicsConfiguration.java
+++ b/src/jogl/classes/jogamp/opengl/windows/wgl/WindowsWGLGraphicsConfiguration.java
@@ -48,6 +48,7 @@ import javax.media.opengl.GLDrawableFactory;
import javax.media.opengl.GLException;
import javax.media.opengl.GLProfile;
+import com.jogamp.common.ExceptionUtils;
import com.jogamp.common.nio.Buffers;
import com.jogamp.nativewindow.MutableGraphicsConfiguration;
import com.jogamp.opengl.GLRendererQuirks;
@@ -281,7 +282,7 @@ public class WindowsWGLGraphicsConfiguration extends MutableGraphicsConfiguratio
System.err.println("GetPixelFormatAttribivARB: Failed - HDC 0x" + Long.toHexString(hdc) +
", value "+iresults.get(0)+
", LastError: " + GDI.GetLastError());
- Thread.dumpStack();
+ ExceptionUtils.dumpStack(System.err);
}
return 0;
}
@@ -290,7 +291,7 @@ public class WindowsWGLGraphicsConfiguration extends MutableGraphicsConfiguratio
if(DEBUG) {
System.err.println("GetPixelFormatAttribivARB: No formats - HDC 0x" + Long.toHexString(hdc) +
", LastError: " + GDI.GetLastError());
- Thread.dumpStack();
+ ExceptionUtils.dumpStack(System.err);
}
}
return pfdIDCount;
@@ -351,7 +352,7 @@ public class WindowsWGLGraphicsConfiguration extends MutableGraphicsConfiguratio
iattributes, accelerationMode, null) ) {
if (DEBUG) {
System.err.println("wglChoosePixelFormatARB: GLCapabilities2AttribList failed: " + GDI.GetLastError());
- Thread.dumpStack();
+ ExceptionUtils.dumpStack(System.err);
}
return null;
}
@@ -365,7 +366,7 @@ public class WindowsWGLGraphicsConfiguration extends MutableGraphicsConfiguratio
pformatsTmp, numFormatsTmp) ) {
if (DEBUG) {
System.err.println("wglChoosePixelFormatARB: wglChoosePixelFormatARB failed: " + GDI.GetLastError());
- Thread.dumpStack();
+ ExceptionUtils.dumpStack(System.err);
}
return null;
}
diff --git a/src/jogl/classes/jogamp/opengl/windows/wgl/WindowsWGLGraphicsConfigurationFactory.java b/src/jogl/classes/jogamp/opengl/windows/wgl/WindowsWGLGraphicsConfigurationFactory.java
index ea9b86712..5d2df4784 100644
--- a/src/jogl/classes/jogamp/opengl/windows/wgl/WindowsWGLGraphicsConfigurationFactory.java
+++ b/src/jogl/classes/jogamp/opengl/windows/wgl/WindowsWGLGraphicsConfigurationFactory.java
@@ -50,6 +50,7 @@ import javax.media.opengl.GLDrawableFactory;
import javax.media.opengl.GLException;
import javax.media.opengl.GLProfile;
+import com.jogamp.common.ExceptionUtils;
import com.jogamp.common.nio.Buffers;
import com.jogamp.opengl.GLRendererQuirks;
@@ -417,7 +418,7 @@ public class WindowsWGLGraphicsConfigurationFactory extends GLGraphicsConfigurat
if (null == pformats) {
if (DEBUG) {
System.err.println("updateGraphicsConfigurationARB: failed, return false");
- Thread.dumpStack();
+ ExceptionUtils.dumpStack(System.err);
}
return false;
}
@@ -431,7 +432,7 @@ public class WindowsWGLGraphicsConfigurationFactory extends GLGraphicsConfigurat
if( null == availableCaps || 0 == availableCaps.size() ) {
if (DEBUG) {
System.err.println("updateGraphicsConfigurationARB: wglARBPFIDs2GLCapabilities failed with " + pformats.length + " pfd ids");
- Thread.dumpStack();
+ ExceptionUtils.dumpStack(System.err);
}
return false;
}
@@ -453,7 +454,7 @@ public class WindowsWGLGraphicsConfigurationFactory extends GLGraphicsConfigurat
}
if ( 0 > chosenIndex ) {
if (DEBUG) {
- Thread.dumpStack();
+ ExceptionUtils.dumpStack(System.err);
}
return false;
}
@@ -603,7 +604,7 @@ public class WindowsWGLGraphicsConfigurationFactory extends GLGraphicsConfigurat
if ( 0 > chosenIndex ) {
if (DEBUG) {
System.err.println("updateGraphicsConfigurationGDI: failed, return false");
- Thread.dumpStack();
+ ExceptionUtils.dumpStack(System.err);
}
return false;
}
diff --git a/src/jogl/classes/jogamp/opengl/x11/glx/X11GLXContext.java b/src/jogl/classes/jogamp/opengl/x11/glx/X11GLXContext.java
index 9631dbb5b..5f6960911 100644
--- a/src/jogl/classes/jogamp/opengl/x11/glx/X11GLXContext.java
+++ b/src/jogl/classes/jogamp/opengl/x11/glx/X11GLXContext.java
@@ -59,6 +59,7 @@ import jogamp.opengl.GLContextImpl;
import jogamp.opengl.GLDrawableImpl;
import jogamp.opengl.GLXExtensions;
+import com.jogamp.common.ExceptionUtils;
import com.jogamp.common.nio.Buffers;
import com.jogamp.common.util.VersionNumber;
import com.jogamp.gluegen.runtime.ProcAddressTable;
@@ -258,8 +259,8 @@ public class X11GLXContext extends GLContextImpl {
ctx = _glXExt.glXCreateContextAttribsARB(display, config.getFBConfig(), share, direct, attribs);
} catch (final RuntimeException re) {
if(DEBUG) {
- final Throwable t = new Throwable(getThreadName()+": Info: X11GLXContext.createContextARBImpl glXCreateContextAttribsARB failed with "+getGLVersion(major, minor, ctp, "@creation"), re);
- t.printStackTrace();
+ System.err.println(getThreadName()+": Info: X11GLXContext.createContextARBImpl glXCreateContextAttribsARB failed with "+getGLVersion(major, minor, ctp, "@creation"));
+ ExceptionUtils.dumpThrowable("", re);
}
}
diff --git a/src/jogl/classes/jogamp/opengl/x11/glx/X11GLXDrawableFactory.java b/src/jogl/classes/jogamp/opengl/x11/glx/X11GLXDrawableFactory.java
index 60e4438d0..65cb3c31d 100644
--- a/src/jogl/classes/jogamp/opengl/x11/glx/X11GLXDrawableFactory.java
+++ b/src/jogl/classes/jogamp/opengl/x11/glx/X11GLXDrawableFactory.java
@@ -72,6 +72,7 @@ import jogamp.opengl.GLDynamicLookupHelper;
import jogamp.opengl.GLGraphicsConfigurationUtil;
import jogamp.opengl.SharedResourceRunner;
+import com.jogamp.common.ExceptionUtils;
import com.jogamp.common.nio.Buffers;
import com.jogamp.common.util.VersionNumber;
import com.jogamp.nativewindow.x11.X11GraphicsDevice;
@@ -329,7 +330,7 @@ public class X11GLXDrawableFactory extends GLDrawableFactoryImpl {
System.err.println("Screen : " + sr.screen);
System.err.println("Drawable: " + sr.drawable);
System.err.println("CTX : " + sr.context);
- Thread.dumpStack();
+ ExceptionUtils.dumpStack(System.err);
}
if (null != sr.context) {
diff --git a/src/jogl/classes/jogamp/opengl/x11/glx/X11GLXGraphicsConfigurationFactory.java b/src/jogl/classes/jogamp/opengl/x11/glx/X11GLXGraphicsConfigurationFactory.java
index 44479acc0..caa336d5a 100644
--- a/src/jogl/classes/jogamp/opengl/x11/glx/X11GLXGraphicsConfigurationFactory.java
+++ b/src/jogl/classes/jogamp/opengl/x11/glx/X11GLXGraphicsConfigurationFactory.java
@@ -49,6 +49,7 @@ import javax.media.opengl.GLDrawableFactory;
import javax.media.opengl.GLException;
import javax.media.opengl.GLProfile;
+import com.jogamp.common.ExceptionUtils;
import com.jogamp.common.nio.Buffers;
import com.jogamp.common.nio.PointerBuffer;
import com.jogamp.nativewindow.x11.X11GraphicsDevice;
@@ -375,7 +376,7 @@ public class X11GLXGraphicsConfigurationFactory extends GLGraphicsConfigurationF
if ( 0 > chosenIndex ) {
if (DEBUG) {
System.err.println("X11GLXGraphicsConfiguration.chooseGraphicsConfigurationFBConfig: failed, return null");
- Thread.dumpStack();
+ ExceptionUtils.dumpStack(System.err);
}
return null;
}
@@ -472,7 +473,7 @@ public class X11GLXGraphicsConfigurationFactory extends GLGraphicsConfigurationF
if ( 0 > chosenIndex ) {
if (DEBUG) {
System.err.println("X11GLXGraphicsConfiguration.chooseGraphicsConfigurationXVisual: failed, return null");
- Thread.dumpStack();
+ ExceptionUtils.dumpStack(System.err);
}
return null;
}
diff --git a/src/nativewindow/classes/com/jogamp/nativewindow/awt/JAWTWindow.java b/src/nativewindow/classes/com/jogamp/nativewindow/awt/JAWTWindow.java
index 6498ebd1e..32e4add75 100644
--- a/src/nativewindow/classes/com/jogamp/nativewindow/awt/JAWTWindow.java
+++ b/src/nativewindow/classes/com/jogamp/nativewindow/awt/JAWTWindow.java
@@ -37,6 +37,7 @@
package com.jogamp.nativewindow.awt;
+import com.jogamp.common.ExceptionUtils;
import com.jogamp.common.os.Platform;
import com.jogamp.common.util.awt.AWTEDTExecutor;
import com.jogamp.common.util.locks.LockFactory;
@@ -558,7 +559,7 @@ public abstract class JAWTWindow implements NativeWindow, OffscreenLayerSurface,
surfaceLock.unlock();
if(DEBUG) {
System.err.println("JAWTWindow: Can't lock surface, component peer n/a. Component displayable "+component.isDisplayable()+", "+component);
- Thread.dumpStack();
+ ExceptionUtils.dumpStack(System.err);
}
} else {
determineIfApplet();
@@ -765,7 +766,7 @@ public abstract class JAWTWindow implements NativeWindow, OffscreenLayerSurface,
// avoid deadlock ..
if(DEBUG) {
System.err.println("Warning: JAWT Lock hold, but not the AWT tree lock: "+this);
- Thread.dumpStack();
+ ExceptionUtils.dumpStack(System.err);
}
if( null == storage ) {
storage = new Point();
@@ -788,7 +789,7 @@ public abstract class JAWTWindow implements NativeWindow, OffscreenLayerSurface,
if(LOCK_SURFACE_NOT_READY == lockRes) {
if(DEBUG) {
System.err.println("Warning: JAWT Lock couldn't be acquired: "+this);
- Thread.dumpStack();
+ ExceptionUtils.dumpStack(System.err);
}
return null;
}
diff --git a/src/nativewindow/classes/javax/media/nativewindow/GraphicsConfigurationFactory.java b/src/nativewindow/classes/javax/media/nativewindow/GraphicsConfigurationFactory.java
index 3f8113baa..c73f544b0 100644
--- a/src/nativewindow/classes/javax/media/nativewindow/GraphicsConfigurationFactory.java
+++ b/src/nativewindow/classes/javax/media/nativewindow/GraphicsConfigurationFactory.java
@@ -33,7 +33,9 @@
package javax.media.nativewindow;
+import com.jogamp.common.ExceptionUtils;
import com.jogamp.common.util.ReflectionUtil;
+
import jogamp.nativewindow.Debug;
import jogamp.nativewindow.DefaultGraphicsConfigurationFactoryImpl;
@@ -226,7 +228,7 @@ public abstract class GraphicsConfigurationFactory {
throw new IllegalArgumentException("Given capabilities class must implement CapabilitiesImmutable");
}
if(DEBUG) {
- Thread.dumpStack();
+ ExceptionUtils.dumpStack(System.err);
System.err.println("GraphicsConfigurationFactory.getFactory: "+deviceType.getName()+", "+capabilitiesType.getName());
dumpFactories();
}
diff --git a/src/nativewindow/classes/jogamp/nativewindow/SharedResourceToolkitLock.java b/src/nativewindow/classes/jogamp/nativewindow/SharedResourceToolkitLock.java
index 881fd56a6..b187921e4 100644
--- a/src/nativewindow/classes/jogamp/nativewindow/SharedResourceToolkitLock.java
+++ b/src/nativewindow/classes/jogamp/nativewindow/SharedResourceToolkitLock.java
@@ -33,6 +33,7 @@ import java.util.concurrent.atomic.AtomicInteger;
import javax.media.nativewindow.ToolkitLock;
+import com.jogamp.common.ExceptionUtils;
import com.jogamp.common.util.LongObjectHashMap;
import com.jogamp.common.util.locks.LockFactory;
import com.jogamp.common.util.locks.RecursiveLock;
@@ -63,7 +64,7 @@ public class SharedResourceToolkitLock implements ToolkitLock {
if(DEBUG || verbose || handle2Lock.size() > 0 ) {
System.err.println("SharedResourceToolkitLock: Shutdown (open: "+handle2Lock.size()+")");
if(DEBUG) {
- Thread.dumpStack();
+ ExceptionUtils.dumpStack(System.err);
}
if( handle2Lock.size() > 0) {
dumpOpenDisplayConnections();
diff --git a/src/nativewindow/classes/jogamp/nativewindow/windows/GDIUtil.java b/src/nativewindow/classes/jogamp/nativewindow/windows/GDIUtil.java
index c409b6a39..b3cd977d4 100644
--- a/src/nativewindow/classes/jogamp/nativewindow/windows/GDIUtil.java
+++ b/src/nativewindow/classes/jogamp/nativewindow/windows/GDIUtil.java
@@ -31,6 +31,8 @@ import javax.media.nativewindow.util.Point;
import javax.media.nativewindow.NativeWindowException;
import javax.media.nativewindow.NativeWindowFactory;
+import com.jogamp.common.ExceptionUtils;
+
import jogamp.nativewindow.NWJNILibLoader;
import jogamp.nativewindow.Debug;
import jogamp.nativewindow.ToolkitProperties;
@@ -132,7 +134,7 @@ public class GDIUtil implements ToolkitProperties {
SetProcessThreadsAffinityMask0(affinityMask, verbose);
}
- private static final void dumpStack() { Thread.dumpStack(); } // Callback for JNI
+ private static final void dumpStack() { ExceptionUtils.dumpStack(System.err); } // Callback for JNI
/** Creates WNDCLASSEX instance */
static native boolean CreateWindowClass0(long hInstance, String clazzName, long wndProc, long iconSmallHandle, long iconBigHandle);
diff --git a/src/nativewindow/classes/jogamp/nativewindow/x11/X11Util.java b/src/nativewindow/classes/jogamp/nativewindow/x11/X11Util.java
index 2414248b4..786be7cd7 100644
--- a/src/nativewindow/classes/jogamp/nativewindow/x11/X11Util.java
+++ b/src/nativewindow/classes/jogamp/nativewindow/x11/X11Util.java
@@ -45,6 +45,7 @@ import jogamp.nativewindow.Debug;
import jogamp.nativewindow.NWJNILibLoader;
import jogamp.nativewindow.ToolkitProperties;
+import com.jogamp.common.ExceptionUtils;
import com.jogamp.common.util.LongObjectHashMap;
import com.jogamp.common.util.PropertyAccess;
import com.jogamp.nativewindow.x11.X11GraphicsDevice;
@@ -196,7 +197,7 @@ public class X11Util implements ToolkitProperties {
", pending (open in creation order): "+pendingDisplayList.size()+
")");
if(DEBUG) {
- Thread.dumpStack();
+ ExceptionUtils.dumpStack(System.err);
}
if( openDisplayList.size() > 0) {
X11Util.dumpOpenDisplayConnections();
@@ -615,7 +616,7 @@ public class X11Util implements ToolkitProperties {
}
private static final String getCurrentThreadName() { return Thread.currentThread().getName(); } // Callback for JNI
- private static final void dumpStack() { Thread.dumpStack(); } // Callback for JNI
+ private static final void dumpStack() { ExceptionUtils.dumpStack(System.err); } // Callback for JNI
private static native boolean initialize0(boolean debug);
private static native void shutdown0();
diff --git a/src/newt/classes/com/jogamp/newt/awt/NewtCanvasAWT.java b/src/newt/classes/com/jogamp/newt/awt/NewtCanvasAWT.java
index c470f6840..e890bc640 100644
--- a/src/newt/classes/com/jogamp/newt/awt/NewtCanvasAWT.java
+++ b/src/newt/classes/com/jogamp/newt/awt/NewtCanvasAWT.java
@@ -69,6 +69,7 @@ import jogamp.newt.awt.event.AWTParentWindowAdapter;
import jogamp.newt.driver.DriverClearFocus;
import jogamp.opengl.awt.AWTTilePainter;
+import com.jogamp.common.ExceptionUtils;
import com.jogamp.common.util.awt.AWTEDTExecutor;
import com.jogamp.nativewindow.awt.AWTPrintLifecycle;
import com.jogamp.nativewindow.awt.AWTWindowClosingProtocol;
@@ -469,7 +470,7 @@ public class NewtCanvasAWT extends java.awt.Canvas implements WindowClosingProto
determineIfApplet();
if(DEBUG) {
System.err.println("NewtCanvasAWT.addNotify.0 - isApplet "+isApplet+", addedOnAWTEDT "+EventQueue.isDispatchThread()+" @ "+currentThreadName());
- Thread.dumpStack();
+ ExceptionUtils.dumpStack(System.err);
}
jawtWindow = NewtFactoryAWT.getNativeWindow(NewtCanvasAWT.this, null != newtChild ? newtChild.getRequestedCapabilities() : null);
jawtWindow.setShallUseOffscreenLayer(shallUseOffscreenLayer);
@@ -493,7 +494,7 @@ public class NewtCanvasAWT extends java.awt.Canvas implements WindowClosingProto
} else {
if(DEBUG) {
System.err.println("NewtCanvasAWT.removeNotify.0 - isApplet "+isApplet+" @ "+currentThreadName());
- Thread.dumpStack();
+ ExceptionUtils.dumpStack(System.err);
}
componentAdded = false; // Bug 910
awtWindowClosingProtocol.removeClosingListener();
@@ -518,7 +519,7 @@ public class NewtCanvasAWT extends java.awt.Canvas implements WindowClosingProto
public final void destroy() {
if(DEBUG) {
System.err.println("NewtCanvasAWT.destroy() @ "+currentThreadName());
- Thread.dumpStack();
+ ExceptionUtils.dumpStack(System.err);
}
AWTEDTExecutor.singleton.invoke(true, new Runnable() {
@Override
diff --git a/src/newt/classes/jogamp/newt/DefaultEDTUtil.java b/src/newt/classes/jogamp/newt/DefaultEDTUtil.java
index ef8ea66b6..4f2087637 100644
--- a/src/newt/classes/jogamp/newt/DefaultEDTUtil.java
+++ b/src/newt/classes/jogamp/newt/DefaultEDTUtil.java
@@ -43,6 +43,7 @@ import javax.media.nativewindow.NativeWindowException;
import jogamp.common.util.locks.LockDebugUtil;
+import com.jogamp.common.ExceptionUtils;
import com.jogamp.common.util.RunnableTask;
import com.jogamp.common.util.locks.Lock;
import com.jogamp.newt.util.EDTUtil;
@@ -144,7 +145,7 @@ public class DefaultEDTUtil implements EDTUtil {
public final boolean invokeStop(final boolean wait, final Runnable task) {
if(DEBUG) {
System.err.println(Thread.currentThread()+": Default-EDT.invokeStop wait "+wait);
- Thread.dumpStack();
+ ExceptionUtils.dumpStack(System.err);
}
return invokeImpl(wait, task, true /* stop */, false /* provokeError */);
}
@@ -152,7 +153,7 @@ public class DefaultEDTUtil implements EDTUtil {
public final boolean invokeAndWaitError(final Runnable task) {
if(DEBUG) {
System.err.println(Thread.currentThread()+": Default-EDT.invokeAndWaitError");
- Thread.dumpStack();
+ ExceptionUtils.dumpStack(System.err);
}
return invokeImpl(true /* wait */, task, false /* stop */, true /* provokeError */);
}
@@ -177,7 +178,7 @@ public class DefaultEDTUtil implements EDTUtil {
// drop task ..
System.err.println(Thread.currentThread()+": Warning: Default-EDT about (1) to stop, won't enqueue new task: "+edt);
if(DEBUG) {
- Thread.dumpStack();
+ ExceptionUtils.dumpStack(System.err);
}
return false;
}
@@ -191,7 +192,7 @@ public class DefaultEDTUtil implements EDTUtil {
if( edt.tasks.size()>0 ) {
System.err.println(Thread.currentThread()+": Warning: Default-EDT about (2) to stop, task executed. Remaining tasks: "+edt.tasks.size()+" - "+edt);
if(DEBUG) {
- Thread.dumpStack();
+ ExceptionUtils.dumpStack(System.err);
}
}
}
@@ -204,7 +205,7 @@ public class DefaultEDTUtil implements EDTUtil {
System.err.println(Thread.currentThread()+": Warning: Default-EDT is not running, dropping task. NEDT "+edt);
}
if(DEBUG) {
- Thread.dumpStack();
+ ExceptionUtils.dumpStack(System.err);
}
}
return false;
diff --git a/src/newt/classes/jogamp/newt/DisplayImpl.java b/src/newt/classes/jogamp/newt/DisplayImpl.java
index 84ce45238..5f67c95c1 100644
--- a/src/newt/classes/jogamp/newt/DisplayImpl.java
+++ b/src/newt/classes/jogamp/newt/DisplayImpl.java
@@ -34,6 +34,7 @@
package jogamp.newt;
+import com.jogamp.common.ExceptionUtils;
import com.jogamp.common.nio.Buffers;
import com.jogamp.common.util.IOUtil;
import com.jogamp.common.util.ReflectionUtil;
@@ -398,7 +399,7 @@ public abstract class DisplayImpl extends Display {
if( DEBUG ) {
if ( !res ) {
System.err.println("Warning: invokeStop() failed");
- Thread.dumpStack();
+ ExceptionUtils.dumpStack(System.err);
}
}
}
@@ -416,7 +417,7 @@ public abstract class DisplayImpl extends Display {
if( !_edtUtil.isRunning() ) { // // volatile dbl-checked-locking OK
if( DEBUG ) {
System.err.println("Info: EDT start "+Thread.currentThread().getName()+", "+this);
- Thread.dumpStack();
+ ExceptionUtils.dumpStack(System.err);
}
_edtUtil.start();
}
@@ -428,7 +429,7 @@ public abstract class DisplayImpl extends Display {
}
if( DEBUG ) {
System.err.println("Warning: invoke(wait "+wait+", ..) on EDT failed .. invoke on current thread "+Thread.currentThread().getName());
- Thread.dumpStack();
+ ExceptionUtils.dumpStack(System.err);
}
}
task.run();
@@ -685,7 +686,7 @@ public abstract class DisplayImpl extends Display {
if(null == event) {
// Ooops ?
System.err.println("Warning: event of eventTask is NULL");
- Thread.dumpStack();
+ ExceptionUtils.dumpStack(System.err);
return;
}
dispatchMessage(event);
@@ -739,7 +740,7 @@ public abstract class DisplayImpl extends Display {
// oops .. we are already dead
if(DEBUG) {
System.err.println("Warning: EDT already stopped: wait:="+wait+", "+e);
- Thread.dumpStack();
+ ExceptionUtils.dumpStack(System.err);
}
return;
}
diff --git a/src/newt/classes/jogamp/newt/WindowImpl.java b/src/newt/classes/jogamp/newt/WindowImpl.java
index b62628962..0c4dcd192 100644
--- a/src/newt/classes/jogamp/newt/WindowImpl.java
+++ b/src/newt/classes/jogamp/newt/WindowImpl.java
@@ -63,6 +63,7 @@ import javax.media.nativewindow.util.RectangleImmutable;
import jogamp.nativewindow.SurfaceScaleUtils;
import jogamp.nativewindow.SurfaceUpdatedHelper;
+import com.jogamp.common.ExceptionUtils;
import com.jogamp.common.util.ArrayHashSet;
import com.jogamp.common.util.IntBitfield;
import com.jogamp.common.util.PropertyAccess;
@@ -1992,7 +1993,7 @@ public abstract class WindowImpl implements Window, NEWTEventConsumer
protected final void definePosition(final int x, final int y) {
if(DEBUG_IMPLEMENTATION) {
System.err.println("definePosition: "+this.x+"/"+this.y+" -> "+x+"/"+y);
- // Thread.dumpStack();
+ // ExceptionUtils.dumpStackTrace(System.err);
}
autoPosition = false;
this.x = x; this.y = y;
@@ -2008,7 +2009,7 @@ public abstract class WindowImpl implements Window, NEWTEventConsumer
if(DEBUG_IMPLEMENTATION) {
System.err.println("defineSize: win["+this.winWidth+"x"+this.winHeight+" -> "+winWidth+"x"+winHeight+
"], pixel["+this.pixWidth+"x"+this.pixHeight+" -> "+pixWidth+"x"+pixHeight+"]");
- // Thread.dumpStack();
+ // ExceptionUtils.dumpStackTrace(System.err);
}
this.winWidth = winWidth; this.winHeight = winHeight;
this.pixWidth = pixWidth; this.pixHeight = pixHeight;
@@ -2637,7 +2638,7 @@ public abstract class WindowImpl implements Window, NEWTEventConsumer
final boolean discardTO = QUEUED_EVENT_TO <= System.currentTimeMillis()-e.getWhen();
if(DEBUG_IMPLEMENTATION) {
System.err.println("Window.consumeEvent: REPAINT "+Thread.currentThread().getName()+" - queued "+e+", discard-to "+discardTO);
- // Thread.dumpStack();
+ // ExceptionUtils.dumpStackTrace(System.err);
}
return discardTO; // discardTO:=true -> consumed
}
@@ -2653,7 +2654,7 @@ public abstract class WindowImpl implements Window, NEWTEventConsumer
final boolean discardTO = QUEUED_EVENT_TO <= System.currentTimeMillis()-e.getWhen();
if(DEBUG_IMPLEMENTATION) {
System.err.println("Window.consumeEvent: RESIZED "+Thread.currentThread().getName()+" - queued "+e+", discard-to "+discardTO);
- // Thread.dumpStack();
+ // ExceptionUtils.dumpStackTrace(System.err);
}
return discardTO; // discardTO:=true -> consumed
}
@@ -3745,7 +3746,7 @@ public abstract class WindowImpl implements Window, NEWTEventConsumer
throw new NativeWindowException(msg);
} else if (DEBUG_IMPLEMENTATION) {
System.err.println(msg);
- Thread.dumpStack();
+ ExceptionUtils.dumpStack(System.err);
}
return -1;
} else if( 0 < remaining ){
@@ -3791,7 +3792,7 @@ public abstract class WindowImpl implements Window, NEWTEventConsumer
throw new NativeWindowException(msg);
} else if (DEBUG_IMPLEMENTATION) {
System.err.println(msg);
- Thread.dumpStack();
+ ExceptionUtils.dumpStack(System.err);
}
return false;
} else {
@@ -3851,7 +3852,7 @@ public abstract class WindowImpl implements Window, NEWTEventConsumer
} else {
System.err.println("Auto position not reached within timeout, has "+getX()+"/"+getY()+", autoPosition "+autoPosition+", remaining "+remaining);
}
- Thread.dumpStack();
+ ExceptionUtils.dumpStack(System.err);
}
}
return ok;
@@ -3892,7 +3893,7 @@ public abstract class WindowImpl implements Window, NEWTEventConsumer
final WindowClosingMode mode = force ? WindowClosingMode.DISPOSE_ON_CLOSE : defMode;
if(DEBUG_IMPLEMENTATION) {
System.err.println("Window.windowDestroyNotify(isNativeValid: "+isNativeValid()+", force: "+force+", mode "+defMode+" -> "+mode+") "+getThreadName()+": "+this);
- // Thread.dumpStack();
+ // ExceptionUtils.dumpStackTrace(System.err);
}
final boolean destroyed;
diff --git a/src/newt/classes/jogamp/newt/driver/android/WindowDriver.java b/src/newt/classes/jogamp/newt/driver/android/WindowDriver.java
index 786ebb31c..6179626d4 100644
--- a/src/newt/classes/jogamp/newt/driver/android/WindowDriver.java
+++ b/src/newt/classes/jogamp/newt/driver/android/WindowDriver.java
@@ -47,6 +47,7 @@ import javax.media.opengl.GLCapabilitiesChooser;
import javax.media.opengl.GLCapabilitiesImmutable;
import javax.media.opengl.GLException;
+import com.jogamp.common.ExceptionUtils;
import com.jogamp.common.os.AndroidVersion;
import com.jogamp.nativewindow.egl.EGLGraphicsDevice;
import com.jogamp.newt.MonitorDevice;
@@ -282,7 +283,7 @@ public class WindowDriver extends jogamp.newt.WindowImpl implements Callback2 {
protected final boolean canCreateNativeImpl() {
Log.d(MD.TAG, "canCreateNativeImpl.0: surfaceHandle ready "+(0!=surfaceHandle)+" - on thread "+Thread.currentThread().getName());
if(Window.DEBUG_IMPLEMENTATION) {
- Thread.dumpStack();
+ ExceptionUtils.dumpStack(System.err);
}
if( isFullscreen() ) {
@@ -386,7 +387,7 @@ public class WindowDriver extends jogamp.newt.WindowImpl implements Callback2 {
"], pixel["+getSurfaceWidth()+"x"+getSurfaceHeight()+"],"+
" - on thread "+Thread.currentThread().getName());
if(Window.DEBUG_IMPLEMENTATION) {
- Thread.dumpStack();
+ ExceptionUtils.dumpStack(System.err);
}
setupInputListener(false);
@@ -557,7 +558,7 @@ public class WindowDriver extends jogamp.newt.WindowImpl implements Callback2 {
public final void surfaceChanged(final SurfaceHolder aHolder, final int aFormat, final int aWidth, final int aHeight) {
Log.d(MD.TAG, "surfaceChanged: f "+nativeFormat+" -> "+aFormat+", "+aWidth+"x"+aHeight+", current surfaceHandle: 0x"+Long.toHexString(surfaceHandle)+" - on thread "+Thread.currentThread().getName());
if(Window.DEBUG_IMPLEMENTATION) {
- Thread.dumpStack();
+ ExceptionUtils.dumpStack(System.err);
}
if(0!=surfaceHandle && androidFormat != aFormat ) {
// re-create
@@ -611,7 +612,7 @@ public class WindowDriver extends jogamp.newt.WindowImpl implements Callback2 {
public final void surfaceDestroyed(final SurfaceHolder holder) {
Log.d(MD.TAG, "surfaceDestroyed - on thread "+Thread.currentThread().getName());
windowDestroyNotify(true); // actually too late .. however ..
- Thread.dumpStack();
+ ExceptionUtils.dumpStack(System.err);
}
@Override
diff --git a/src/newt/classes/jogamp/newt/driver/awt/AWTEDTUtil.java b/src/newt/classes/jogamp/newt/driver/awt/AWTEDTUtil.java
index 39e68e48c..090fa1653 100644
--- a/src/newt/classes/jogamp/newt/driver/awt/AWTEDTUtil.java
+++ b/src/newt/classes/jogamp/newt/driver/awt/AWTEDTUtil.java
@@ -32,6 +32,7 @@ import java.awt.EventQueue;
import javax.media.nativewindow.NativeWindowException;
+import com.jogamp.common.ExceptionUtils;
import com.jogamp.common.util.RunnableTask;
import com.jogamp.common.util.awt.AWTEDTExecutor;
import com.jogamp.newt.util.EDTUtil;
@@ -140,7 +141,7 @@ public class AWTEDTUtil implements EDTUtil {
// drop task ..
System.err.println(Thread.currentThread()+": Warning: AWT-EDT about (1) to stop, won't enqueue new task: "+nedt);
if(DEBUG) {
- Thread.dumpStack();
+ ExceptionUtils.dumpStack(System.err);
}
return false;
}
@@ -161,7 +162,7 @@ public class AWTEDTUtil implements EDTUtil {
System.err.println(Thread.currentThread()+": Warning: AWT-EDT is not running, dropping task. NEDT "+nedt);
}
if(DEBUG) {
- Thread.dumpStack();
+ ExceptionUtils.dumpStack(System.err);
}
}
return false;
diff --git a/src/newt/classes/jogamp/newt/driver/x11/WindowDriver.java b/src/newt/classes/jogamp/newt/driver/x11/WindowDriver.java
index afa9786e2..4b8e71571 100644
--- a/src/newt/classes/jogamp/newt/driver/x11/WindowDriver.java
+++ b/src/newt/classes/jogamp/newt/driver/x11/WindowDriver.java
@@ -50,6 +50,7 @@ import javax.media.nativewindow.util.Insets;
import javax.media.nativewindow.util.InsetsImmutable;
import javax.media.nativewindow.util.Point;
+import com.jogamp.common.ExceptionUtils;
import com.jogamp.common.nio.Buffers;
import com.jogamp.nativewindow.x11.X11GraphicsDevice;
import com.jogamp.nativewindow.x11.X11GraphicsScreen;
@@ -424,7 +425,7 @@ public class WindowDriver extends WindowImpl {
// Internals only
//
private static final String getCurrentThreadName() { return Thread.currentThread().getName(); } // Callback for JNI
- private static final void dumpStack() { Thread.dumpStack(); } // Callback for JNI
+ private static final void dumpStack() { ExceptionUtils.dumpStack(System.err); } // Callback for JNI
private final <T> T runWithLockedDisplayDevice(final DisplayRunnable<T> action) {
return ((DisplayDriver) getScreen().getDisplay()).runWithLockedDisplayDevice(action);
diff --git a/src/newt/classes/jogamp/newt/swt/SWTEDTUtil.java b/src/newt/classes/jogamp/newt/swt/SWTEDTUtil.java
index 794e989a6..1b4b43a6e 100644
--- a/src/newt/classes/jogamp/newt/swt/SWTEDTUtil.java
+++ b/src/newt/classes/jogamp/newt/swt/SWTEDTUtil.java
@@ -31,6 +31,7 @@ import javax.media.nativewindow.NativeWindowException;
import jogamp.newt.Debug;
+import com.jogamp.common.ExceptionUtils;
import com.jogamp.common.util.RunnableTask;
import com.jogamp.newt.util.EDTUtil;
@@ -170,7 +171,7 @@ public class SWTEDTUtil implements EDTUtil {
// drop task ..
if(DEBUG) {
System.err.println(Thread.currentThread()+": Warning: SWT-EDT about (1) to stop, won't enqueue new task: "+nedt+", isRunning "+nedt.isRunning+", shouldStop "+nedt.shouldStop);
- Thread.dumpStack();
+ ExceptionUtils.dumpStack(System.err);
}
return false;
}
@@ -195,7 +196,7 @@ public class SWTEDTUtil implements EDTUtil {
System.err.println(Thread.currentThread()+": Warning: SWT-EDT is not running, dropping task. NEDT "+nedt);
}
if(DEBUG) {
- Thread.dumpStack();
+ ExceptionUtils.dumpStack(System.err);
}
}
return false;
@@ -212,7 +213,7 @@ public class SWTEDTUtil implements EDTUtil {
if( swtDisplay.isDisposed() ) {
System.err.println(Thread.currentThread()+": Warning: SWT-EDT is about (3) to stop and stopped already, dropping task. "+nedt);
if(DEBUG) {
- Thread.dumpStack();
+ ExceptionUtils.dumpStack(System.err);
}
return false;
}
diff --git a/src/test/com/jogamp/opengl/test/junit/jogl/acore/TestSharedContextNewtAWTBug523.java b/src/test/com/jogamp/opengl/test/junit/jogl/acore/TestSharedContextNewtAWTBug523.java
index d3cdf5e95..95bec26fa 100644
--- a/src/test/com/jogamp/opengl/test/junit/jogl/acore/TestSharedContextNewtAWTBug523.java
+++ b/src/test/com/jogamp/opengl/test/junit/jogl/acore/TestSharedContextNewtAWTBug523.java
@@ -72,6 +72,7 @@ import org.junit.Test;
import org.junit.FixMethodOrder;
import org.junit.runners.MethodSorters;
+import com.jogamp.common.ExceptionUtils;
import com.jogamp.common.nio.Buffers;
import com.jogamp.newt.awt.NewtCanvasAWT;
import com.jogamp.newt.opengl.GLWindow;
@@ -476,7 +477,7 @@ public class TestSharedContextNewtAWTBug523 extends UITestCase {
final String errStr = "GL-Error: "+prefix + " on obj 0x"+Integer.toHexString(obj.hashCode())+", OpenGL error: 0x" + Integer.toHexString(glError);
if( errorSet.add(errStr) ) {
System.err.println(errStr);
- Thread.dumpStack();
+ ExceptionUtils.dumpStack(System.err);
}
}
final int status = gl.glCheckFramebufferStatus(GL.GL_FRAMEBUFFER);
@@ -484,7 +485,7 @@ public class TestSharedContextNewtAWTBug523 extends UITestCase {
final String errStr = "GL-Error: "+prefix + " on obj 0x"+Integer.toHexString(obj.hashCode())+", glCheckFramebufferStatus: 0x" + Integer.toHexString(status);
if( errorSet.add(errStr) ) {
System.err.println(errStr);
- Thread.dumpStack();
+ ExceptionUtils.dumpStack(System.err);
}
}
}
diff --git a/src/test/com/jogamp/opengl/test/junit/util/AWTRobotUtil.java b/src/test/com/jogamp/opengl/test/junit/util/AWTRobotUtil.java
index 31d6b887d..c6ceab34e 100644
--- a/src/test/com/jogamp/opengl/test/junit/util/AWTRobotUtil.java
+++ b/src/test/com/jogamp/opengl/test/junit/util/AWTRobotUtil.java
@@ -46,6 +46,7 @@ import javax.media.opengl.GLDrawable;
import org.junit.Assert;
+import com.jogamp.common.ExceptionUtils;
import com.jogamp.common.util.awt.AWTEDTExecutor;
import com.jogamp.newt.event.WindowEvent;
@@ -229,7 +230,7 @@ public class AWTRobotUtil {
System.err.println("*** AWTRobotUtil.toFrontAndRequestFocus() UI failure");
System.err.println("*** window: "+window);
System.err.println("*** window.hasFocus(): "+window.hasFocus());
- Thread.dumpStack();
+ ExceptionUtils.dumpStack(System.err);
}
return success;
}
@@ -442,7 +443,7 @@ public class AWTRobotUtil {
}
System.err.println("*** gain: "+gain);
System.err.println("*** lost: "+lost);
- Thread.dumpStack();
+ ExceptionUtils.dumpStack(System.err);
}
Assert.assertTrue("Did not gain focus", hasFocus);
}