On all others I am totally agree. I was doing it just to show what can be done, not really a final step (I should say it).
On this point, (and in other part of the code wher I put false also):
- the checkBadName is only visible in DefaultHttpDataFactory, and I fell like unuseful to push this variable into each and every Data created.
- since those "copy" methods will be called after the constructor was already called, we have the 2 following cases:
a) checkBadName was true then checking it again on the very same name (getName() is called) is not useful
b) checkBadName was false, then we must not check it (since it could break the checking rules)

So I believe that put false in "copy" methods is correct.