In fact, McClellan wrote Lincoln on April 7th that he was possibly out-numbered. That's not even close to being correct.
View attachment 501310
He's writing that intelligence indicates that Johnston's whole army
will be arriving, not that they've arrived yet. That's why he says "I shall have the whole force of the enemy on my hands" not "I have the whole force of the enemy on my hands"; note that McClellan himself hadn't had all the units assigned to him at the time of this message arrive yet.
In fact this
is an incorrect assessment on his part, because Johnston left units in central Virginia - those being what would become the core of AP Hill's division, along of course with Jackson's force from the Valley (and that of Ewell, at Culpeper). Since those units did not arrive at Yorktown, the "whole force of the enemy" did not arrive and he was not outnumbered at Yorktown, but there is no really solid reason why that couldn't have happened - exactly the same concentration happened in June at Richmond.
Given the ~100 regiments of all arms that were at Yorktown, plus the ~28 in Jackson and Ewell and the 4 minimum at Fredericksburg, that's about 130 regiments of all arms if all of Johnston's army had joined him at Yorktown; McClellan had about 127 regiments of all arms once all units assigned to him
at the time of this message had arrived. (Richardson and Sedgwick, 25; 3rd Corps, 43; 4th Corps, 42; Sykes, 8.5; reserve and siege artillery, 3.5; cavalry and other HQ companies, about 5)
So yes, this assessment about the future didn't pan out - but it's not fundamentally ridiculous. And on the 7th McClellan gives the actual strength
at Yorktown to Wool as about 30,000.