I am validating input data in setter method and don't want to validate it again in constructor. I wonder if calling the setter in the constructor is good idea?
Generally considered safe, with the following caveat:
the only possible trouble you can get into is if the setter (or any method you call from a constructor) is overridden in a sub class. To be absolutely safe (paranoic?), make sure that all methods called from a constructor are final.