Piotr Wydrych created MATH-942:
----------------------------------

             Summary: DiscreteDistribution.sample(int) may throw an exception 
if first element of singletons of sub-class type
                 Key: MATH-942
                 URL: https://issues.apache.org/jira/browse/MATH-942
             Project: Commons Math
          Issue Type: Bug
            Reporter: Piotr Wydrych


Creating an array with {{Array.newInstance(singletons.get(0).getClass(), 
sampleSize)}} in DiscreteDistribution.sample(int) is risky. An exception will 
be thrown if:
* {{singleons.get(0)}} is of type T1, an sub-class of T, and
* DiscreteDistribution.sample() returns an object which is of type T, but not 
of type T1.

To reproduce:
{code}
List<Pair<Object,Double>> list = new ArrayList<Pair<Object, Double>>();
list.add(new Pair<Object, Double>(new Object() {}, new Double(0)));
list.add(new Pair<Object, Double>(new Object() {}, new Double(1)));
new DiscreteDistribution<Object>(list).sample(1);
{code}

Attaching a patch.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to