I don't see any problem with that code. The parsed date is June 2nd 2011 as expected.
I think you assume that the "hcdlkjlk" should cause the date parsing to fail. However, this has never been the case. The date parsing will continue until the desired pattern has been met; anything after that is ignored.
To get the kind of date parsing you want you should switch to the "other" parse method - the one that takes a ParsePosition argument:
And for your information, setLenient only determines whether or not dates like "31/02/2012" or "31/13/2012" are allowed. If the date format is lenient, this will cause the parsed date to be March 2nd 2012 / January 31st 2013. If the date format isn't lenient parsing will fail.