java.lang.IllegalArgumentException: URI is not absolute
Command am using : fletcher@fletcher:~/Desktop/godster/demoevo$ java -jar target/evomaster.jar --maxTime 20s --outputFolder "src/test/java"
-
EvoMaster version: 3.4.0
-
Loading configuration file from: /home/fletcher/Desktop/godster/demoevo/em.yaml
-
Initializing...
-
There are 5 usable RESTful API endpoints defined in the schema configuration
-
Starting to generate test cases
-
Consumed search budget: 9.855%
-
Covered targets: 114; time per test: 76.2ms (2.2 actions); since last improvement: 0s
-
[ERROR] EvoMaster process terminated abruptly. This is likely a bug in EvoMaster. Please copy&paste the following stacktrace, and create a new issue on https://github.com/EMResearch/EvoMaster/issues
*### java.lang.RuntimeException: Internal bug with EvoMaster when making a HTTP call toward /users/_PM_U8_XU%5C%5E at org.evomaster.core.problem.rest.service.AbstractRestFitness.handleRestCall(AbstractRestFitness.kt:617)* at
org.evomaster.core.problem.rest.service.ResourceRestFitness.computeFitnessForEachEnterpriseActionGroup(ResourceRestFitness.kt:174) at org.evomaster.core.problem.rest.service.ResourceRestFitness.computeFitnessForEachResource(ResourceRestFitness.kt:230) at org.evomaster.core.problem.rest.service.ResourceRestFitness.doCalculateCoverage(ResourceRestFitness.kt:84) at org.evomaster.core.problem.rest.service.ResourceRestFitness.doCalculateCoverage(ResourceRestFitness.kt:28) at org.evomaster.core.search.service.FitnessFunction.calculateIndividualCoverageWithStats(FitnessFunction.kt:149) at org.evomaster.core.search.service.FitnessFunction.calculateCoverage(FitnessFunction.kt:66) at org.evomaster.core.search.service.mutator.Mutator.mutateAndSave(Mutator.kt:174) at org.evomaster.core.search.algorithms.MioAlgorithm.searchOnce(MioAlgorithm.kt:48) at org.evomaster.core.search.service.SearchAlgorithm.search(SearchAlgorithm.kt:77) at org.evomaster.core.Main$Companion.run(Main.kt:609) at org.evomaster.core.Main$Companion.initAndRun(Main.kt:204) at org.evomaster.core.Main$Companion.main(Main.kt:114) at org.evomaster.core.Main.main(Main.kt) Caused by: javax.ws.rs.ProcessingException: URI is not absolute at org.glassfish.jersey.client.ClientRuntime.invoke(ClientRuntime.java:309) at org.glassfish.jersey.client.JerseyInvocation.lambda$invoke$0(JerseyInvocation.java:630) at org.glassfish.jersey.client.JerseyInvocation.call(JerseyInvocation.java:665) at org.glassfish.jersey.client.JerseyInvocation.lambda$runInScope$3(JerseyInvocation.java:659) at org.glassfish.jersey.internal.Errors.process(Errors.java:292) at org.glassfish.jersey.internal.Errors.process(Errors.java:274) at org.glassfish.jersey.internal.Errors.process(Errors.java:205) at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:390) at org.glassfish.jersey.client.JerseyInvocation.runInScope(JerseyInvocation.java:659) at org.glassfish.jersey.client.JerseyInvocation.invoke(JerseyInvocation.java:629) at org.evomaster.core.problem.rest.service.AbstractRestFitness.handleRestCall(AbstractRestFitness.kt:538) ... 13 common frames omitted Caused by: java.lang.IllegalArgumentException: URI is not absolute at java.base/java.net.URL.of(URL.java:862) at java.base/java.net.URI.toURL(URI.java:1172) at org.glassfish.jersey.client.internal.HttpUrlConnector._apply(HttpUrlConnector.java:318) at org.glassfish.jersey.client.internal.HttpUrlConnector.apply(HttpUrlConnector.java:265) at org.glassfish.jersey.client.ClientRuntime.invoke(ClientRuntime.java:297) ... 23 common frames omitted
below is my SUTCONTROLLER class ::::::
package demo.demoevo;
import com.mongodb.client.MongoClient; import com.mongodb.client.MongoClients; import org.evomaster.client.java.controller.EmbeddedSutController; import org.evomaster.client.java.controller.InstrumentedSutStarter; import org.evomaster.client.java.controller.api.dto.SutInfoDto; import org.evomaster.client.java.controller.api.dto.auth.AuthenticationDto; import org.evomaster.client.java.controller.problem.ProblemInfo; import org.evomaster.client.java.controller.problem.RestProblem; import org.evomaster.client.java.sql.DbSpecification; import org.springframework.boot.SpringApplication; import org.springframework.context.ConfigurableApplicationContext; import org.testcontainers.containers.GenericContainer;
import java.net.HttpURLConnection; import java.net.URL; import java.util.Collections; import java.util.List; import java.util.Map;
public class EmbeddedEvoMasterController extends EmbeddedSutController {
private ConfigurableApplicationContext ctx;
private static final int MONGODB_PORT = 27017;
private static final String MONGODB_VERSION = "7.0.16";
private static final String MONGODB_DATABASE_NAME = "demodb";
private static final GenericContainer mongodbContainer = new GenericContainer("mongo:" + MONGODB_VERSION)
.withTmpFs(Collections.singletonMap("/data/db", "rw"))
.withExposedPorts(MONGODB_PORT);
private MongoClient mongoClient;
public EmbeddedEvoMasterController() {
this(0);
}
public EmbeddedEvoMasterController(int port) {
setControllerPort(port);
}
@Override
public String startSut() {
mongodbContainer.start();
mongoClient = MongoClients.create("mongodb://" + mongodbContainer.getContainerIpAddress() + ":" + mongodbContainer.getMappedPort(MONGODB_PORT));
ctx = SpringApplication.run(DemoevoApplication.class,
new String[]{"--server.port=0",
"--li" +
"quibase.enabled=false",
"--spring.data.mongodb.uri=mongodb://" + mongodbContainer.getContainerIpAddress() + ":" + mongodbContainer.getMappedPort(MONGODB_PORT) + "/" + MONGODB_DATABASE_NAME,
"--spring.datasource.username=sa",
"--spring.datasource.password",
"--dg-toolkit.derby.port=0",
"--spring.cache.type=NONE"
});
return "http://localhost:" + getSutPort();
}
protected int getSutPort() {
return (Integer) ((Map) ctx.getEnvironment()
.getPropertySources().get("server.ports").getSource())
.get("local.server.port");
}
@Override
public boolean isSutRunning() {
return ctx != null && ctx.isRunning();
}
@Override
public void stopSut() {
ctx.stop();
ctx.close();
mongodbContainer.stop();
}
@Override
public String getPackagePrefixesToCover() {
return "demo.demoevo";
}
@Override
public void resetStateOfSUT() {
mongoClient.getDatabase(MONGODB_DATABASE_NAME).drop();
}
@Override
public boolean handleLocalAuthenticationSetup(String authenticationInfo) {
return super.handleLocalAuthenticationSetup(authenticationInfo);
}
@Override
public List<DbSpecification> getDbSpecifications() {
return null;
}
@Override
public void resetDatabase(List<String> tablesToClean) {
super.resetDatabase(tablesToClean);
}
@Override
public List<AuthenticationDto> getInfoForAuthentication() {
return null;
}
// @Override // public ProblemInfo getProblemInfo() { // System.out.println("SUTPORT:::: " + getSutPort()); // return new RestProblem( // "http://localhost:" + getSutPort() + "/v3/api-docs", // URL to your OpenAPI documentation // null // ); // }
@Override
public ProblemInfo getProblemInfo() {
String apiDocsUrl = "http://localhost:" + getSutPort() + "/v3/api-docs";
System.out.println("Constructed OpenAPI URL: " + apiDocsUrl);
// Additional debugging: Check if the URL is reachable
try {
HttpURLConnection connection = (HttpURLConnection) new URL(apiDocsUrl).openConnection();
connection.setRequestMethod("HEAD");
int responseCode = connection.getResponseCode();
System.out.println("Response Code: " + responseCode);
} catch (Exception e) {
System.out.println("Error while checking URL: " + e.getMessage());
}
return new RestProblem(apiDocsUrl, null);
}
@Override
public SutInfoDto.OutputFormat getPreferredOutputFormat() {
return SutInfoDto.OutputFormat.JAVA_JUNIT_5;
}
@Override
public Object getMongoConnection() {
return mongoClient;
}
public static void main(String[] args) {
int port = 40100;
if (args.length > 0) {
port = Integer.parseInt(args[0]);
}
EmbeddedEvoMasterController controller = new EmbeddedEvoMasterController(port);
InstrumentedSutStarter starter = new InstrumentedSutStarter(controller);
starter.start();
}
}
hi @naveensabavath,
thanks for reporting this issue. I think I understand what is going on. A call is using the results of a location header from a previous call, leading to a malformed URL. This happens either due to a bug in EM, or the location header was invalid. I cannot say now for sure from these logs. Regardless, even if it was an issue with the API giving a malformed location header, EM should not crash, and rather report that as a bug.
Unfortunately, it does not seem there is any option now in EM to block it from following location links :( ie, until this bug is fixed, I don't think there is any temporary workaround :(
hi @arcuri82
I initially reported an issue where EvoMaster was generating MongoDB documents with special characters ([^] ~) in the _id field. When calling the GET /users/{id} API, the URL contained characters like %50 for special characters , causing URI encoding issues and breaking the request.
Root Cause:
EvoMaster was inserting random characters in _id values. When retrieving data using GET /users/{id}, the API received an improperly encoded URI, leading to errors.
I modified my code to restrict the id field to only allow: Alphabets (A-Z, a-z) Numbers (0-9) Hyphen (-) and Underscore ()
Now, EvoMaster generates IDs without special characters, and the GET API works correctly.
and Thank you for Responding
@naveensabavath thanks for the reply. so, it would seems an invalid handling of special characters. good to hear you found a workaround until this problem is fixed
Issue: IllegalStateException: only support Map with String key in EvoMaster
hi @arcuri82 ,
I am encountering the following error while integrating EvoMaster with my Spring Boot application:
Caused by: java.lang.IllegalStateException: only support Map with String key The exception is coming from EvoMaster, and I couldn't find any relevant solutions online.
When I asked ChatGPT, it suggested that the issue might be due to using Enums as keys in a Map, and recommended changing them to Strings. I tried implementing custom serialization and deserialization using JsonSerializer and JsonDeserializer to convert Enums to Strings, but the issue still persists.
Could you please provide guidance on how to properly handle this in EvoMaster?
org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'base64ControllerImpl' defined in file [/home/gaian/Desktop/Naveen/Mobius/mobius-content-service/target/classes/com/aidtaas/mobius/content/services/controller/impl/Base64ControllerImpl.class]: Unsatisfied dependency expressed through constructor parameter 0: Error creating bean with name 'base64ContentService' defined in URL [jar:file:/home/gaian/.m2/repository/com/aidtaas/mobius/mobius-content-service-layer/2.4.0/mobius-content-service-layer-2.4.0.jar!/com/aidtaas/mobius/content/service/layer/service/impl/Base64ContentService.class]: Unsatisfied dependency expressed through constructor parameter 2: Error creating bean with name 'contentCacheOperation' defined in URL [jar:file:/home/gaian/.m2/repository/com/aidtaas/mobius/mobius-content-service-layer/2.4.0/mobius-content-service-layer-2.4.0.jar!/com/aidtaas/mobius/content/service/layer/utils/ContentCacheOperation.class]: Unsatisfied dependency expressed through constructor parameter 0: Error creating bean with name 'contentRepository' defined in com.aidtaas.mobius.content.service.layer.repo.ContentRepository defined in @EnableMongoRepositories declared on ContentServiceApplication: only support Map with String key
at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:801)
at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:240)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1352)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1189)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:560)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:520)
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:325)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:323)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:973)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:950)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:616)
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146)
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:738)
at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:440)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:316)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1306)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1295)
at Evomaster.EmbeddedEvoMasterController.startSut(EmbeddedEvoMasterController.java:45)
at org.evomaster.client.java.controller.internal.EMController.lambda$runSut$20(EMController.java:366)
at org.evomaster.client.java.controller.internal.EMController.noKillSwitch(EMController.java:118)
at org.evomaster.client.java.controller.internal.EMController.runSut(EMController.java:366)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at shaded.org.glassfish.jersey.server.model.internal.ResourceMethodInvocationHandlerFactory.lambda$static$0(ResourceMethodInvocationHandlerFactory.java:52)
at shaded.org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher$1.run(AbstractJavaResourceMethodDispatcher.java:124)
at shaded.org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.invoke(AbstractJavaResourceMethodDispatcher.java:167)
at shaded.org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$ResponseOutInvoker.doDispatch(JavaResourceMethodDispatcherProvider.java:176)
at shaded.org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.dispatch(AbstractJavaResourceMethodDispatcher.java:79)
at shaded.org.glassfish.jersey.server.model.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:475)
at shaded.org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:397)
at shaded.org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:81)
at shaded.org.glassfish.jersey.server.ServerRuntime$1.run(ServerRuntime.java:255)
at shaded.org.glassfish.jersey.internal.Errors$1.call(Errors.java:248)
at shaded.org.glassfish.jersey.internal.Errors$1.call(Errors.java:244)
at shaded.org.glassfish.jersey.internal.Errors.process(Errors.java:292)
at shaded.org.glassfish.jersey.internal.Errors.process(Errors.java:274)
at shaded.org.glassfish.jersey.internal.Errors.process(Errors.java:244)
at shaded.org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:265)
at shaded.org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:234)
at shaded.org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:680)
at shaded.org.glassfish.jersey.servlet.WebComponent.serviceImpl(WebComponent.java:394)
at shaded.org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:346)
at shaded.org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:366)
at shaded.org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:319)
at shaded.org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:205)
at shaded.org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:763)
at shaded.org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:551)
at shaded.org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)
at shaded.org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1369)
at shaded.org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188)
at shaded.org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:489)
at shaded.org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186)
at shaded.org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1284)
at shaded.org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
at shaded.org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
at shaded.org.eclipse.jetty.server.Server.handle(Server.java:501)
at shaded.org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:383)
at shaded.org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:556)
at shaded.org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:375)
at shaded.org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:273)
at shaded.org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)
at shaded.org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
at shaded.org.eclipse.jetty.io.ChannelEndPoint$1.run(ChannelEndPoint.java:104)
at shaded.org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:336)
at shaded.org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:313)
at shaded.org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:171)
at shaded.org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.produce(EatWhatYouKill.java:135)
at shaded.org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:806)
at shaded.org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:938)
at java.base/java.lang.Thread.run(Thread.java:1583)
Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'base64ContentService' defined in URL [jar:file:/home/gaian/.m2/repository/com/aidtaas/mobius/mobius-content-service-layer/2.4.0/mobius-content-service-layer-2.4.0.jar!/com/aidtaas/mobius/content/service/layer/service/impl/Base64ContentService.class]: Unsatisfied dependency expressed through constructor parameter 2: Error creating bean with name 'contentCacheOperation' defined in URL [jar:file:/home/gaian/.m2/repository/com/aidtaas/mobius/mobius-content-service-layer/2.4.0/mobius-content-service-layer-2.4.0.jar!/com/aidtaas/mobius/content/service/layer/utils/ContentCacheOperation.class]: Unsatisfied dependency expressed through constructor parameter 0: Error creating bean with name 'contentRepository' defined in com.aidtaas.mobius.content.service.layer.repo.ContentRepository defined in @EnableMongoRepositories declared on ContentServiceApplication: only support Map with String key
at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:801)
at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:240)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1352)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1189)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:560)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:520)
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:325)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:323)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199)
at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:254)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1417)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1337)
at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:910)
at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:788)
... 71 more
Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'contentCacheOperation' defined in URL [jar:file:/home/gaian/.m2/repository/com/aidtaas/mobius/mobius-content-service-layer/2.4.0/mobius-content-service-layer-2.4.0.jar!/com/aidtaas/mobius/content/service/layer/utils/ContentCacheOperation.class]: Unsatisfied dependency expressed through constructor parameter 0: Error creating bean with name 'contentRepository' defined in com.aidtaas.mobius.content.service.layer.repo.ContentRepository defined in @EnableMongoRepositories declared on ContentServiceApplication: only support Map with String key
at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:801)
at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:240)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1352)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1189)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:560)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:520)
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:325)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:323)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199)
at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:254)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1417)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1337)
at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:910)
at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:788)
... 85 more
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'contentRepository' defined in com.aidtaas.mobius.content.service.layer.repo.ContentRepository defined in @EnableMongoRepositories declared on ContentServiceApplication: only support Map with String key
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1770)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:598)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:520)
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:325)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:323)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199)
at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:254)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1417)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1337)
at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:910)
at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:788)
... 99 more
Caused by: java.lang.IllegalStateException: only support Map with String key
at org.evomaster.client.java.instrumentation.object.ClassToSchema.getSchema(ClassToSchema.java:336)
at org.evomaster.client.java.instrumentation.object.ClassToSchema.getSchema(ClassToSchema.java:365)
at org.evomaster.client.java.instrumentation.object.ClassToSchema.findAllNestedClassAndRegisterThemIfNeeded(ClassToSchema.java:239)
at org.evomaster.client.java.instrumentation.object.ClassToSchema.getOrDeriveSchemaAndNestedClasses(ClassToSchema.java:225)
at org.evomaster.client.java.instrumentation.object.ClassToSchema.getOrDeriveSchemaWithItsRef(ClassToSchema.java:153)
at org.evomaster.client.java.instrumentation.coverage.methodreplacement.thirdpartyclasses.MappingMongoEntityInformationClassReplacement.handleMappingMongoEntityInformationConstructor(MappingMongoEntityInformationClassReplacement.java:95)
at org.evomaster.client.java.instrumentation.coverage.methodreplacement.thirdpartyclasses.MappingMongoEntityInformationClassReplacement.MappingMongoEntityInformation(MappingMongoEntityInformationClassReplacement.java:83)
at org.springframework.data.mongodb.repository.support.MongoEntityInformationSupport.entityInformationFor(MongoEntityInformationSupport.java:48)
at org.springframework.data.mongodb.repository.support.MongoRepositoryFactory.getEntityInformation(MongoRepositoryFactory.java:147)
at org.springframework.data.mongodb.repository.support.MongoRepositoryFactory.getTargetRepository(MongoRepositoryFactory.java:128)
at org.springframework.data.repository.core.support.RepositoryFactorySupport.getRepository(RepositoryFactorySupport.java:317)
at org.springframework.data.repository.core.support.RepositoryFactoryBeanSupport.lambda$afterPropertiesSet$5(RepositoryFactoryBeanSupport.java:279)
at org.springframework.data.util.Lazy.getNullable(Lazy.java:245)
at org.springframework.data.util.Lazy.get(Lazy.java:114)
at org.springframework.data.repository.core.support.RepositoryFactoryBeanSupport.afterPropertiesSet(RepositoryFactoryBeanSupport.java:285)
at org.springframework.data.mongodb.repository.support.MongoRepositoryFactoryBean.afterPropertiesSet(MongoRepositoryFactoryBean.java:101)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1817)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1766)
... 110 more
Hi,
this is a bug in EvoMaster, unfortunately. Can you create a new issue for it? (as this already deals with special characters in requests).
until bug is fixed, a workaround is to disable Mongo support, eg, --instrumentMR_MONGO=false
@naveensabavath thanks, but too early to close this issue. i ll close it when ll fix the issue with handling of special characters