Your options are ...
- As you say, do not "Show query results in new tabs", or close some tabs manually before the product locks up.
- Disconnect the connection before the product locks up / avoid multiple connections.
- Put an "AddVMOption -Xmx1024M" line in your sqldeveloper-Darwin.conf, where the new memory limit exceeds the 800M default value in the ide.conf file.
- Reduce the value for Tools - Preferences -> Database -> Advanced -> Sql Array Fetch Size
You're asking for a lot of resources. Eventually you'll consume them. If you want to do more, get more.
The ability to proactively monitor the JVM for memory availability and to get more as needed isn't currently feasible, but would be welcomed. Is this what you're asking for, when you call this behavior a 'bug?'
I understand the resource request is quite large and I'm fine with the limits.
Having the historical query result tab is too useful to turn off for the rare case where I need to query such a large result.
Proactive monitoring of memory and prediction of how much memory might be needed sounds like an expensive process and would likely be prone to error, so no definitely not.
What I was considering bug behavior was the seemingly unhandled out of memory error.
The message "Java heap space" is displayed, but after that point sql developer is unstable.
Any further interaction with that connection will cause sql developer to go into an unresponsive state.
Interactions on any other connection seem to work just fine, so long as this one is not used.
Currently when this error shows up I immediately save off all my files and perform a "force quit".
I would rather be able to, or automatically have, the connection terminated and all associated resources freed up so my other connections can continue on.