under some circumstances the BaseFragmentsBuilder genereates a StringIndexOutOfBoundsException inside the makeFragment method.
The starting offset is higher than the end offset.
I did a small patch checking the offsets and posted it over there at Stackoverflow: http://stackoverflow.com/questions/12456448/solr-highlight-bug-with-usefastvectorhighlighter
The code in 4.0 seems to be the same as in 3.6.1
Example how to reproduce the behaviour:
There is a word called "www.DAKgesundAktivBonus.de" inside the index. If you search for "dak bonus" some offset calculations went wrong.