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

Support for OracleDB #505

Open
PallaviKrishnamurthy opened this issue May 5, 2022 · 4 comments
Open

Support for OracleDB #505

PallaviKrishnamurthy opened this issue May 5, 2022 · 4 comments

Comments

@PallaviKrishnamurthy
Copy link

Hi @arcuri82,
I'm facing below error when I'm trying to generate test cases using EVO Master.
Latest version of EvoMaster is throwing a java.lang.IllegalArgumentException: Column data type NUMBER is not supported in EvoMaster Data types

Please find below the stackTrace:

  • EvoMaster version: 1.4.0
    15:57:10.487 [main] WARN o.e.c.p.rest.RestActionBuilderV3 - Cannot handle regex: ^[\w\s<>,.:;"'{}[]?/\]+$
    15:57:10.503 [main] WARN o.e.c.s.g.regex.CharacterRangeRxGene - Issue with Regex range, where '' is greater than '@'
    15:57:10.503 [main] WARN o.e.core.search.StructuralElement - class org.evomaster.core.search.gene.ObjectGene should have a parent but currently it is null

  • ←[31m[ERROR] ←[0m←[33mEvoMaster process terminated abruptly. This is likely a bug in EvoMaster. Please copy&paste the following stacktrace, and create a new issue on ←[34mhttps://github.com/EMResearch/EvoMaster/issues←[0m←[0m
    java.lang.reflect.InvocationTargetException: invokedynamic: method=public void org.evomaster.core.problem.rest.service.AbstractRestSampler.initialize(), target=org.evomaster.core.problem.rest.service.ResourceSampler@704ff0
    at com.netflix.governator.lifecycle.LifecycleMethods.methodInvoke(LifecycleMethods.java:316)
    at com.netflix.governator.lifecycle.LifecycleMethods.methodInvoke(LifecycleMethods.java:298)
    at com.netflix.governator.lifecycle.LifecycleManager.startInstance(LifecycleManager.java:266)
    at com.netflix.governator.lifecycle.LifecycleManager.add(LifecycleManager.java:175)
    at com.netflix.governator.guice.InternalLifecycleModule.onProvision(InternalLifecycleModule.java:81)
    at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision(ProvisionListenerStackCallback.java:117)
    at com.google.inject.internal.ProvisionListenerStackCallback.provision(ProvisionListenerStackCallback.java:66)
    at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:93)
    at com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:296)
    at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)
    at com.google.inject.internal.SingletonScope$1.get(SingletonScope.java:169)
    at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:45)
    at com.google.inject.internal.FactoryProxy.get(FactoryProxy.java:60)
    at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)
    at com.google.inject.internal.SingletonScope$1.get(SingletonScope.java:169)
    at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:45)
    at com.google.inject.internal.InternalInjectorCreator.loadEagerSingletons(InternalInjectorCreator.java:213)
    at com.google.inject.internal.InternalInjectorCreator.injectDynamically(InternalInjectorCreator.java:186)
    at com.google.inject.internal.InternalInjectorCreator.build(InternalInjectorCreator.java:113)
    at com.google.inject.internal.InjectorImpl.createChildInjector(InjectorImpl.java:239)
    at com.netflix.governator.guice.LifecycleInjector.createChildInjector(LifecycleInjector.java:331)
    at com.netflix.governator.guice.LifecycleInjector.createInjector(LifecycleInjector.java:411)
    at com.netflix.governator.guice.LifecycleInjector.createInjector(LifecycleInjector.java:352)
    at org.evomaster.core.Main$Companion.init(Main.kt:312)
    at org.evomaster.core.Main$Companion.initAndRun(Main.kt:140)
    at org.evomaster.core.Main$Companion.main(Main.kt:73)
    at org.evomaster.core.Main.main(Main.kt)
    Caused by: java.lang.IllegalArgumentException: Column data type NUMBER is not supported in EvoMaster Data types
    at org.evomaster.core.database.schema.ColumnFactory.parseColumnDataType(ColumnFactory.kt:41)
    at org.evomaster.core.database.schema.ColumnFactory.createColumnFromDto(ColumnFactory.kt:17)
    at org.evomaster.core.database.SqlInsertBuilder.(SqlInsertBuilder.kt:105)
    at org.evomaster.core.problem.rest.service.ResourceSampler.initSqlInfo(ResourceSampler.kt:40)
    at org.evomaster.core.problem.rest.service.AbstractRestSampler.initialize(AbstractRestSampler.kt:81)
    at com.netflix.governator.lifecycle.LifecycleMethods.methodInvoke(LifecycleMethods.java:313)
    ... 26 common frames omitted

Other important info:
-OS: Windows
-JVM: Openjdk-1.8.0.302-1

@arcuri82
Copy link
Collaborator

arcuri82 commented May 5, 2022

Hi,
thanks for your interest in EvoMaster.
What database are you using? Postgres? MySQL? H2?
Do you have an example of any of your SQL tables in which the type NUMBER is used?

Neither Postgres nor MySQL seems to have a type called NUMBER.

@jgaleotti maybe something you could look into?

@arcuri82 arcuri82 added the bug label May 5, 2022
@arcuri82 arcuri82 changed the title ObjectGene should have a parent but currently it is null Column data type NUMBER is not supported in EvoMaster Data types May 5, 2022
@PallaviKrishnamurthy
Copy link
Author

Hi @arcuri82,
We are using oracle DB.

@arcuri82
Copy link
Collaborator

arcuri82 commented May 6, 2022

Hi,
ah, I see... sorry to hear you have to deal with Oracle DB :-(

I tried to support Oracle in EM a couple of years ago, but it was a nightmare. not just from a technical perspective, but also legal one (ie, due to its license).

We might support Oracle DB in future, but, to be honest, not any time soon, at least until Oracle provides a version that is "safe" to use for open-source projects.

For your case, I recommend to disable the SQL support, ie, do not pass a SQL connection to the EM Driver.

At any rate, we would need to provide a better error message

@arcuri82 arcuri82 changed the title Column data type NUMBER is not supported in EvoMaster Data types Support for OracleDB May 6, 2022
arcuri82 added a commit that referenced this issue May 6, 2022
@PallaviKrishnamurthy
Copy link
Author

Hi @arcuri82,
Thank you for addressing the query.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants