OK I found out the problem with the <h:message> tag and the "for" attribute. The porblem is that its calling the getClientId() method of HtmlTextInput *after* that method has already been callent by <h:inputText>.
Since the initial call marks the "forced" id as in use, subsequent calls fail because the id is already in use. This is why I did not want to implement duplicate idea checking in the component. I am planning on getting rid of this functionality alltogether until we can do it properly in the renderer. In addition to this problem, I can imagine there are other instances where getClientId() is called by other compoenents that will crash things in the same way. For now, I don't really care if the user is able to generate XHTML that violates the standard. That is not the job of our JSF components. It would be nice, but for now I plan to take out this check. It will go slightly faster and more importantly, will stop causing problems. sean
