After seeing the contents get lost when manually resizing a window I did add a check for contentsLost() and recreate the BufferStrategy, this was back in Oct 2004. But its really easy.
Yes I did know that BufferStrategy used VIs, but it seems a lot easier to handle just one VI thing than handling all your images that way. I guess it just seemed you meant you needed to use VIs directly, but you didnt mean that 
If I do the following, I believe its been handled, so doesnt seem too hard.
public void render()
{
// If we've lost our video memory, don't bother drawing anything
// This happens when resizing a window or deiconifying the application
if (!bufferStrategy.contentsLost())
{
Graphics2D g = (Graphics2D) bufferStrategy.getDrawGraphics();
// Draw some stuff
bufferStrategy.show();
g.dispose();
}
else //Try to recover the buffer strategy contents
{
//System.out.println("bufferStrategy, contents lost!");
baseFrame.createBufferStrategy( buffers );
bufferStrategy = baseFrame.getBufferStrategy();
if(!bufferStrategy.contentsLost())
render(); // we recovered so render stuff
}
}
I was thinking about letting it drop out of Render() after recovering, instead of calling Render() again. So I would lose a frame and avoid a possible infinite loop if for some reason I cant get a new BufferStrategy. But if that happened I would have a big problem anyway 