Class QNoNativeResourcesException

  extended by java.lang.Throwable
      extended by java.lang.Exception
          extended by java.lang.RuntimeException
              extended by com.trolltech.qt.QNoNativeResourcesException
All Implemented Interfaces:

public class QNoNativeResourcesException
extends java.lang.RuntimeException

The QNoNativeResourcesException is used to indicate that the C++ native resources of a Java object are destroyed while it is still referenced in Java.

Most Qt Jambi objects consist of a C++ part, i.e., native C++ resources, and a Java peer that wraps the public functions of the native objects. In most cases one can rely on the Java memory model and let objects be garbage collected, in which case this kind of exception will never occur (the garbage collector will only collect unreferenced memory in Java).

In some cases, the ownership of an object is transferred to C++, for instance, when QObjects are passed a parent or items are added to a QGraphicsScene. In these cases the C++ part of the object can be deleted explicitly by, for instance, using the C++ "delete" keyword. When the C++ part of the object has been deleted it can no longer be used and this exception is thrown.

If you are encountering this exception, it is likely due to one of the following reasons:

  • The object you are accessing is owned by Qt Jambi and has been destroyed.
  • The object you are accessing is an object created by Qt Jambi and then passed to you via a call to a non-final method you have overridden (e.g. an event handler.) Many such objects are temporary and you should not retain references to them.
  • You have manually called dispose() or disposeLater() on the object to delete the native resources.
  • It is possible to check if an object has a valid C++ part or not by checking that the value of nativeId() is non-null.

    See Also:
    Serialized Form

    Constructor Summary
    QNoNativeResourcesException(java.lang.String message)
    Method Summary
    Methods inherited from class java.lang.Throwable
    fillInStackTrace, getCause, getLocalizedMessage, getMessage, getStackTrace, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString
    Methods inherited from class java.lang.Object
    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait

    Constructor Detail


    public QNoNativeResourcesException(java.lang.String message)