How can something be released under two licenses?
Dual licensing is the practice of distributing identical software under two (or more) different sets of terms and conditions. When software is dual licensed, the recipient can choose under which terms he/she wants to obtain the software. Generally, the two motivations for dual licensing are business models and license compatibility. For GlassFish server, we are distributing the code under two licenses, CDDL and GPL v2 + the Classpath exception to achieve license compatibility. This dual license allows for more flexibility when combining code licensed from various free software projects with GlassFish software. It allows users to choose the license they’re most comfortable with. As a matter of policy, Sun never takes rights away. As a result, Sun has added GPL v2 + the Classpath exception as the option so that GlassFish will continue to be available under the CDDL license.