/* * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. * * Copyright (c) 1997-2016 Oracle and/or its affiliates. All rights reserved. * * The contents of this file are subject to the terms of either the GNU * General Public License Version 2 only ("GPL") or the Common Development * and Distribution License("CDDL") (collectively, the "License"). You * may not use this file except in compliance with the License. You can * obtain a copy of the License at * https://glassfish.java.net/public/CDDL+GPL_1_1.html * or packager/legal/LICENSE.txt. See the License for the specific * language governing permissions and limitations under the License. * * When distributing the software, include this License Header Notice in each * file and include the License file at packager/legal/LICENSE.txt. * * GPL Classpath Exception: * Oracle designates this particular file as subject to the "Classpath" * exception as provided by Oracle in the GPL Version 2 section of the License * file that accompanied this code. * * Modifications: * If applicable, add the following below the License Header, with the fields * enclosed by brackets [] replaced by your own identifying information: * "Portions Copyright [year] [name of copyright owner]" * * Contributor(s): * If you wish your version of this file to be governed by only the CDDL or * only the GPL Version 2, indicate your decision by adding "[Contributor] * elects to include this software in this distribution under the [CDDL or GPL * Version 2] license." If you don't indicate a single choice of license, a * recipient has the option to distribute your version of this file under * either the CDDL, the GPL Version 2 or to extend the choice of license to * its licensees as provided above. However, if you add GPL Version 2 code * and therefore, elected the GPL Version 2 license, then the option applies * only if the new code is made subject to such option by the copyright * holder. */ package com.sun.faces.test.javaee8.uiinput; import java.math.BigDecimal; import java.math.BigInteger; import java.util.Arrays; import java.util.List; import javax.enterprise.inject.Model; @Model public class Spec1422 { public enum Item { ONE, TWO, THREE; } private List<Item> selectedItems; private static List<Item> availableItems = Arrays.asList(Item.values()); private List<Object> selectedNumbers; private static List<? extends Number> availableNumbers = Arrays.asList(null, 1, 2L, new BigInteger("3"), 4.5, 6.7F, new BigDecimal("8.9")); public void submit() { for (Item item : selectedItems) { // Should not throw ClassCastException here. } // Should nowhere throw ClassCastException here (assuming every item is selected). Integer one = (Integer) selectedNumbers.get(1); Long two = (Long) selectedNumbers.get(2); BigInteger three = (BigInteger) selectedNumbers.get(3); Double fourDotFive = (Double) selectedNumbers.get(4); Float sixDotSeven = (Float) selectedNumbers.get(5); BigDecimal eightDotNine = (BigDecimal) selectedNumbers.get(6); } public List<Item> getSelectedItems() { return selectedItems; } public void setSelectedItems(List<Item> selectedItems) { this.selectedItems = selectedItems; } public List<Item> getAvailableItems() { return availableItems; } public List<Object> getSelectedNumbers() { return selectedNumbers; } public void setSelectedNumbers(List<Object> selectedNumbers) { this.selectedNumbers = selectedNumbers; } public List<? extends Number> getAvailableNumbers() { return availableNumbers; } }