Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

stack overflow processing Parameterized Type (infinite recursive loop?) #368

Open
markro49 opened this issue May 22, 2018 · 2 comments
Open
Assignees

Comments

@markro49
Copy link
Collaborator

  1. set up the randoop pascali coverage suite => https://gitlab.cs.washington.edu/randoop/pascali-coverage
  2. cd to the directory established in step (1)
  3. cd integration-test2
  4. run './run_randoop.py ojalgo'
  5. the various output files will be in integration-test2/corpus/ojalgo/dljc-out
  6. i have attached randoop.log from that directory
    randoop.log
@markro49
Copy link
Collaborator Author

The first part of #373 is fixed. Need to verify that the second part is a duplicate of #368.

@mernst mernst self-assigned this Jun 10, 2018
@markro49
Copy link
Collaborator Author

I have verified that ojalgo and jscience go into the same infinite loop trying to deal with a Parameterized Type. The Java exception dump does not show the full stack trace (not surprising) so I am unsure of how get into the loop but the loop itself is

In ParameterBound.forTypes (ParameterBound.java @67)
call to ParamerterBound.forType
In ParameterBound.forType (ParameterBound.java @90)
call to ParameterizedType.forType
In ParameterizedType.forType (ParameterizedType.java @58)
call to ParameterizedType.forClass
In ParameterizedType.forClass (ParameterizedType.java @29)
call to new GenericClassType
In constructor for GenericClassType (GenericClassType.java @30)
call to TypeVariable.forType
In TypeVariable.forType (TypeVariable.java @44)
call to ParameterBound.forTypes
and around we go

Some of these methods are passed a set of type variables seen so far and some aren't. Perhaps we need to pass this set through all the calls so that we can see if we are tying to construct a type that is already in the set and skip it? Not sure.

@mernst mernst assigned smillst and unassigned mernst Jun 25, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants