JOCL is a very thin layer around OpenCL. So everything that can go wrong when, for example, passing invalid pointers to OpenCL can equally go wrong when passing invalid Pointers to JOCL. In many cases this means that errors are hardly recoverable: In the worst case (on WinXP) the screen may freeze (and by “freeze” I mean that even the mouse pointer does not move any more). On newer Windows versions, these errors in the worst case cause the TDR-Message “The Display driver stopped responding…”. And it’s not unusual that an error in OpenCL causes the JVM to die painfully (with a hs_err*.txt message).
I assume that whether it’s possible to recover after an CL_OUT_OF_RESOURCES depends on what actually caused this error: The CL_OUT_OF_RESOURCES message seems to be some sort of “default” error message, that is returned when anything goes wrong that prevents the device from continuing to work. I’ve seen this error message in many situations. For example, as a response to writing memory outside of the bounds of a cl_mem-object. Actually, this has nothing to do with being “out of resources”, but this is what OpenCL then reports during the next kernel invocation attempt.
I could try to create some test-cases that provoke this error and do some experiments, but in any case, the behavior will depend on the exact error conditions. For example, when attempting to enqueue a kernel with a too large local memory size, it should return CL_OUT_OF_RESOURCES, but this should probably be recoverable. When the CL_OUT_OF_RESOURCES is returned due to an out-of-bounds-access, it might be un-recoverable, because writing to invalid memory locations may screw up OpenCL in a way that causes unspecified behavior anyhow.
Moreover, the exact behavior may even debend on the OS and OpenCL implementation. So at the moment, I cannot give any definite answer whether or how it is possible to recover from specific errors (or the unspecific ones like CL_OUT_OF_RESOURCES)