Well let me elaborate... The OP acquired this puppy at 5 months of age. The dog lived with her and her family - without incident - until a year ago, so 6.5 years! Then her 3 yr old son attempted to take a toy away from a 7 yr old dog - who, of course, never showed a single sign of being a resource guarder ever before (hopefully you're getting my sarcasm here) - and got nipped, but without breaking the skin at all. The OP's reaction, they tried to rehome the dog until their other dog died and then changed their mind and kept him - but notice, no mention of training, no mention of working on the issue, only thing said is, over the next 10 months he seemed to get better.
Fast forward to the second incident, what could possibly go wrong letting a 4 yr old child try to take a toy near an adult dog with a resource guarding history while near his food bowl? No way that kid could get bit right? So the dog does as expected, with the OP within 5 feet, and now is condemned as an aggressive dog. It doesn't take a huge leap of faith to have predicted this outcome. And frankly, it falls on the human in charge to make sure these kinds of situations are avoided. Now, put him down? Or now teach him?
It's not the size of the dog in the fight, it's the size of the fight in the dog. Mark Twain