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

Crawl overview failure #560

Open
sinha108 opened this issue Feb 24, 2023 · 2 comments · Fixed by #571
Open

Crawl overview failure #560

sinha108 opened this issue Feb 24, 2023 · 2 comments · Fixed by #571
Assignees
Labels

Comments

@sinha108
Copy link

Describe the bug

Running Crawljax 5.0 after building a fat jar (with all dependencies) gives this error:

Exception in thread "main" java.lang.NoSuchMethodError: 'com.fasterxml.jackson.annotation.JsonIgnoreProperties$Value com.fasterxml.jackson.databind.AnnotationIntrospector.findPropertyIgnoralByName(com.fasterxml.jackson.databind.cfg.MapperConfig, com.fasterxml.jackson.databind.introspect.Annotated)'
	at com.fasterxml.jackson.datatype.guava.ser.MultimapSerializer.createContextual(MultimapSerializer.java:206)
	at com.fasterxml.jackson.databind.SerializerProvider.handlePrimaryContextualization(SerializerProvider.java:976)
	at com.fasterxml.jackson.databind.SerializerProvider.findPrimaryPropertySerializer(SerializerProvider.java:651)
	at com.fasterxml.jackson.databind.ser.impl.PropertySerializerMap.findAndAddPrimarySerializer(PropertySerializerMap.java:72)
	at com.fasterxml.jackson.databind.ser.BeanPropertyWriter._findAndAddDynamic(BeanPropertyWriter.java:895)
	at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:705)
	at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:722)
	at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:166)
	at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:727)
	at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:722)
	at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:166)
	at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:727)
	at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:722)
	at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:166)
	at com.fasterxml.jackson.databind.ser.DefaultSerializerProvider._serialize(DefaultSerializerProvider.java:480)
	at com.fasterxml.jackson.databind.ser.DefaultSerializerProvider.serializeValue(DefaultSerializerProvider.java:319)
	at com.fasterxml.jackson.databind.ObjectWriter$Prefetch.serialize(ObjectWriter.java:1433)
	at com.fasterxml.jackson.databind.ObjectWriter._configAndWriteValue(ObjectWriter.java:1135)
	at com.fasterxml.jackson.databind.ObjectWriter.writeValueAsString(ObjectWriter.java:1005)
	at com.crawljax.plugins.crawloverview.model.Serializer.toPrettyJson(Serializer.java:65)
	at com.crawljax.plugins.crawloverview.OutputBuilder.writeIndexFile(OutputBuilder.java:195)
	at com.crawljax.plugins.crawloverview.OutputBuilder.write(OutputBuilder.java:161)
	at com.crawljax.plugins.crawloverview.CrawlOverview.postCrawling(CrawlOverview.java:215)
	at com.crawljax.core.plugin.Plugins.runPostCrawlingPlugins(Plugins.java:210)
	at com.crawljax.core.CrawlController.executeConsumers(CrawlController.java:132)
	at com.crawljax.core.CrawlController.call(CrawlController.java:81)
	at com.crawljax.core.CrawljaxRunner.call(CrawljaxRunner.java:57)
	at org.konveyor.tackletest.ui.crawljax.CrawljaxRunner.main(CrawljaxRunner.java:753)
@yrahulkr yrahulkr changed the title Crwal overview failure Crawl overview failure Feb 24, 2023
@yrahulkr yrahulkr self-assigned this Feb 24, 2023
@yrahulkr yrahulkr added the bug label Feb 24, 2023
yrahulkr added a commit that referenced this issue Feb 27, 2023
amesbah pushed a commit that referenced this issue Mar 1, 2023
@sinha108
Copy link
Author

sinha108 commented Mar 1, 2023

I tried it again after the fix, and the fat jar built from a project with Crawljax dependency (https://github.com/konveyor/tackle-test-generator-core/tree/main/tackle-test-generator-ui) still fails with the same error:

Exception in thread "main" java.lang.NoSuchMethodError: 'com.fasterxml.jackson.annotation.JsonIgnoreProperties$Value com.fasterxml.jackson.databind.AnnotationIntrospector.findPropertyIgnoralByName(com.fasterxml.jackson.databind.cfg.MapperConfig, com.fasterxml.jackson.databind.introspect.Annotated)'
	at com.fasterxml.jackson.datatype.guava.ser.MultimapSerializer.createContextual(MultimapSerializer.java:206)
	at com.fasterxml.jackson.databind.SerializerProvider.handlePrimaryContextualization(SerializerProvider.java:976)
	at com.fasterxml.jackson.databind.SerializerProvider.findPrimaryPropertySerializer(SerializerProvider.java:651)
	at com.fasterxml.jackson.databind.ser.impl.PropertySerializerMap.findAndAddPrimarySerializer(PropertySerializerMap.java:72)
	at com.fasterxml.jackson.databind.ser.BeanPropertyWriter._findAndAddDynamic(BeanPropertyWriter.java:895)
	at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:705)
	at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:722)
	at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:166)
	at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:727)
	at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:722)
	at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:166)
	at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:727)
	at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:722)
	at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:166)
	at com.fasterxml.jackson.databind.ser.DefaultSerializerProvider._serialize(DefaultSerializerProvider.java:480)
	at com.fasterxml.jackson.databind.ser.DefaultSerializerProvider.serializeValue(DefaultSerializerProvider.java:319)
	at com.fasterxml.jackson.databind.ObjectWriter$Prefetch.serialize(ObjectWriter.java:1433)
	at com.fasterxml.jackson.databind.ObjectWriter._configAndWriteValue(ObjectWriter.java:1135)
	at com.fasterxml.jackson.databind.ObjectWriter.writeValueAsString(ObjectWriter.java:1005)
	at com.crawljax.plugins.crawloverview.model.Serializer.toPrettyJson(Serializer.java:65)
	at com.crawljax.plugins.crawloverview.OutputBuilder.writeIndexFile(OutputBuilder.java:193)
	at com.crawljax.plugins.crawloverview.OutputBuilder.write(OutputBuilder.java:159)
	at com.crawljax.plugins.crawloverview.CrawlOverview.postCrawling(CrawlOverview.java:215)
	at com.crawljax.core.plugin.Plugins.runPostCrawlingPlugins(Plugins.java:210)
	at com.crawljax.core.CrawlController.executeConsumers(CrawlController.java:132)
	at com.crawljax.core.CrawlController.call(CrawlController.java:81)
	at com.crawljax.core.CrawljaxRunner.call(CrawljaxRunner.java:57)
	at org.konveyor.tackletest.ui.crawljax.CrawljaxRunner.main(CrawljaxRunner.java:753)

@yrahulkr
Copy link
Contributor

yrahulkr commented Mar 1, 2023

The root cause seems to be the jackson dependency introduced by webdriver-manager in the core module. Current workaround is to use dependencyManagement for jackson inside the pom file that is building fat jar.

   <dependencyManagement>
            <dependency>
                <groupId>com.fasterxml.jackson.core</groupId>
                <artifactId>jackson-databind</artifactId>
                <version>2.14.2</version>
            </dependency>
        </dependencies>
    </dependencyManagement>

The problem does not manifest in the crawljax-examples module because the crawljax-parent-pom includes the dependencyManagement for jackson. However, any external project that is trying to build a fat jar will have to include this as well.

@yrahulkr yrahulkr reopened this Mar 1, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants