I have a friend who has released code under the GPLv3 and CDDL licenses. I have also heard from someone else that these licenses conflict and invalidate each other. I was wondering if people had any opinion or idea of what that means for a user of this code. (Yes, I know, ask a lawyer; but I'm curious if people have any clues).
That's why it is dual licensed, in order to resolve that conflict. Someone can choose to use the code using either license. If they wish to incorporate it in to a GPLv3 project, they can choose that license, for example.
It depends which license they received when they received their copy of the code. If they received it under the GPL license, they're bound by it's terms. If they received it under CDDL, they're bound by those terms. If they've received (or can receive) it under both licenses, they can choose which license they wish to be bound by.
Dual licensing means in this case that the licensee can choose to use the software under either GPLv3 or CDDL, not GPLv3 and CDDL.
Therefore there is no license conflict issue. Oh, and no lawyer is required here, common sense should be enough really :-)
The problem with dual licensing, either with two open source licenses or with one proprietary and one open source, is the issue of re-merging downstream changes.
The other answers are correct. When you download something and it has two license you can choose which one you want to use. However, things get complicated when multiple parties who accept different licenses begin modifying the code.
Suppose Genny accepts the GPL and Cindy accepts the CDDL. If both of them make changes to their code-base and redistribute them under their rights under the license, then those changes are not compatible.
If Ozzie the Originator of the projects wants to incorporate both Genny and Cindy's improvements and re-release the whole project again under both licenses, he will have to make sure he gets copyright assignment from both parties.
The problem here is that Ozzie cannot insist that either Cindy or Genny re-release their changes under both license. -that- would be a violation of some of the terms of the GPL/CDDL.
That is why companies that pursue dual-licensing strategies are so careful about copyright assignments... it keeps them out of a royal mess. Ironically this is one of the reasons why people are so concerned about MySQL going to Oracle. MySQL has been funded primarily by those who purchase licenses to use the software in proprietary applications. The owner of the copyright is the only organization that has the right to make that business arrangement. That would be MySQL, now Sun, and soon Oracle. Many are concerned that without this profit from the dual-licensing the project might languish under Oracle, despite the fact that anyone can fork MySQL under the GPL.
HTH,
-FT