I get an EngineClosedException when I am indexing data. My ES's health shows green

I need a little bit of help understanding this cryptic issue. While indexing data, it fails and throws this error. I have checked my elasticsearch's health but it shows me that it's running, and it's health is green. I have checked the elasticsearch logs as well, and occasionally see an OutOfMemory exception thrown for some of the slow operations, could this be the cause of the EngineClosedException? Shouldn't there be some indicator like the health goes red if some engine is closed?

You can find the error's stacktrace here: http://pastebin.com/4tgspaUK

I also have the same problem. I don't understand how ES can say that the status is green and then reject my index requests. How am I supposed to monitor the cluster? What are the possible states of a shard? How come I get STARTED in the output of _cat/shards but no info?

Here is the output of _cat/shards: http://pastebin.com/7Wj3BRBM

We had the same problem with a 1.5.1 Elasticsearch index.
But restarting the index solved the issue in our case.