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

[BUG] AnalysisSetupException: No registered default for different default interface #268

Closed
simonegazza opened this issue Jan 12, 2023 · 0 comments · Fixed by #289
Closed
Assignees
Labels
‼ priority:p1 Priority planning - level 1 🎊 resolution:resolved Bug or feature resolved - might not have been merged to master yet 🏨 scope:infrastructure Work regarding the general infrastructure and functioning of LiSA 🐛 type:bug Something isn't working
Milestone

Comments

@simonegazza
Copy link

Description
Currently, it seems that the function getDefaultFor cannot retrieve the correct default value for the domain asked

Reproducibility information
This happens in version 1b8-SNAPSHOT (tested in commit ccad56e)

Expected behavior
The function getDefaultFor should correctly return the default domain.
For example:

getDefaultFor(HeapDomain.class) // should return NonRelationalHeapDomain.class

Actual behavior
The current exception is thrown (in case of HeapDomain.class):

it.unive.lisa.AnalysisSetupException: No registered default for interface it.unive.lisa.analysis.heap.HeapDomain
	at app//it.unive.lisa.LiSAFactory.getDefaultFor(LiSAFactory.java:279)
	at app//it.unipr.frontend.analysis.RustTuple.testTuple(RustTuple.java:54)
	at [email protected]/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at [email protected]/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
	at [email protected]/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at [email protected]/java.lang.reflect.Method.invoke(Method.java:568)
	at app//org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59)
	at app//org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
	at app//org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)
	at app//org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
	at app//org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
	at app//org.junit.runners.BlockJUnit4ClassRunner$1.evaluate(BlockJUnit4ClassRunner.java:100)
	at app//org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366)
	at app//org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:103)
	at app//org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:63)
	at app//org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)
	at app//org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
	at app//org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
	at app//org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)
	at app//org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)
	at app//org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
	at app//org.junit.runners.ParentRunner.run(ParentRunner.java:413)
	at org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecutor.runTestClass(JUnitTestClassExecutor.java:110)
	at org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecutor.execute(JUnitTestClassExecutor.java:58)
	at org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecutor.execute(JUnitTestClassExecutor.java:38)
	at org.gradle.api.internal.tasks.testing.junit.AbstractJUnitTestClassProcessor.processTestClass(AbstractJUnitTestClassProcessor.java:62)
	at org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.processTestClass(SuiteTestClassProcessor.java:51)
	at [email protected]/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at [email protected]/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
	at [email protected]/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at [email protected]/java.lang.reflect.Method.invoke(Method.java:568)
	at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36)
	at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
	at org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:33)
	at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:94)
	at jdk.proxy2/jdk.proxy2.$Proxy5.processTestClass(Unknown Source)
	at org.gradle.api.internal.tasks.testing.worker.TestWorker$2.run(TestWorker.java:176)
	at org.gradle.api.internal.tasks.testing.worker.TestWorker.executeAndMaintainThreadName(TestWorker.java:129)
	at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:100)
	at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:60)
	at org.gradle.process.internal.worker.child.ActionExecutionWorker.execute(ActionExecutionWorker.java:56)
	at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:133)
	at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:71)
	at app//worker.org.gradle.process.internal.worker.GradleWorkerMain.run(GradleWorkerMain.java:69)
	at app//worker.org.gradle.process.internal.worker.GradleWorkerMain.main(GradleWorkerMain.java:74)

Attachments
Probably, the library used to retrive all the subclasses of a certain class cannot load them in the classpath correctly under certain circumstances

Further content
To temporarily proceed without solving this bug, you can use directly the class (for example directly the HeapDomain.class) without using the function getDefaultFor

@simonegazza simonegazza added the 🐛 type:bug Something isn't working label Jan 12, 2023
@lucaneg lucaneg added this to LiSA Jan 12, 2023
@lucaneg lucaneg moved this to Backlog in LiSA Jan 12, 2023
@lucaneg lucaneg moved this from Backlog to Todo in LiSA Jan 12, 2023
@lucaneg lucaneg added this to the 0.1b8 milestone Jan 12, 2023
@lucaneg lucaneg added ‼ priority:p1 Priority planning - level 1 🏨 scope:infrastructure Work regarding the general infrastructure and functioning of LiSA labels Jan 12, 2023
@lucaneg lucaneg modified the milestones: 0.1b8, 0.1 Apr 18, 2023
@lucaneg lucaneg moved this from Todo to Done in LiSA Sep 8, 2023
@lucaneg lucaneg added the 🎊 resolution:resolved Bug or feature resolved - might not have been merged to master yet label Sep 8, 2023
@lucaneg lucaneg modified the milestones: 0.1, 0.1b9 Sep 8, 2023
@lucaneg lucaneg mentioned this issue Sep 11, 2023
@github-project-automation github-project-automation bot moved this from Done to Merged in LiSA Oct 9, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
‼ priority:p1 Priority planning - level 1 🎊 resolution:resolved Bug or feature resolved - might not have been merged to master yet 🏨 scope:infrastructure Work regarding the general infrastructure and functioning of LiSA 🐛 type:bug Something isn't working
Projects
Archived in project
Development

Successfully merging a pull request may close this issue.

2 participants