It's well-known that if you're delivering constructive feedback/criticism (call it what you will), that you should sandwich it between two pieces of positive feedback. Some people might say that is 'sugar coating', and taken to extremes it most certainly is. Done properly though, it's a great way for avoiding the criticism that your BF says he constantly hears - i.e. it's not what he says, but how he says it.
People who believe not sugar-coating their criticism means they're 'honest' are kidding themselves. They need only see how defensive they get when the same treatment is dished back out to them. Your BF did it right in front of you - when you finally said things honestly, he missed the message because he was busy dealing with the feeling that he'd just has 7 months of stuff being 'thrown' at him. You didn't sugar coat, and look what happened to him!