Getting com.fasterxml.jackson.databind.exc.InvalidDefinitionException: No serializer found for class

I am trying to write small microservice benchmark for java, lately java microservice framework are popping up from every corner 😊 actually it is becoming little bit annoying, java world becoming js world. Anyway while writing some test I start getting the error below Internal Server Error Error handling d1e23f6f-3947-497a-be41-27ba9f7f4791-1, org.jboss.resteasy.spi.UnhandledException: com.fasterxml.jackson.databind.exc.InvalidDefinitionException: No serializer found for class com.mascix.ApplicationInfo and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationFeature.FAIL_ON_EMPTY_BEANS) The stacktrace below has been reversed to show the root cause first. Click Here to see the original stacktrace com.fasterxml.jackson.databind.exc.InvalidDefinitionException: No serializer found for class com.mascix.ApplicationInfo and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationFeature.FAIL_ON_EMPTY_BEANS) at com.fasterxml.jackson.databind.exc.InvalidDefinitionException.from(InvalidDefinitionException.java:77) at com.fasterxml.jackson.databind.SerializerProvider.reportBadDefinition(SerializerProvider.java:1277) at com.fasterxml.jackson.databind.DatabindContext.reportBadDefinition(DatabindContext.java:400) This was coming from quarkus example. I got same error in spring boot and micronaut, my first approach was configure the bean or singleton and give ...

August 19, 2020 · 1 min · Özkan Pakdil

How to build eclipse on locally in windows 10

Best document I found is here, main problem about the documentation is google :) whenever I search different versions of “building eclipse in windows” all results were related to how to build a project(java or anything else) in eclipse. And I decided to write this note blog just for future refference. I had some issues on the way fatal: cannot create directory at 'bundles/org.eclipse.equinox.p2.tests/testData/previousConfigurationFinder/testSuccedingVersion/matchFromSuccedingAndPreccedingWithDifferentPlatfrom/org.eclipse.platform_3.8.0_11111111_linux-gtk-x86_64': Filename too long and constituent[40]: file:/C:/ProgramData/chocolatey/lib/maven/apache-maven-3.6.3/lib/wagon-file-3.3.4.jar constituent[41]: file:/C:/ProgramData/chocolatey/lib/maven/apache-maven-3.6.3/lib/wagon-http-3.3.4-shaded.jar constituent[42]: file:/C:/ProgramData/chocolatey/lib/maven/apache-maven-3.6.3/lib/wagon-provider-api-3.3.4.jar --------------------------------------------------- Exception in thread "main" java.lang.AssertionError: pom file must not be null from PolyglotModelManager as per API at org.sonatype.maven.polyglot.TeslaModelProcessor.locatePom(TeslaModelProcessor.java:64) at org.apache.maven.project.DefaultProjectBuilder.build(DefaultProjectBuilder.java:500) at org.apache.maven.project.DefaultProjectBuilder.build(DefaultProjectBuilder.java:414) at org.apache.maven.project.DefaultProjectBuilder.build(DefaultProjectBuilder.java:377) at org.apache.maven.graph.DefaultGraphBuilder.collectProjects(DefaultGraphBuilder.java:414) at org.apache.maven.graph.DefaultGraphBuilder.getProjectsForMavenReactor(DefaultGraphBuilder.java:405) at org.apache.maven.graph.DefaultGraphBuilder.build(DefaultGraphBuilder.java:82) at org.apache.maven.DefaultMaven.buildGraph(DefaultMaven.java:507) at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:219) at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:192) at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:105) ...

August 15, 2020 · 2 min · Özkan Pakdil

Running multiple jdk in github action

Here is an example to show how multiple jdk run in one github action. And generate artifacts as test results jobs: build: runs-on: ubuntu-latest strategy: matrix: java: ["8", "11", "13", "14"] name: Java ${{ matrix.java }} sample steps: And to see how it looks in build, check any build in https://github.com/ozkanpakdil/eclipse-collections-benchmark/actions

July 29, 2020 · 1 min · Özkan Pakdil

Eclipse collections benchmark in jdk 14 at home

I was reading eclipse collections benchmark doc and realized that its little bit old and it was using jdk 11, in my local I have jdk 14 I wanted to run in my local and see the result. You can find eclipse collections here Below from my local D:\tmp\benchmark-eclipse-collections>java -jar target/benchmarks.jar IntegerListFilter -rf json WARNING: An illegal reflective access operation has occurred WARNING: Illegal reflective access by org.openjdk.jmh.util.Utils (file:/D:/tmp/benchmark-eclipse-collections/target/benchmarks.jar) to field java.io.PrintStream.charOut WARNING: Please consider reporting this to the maintainers of org.openjdk.jmh.util.Utils WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations WARNING: All illegal access operations will be denied in a future release # JMH version: 1.23 # VM version: JDK 14.0.2, OpenJDK 64-Bit Server VM, 14.0.2+12-46 # VM invoker: C:\Program Files\OpenJDK\jdk-14.0.2\bin\java.exe # VM options: <none> # Warmup: 5 iterations, 10 s each # Measurement: 5 iterations, 10 s each # Timeout: 10 min per iteration # Threads: 1 thread, will synchronize iterations # Benchmark mode: Throughput, ops/time # Benchmark: com.mascix.IntegerListFilter.ecMutableList # Run progress: 0.00% complete, ETA 00:20:00 # Fork: 1 of 2 # Warmup Iteration 1: 123.880 ops/s # Warmup Iteration 2: 126.319 ops/s # Warmup Iteration 3: 123.222 ops/s # Warmup Iteration 4: 119.543 ops/s # Warmup Iteration 5: 118.171 ops/s Iteration 1: 117.436 ops/s Iteration 2: 119.494 ops/s Iteration 3: 119.941 ops/s Iteration 4: 117.819 ops/s Iteration 5: 117.032 ops/s # Run progress: 8.33% complete, ETA 00:18:27 # Fork: 2 of 2 # Warmup Iteration 1: 113.457 ops/s # Warmup Iteration 2: 114.845 ops/s # Warmup Iteration 3: 116.863 ops/s # Warmup Iteration 4: 114.875 ops/s # Warmup Iteration 5: 114.185 ops/s Iteration 1: 112.681 ops/s Iteration 2: 113.452 ops/s Iteration 3: 98.820 ops/s Iteration 4: 99.360 ops/s Iteration 5: 94.155 ops/s Result "com.mascix.IntegerListFilter.ecMutableList": 111.019 ±(99.9%) 14.717 ops/s [Average] (min, avg, max) = (94.155, 111.019, 119.941), stdev = 9.734 CI (99.9%): [96.302, 125.736] (assumes normal distribution) # JMH version: 1.23 # VM version: JDK 14.0.2, OpenJDK 64-Bit Server VM, 14.0.2+12-46 # VM invoker: C:\Program Files\OpenJDK\jdk-14.0.2\bin\java.exe # VM options: <none> # Warmup: 5 iterations, 10 s each # Measurement: 5 iterations, 10 s each # Timeout: 10 min per iteration # Threads: 1 thread, will synchronize iterations # Benchmark mode: Throughput, ops/time # Benchmark: com.mascix.IntegerListFilter.ecMutableListParallel # Run progress: 16.67% complete, ETA 00:16:47 # Fork: 1 of 2 # Warmup Iteration 1: 407.722 ops/s # Warmup Iteration 2: 428.903 ops/s # Warmup Iteration 3: 429.079 ops/s # Warmup Iteration 4: 425.613 ops/s # Warmup Iteration 5: 424.238 ops/s Iteration 1: 417.053 ops/s Iteration 2: 398.756 ops/s Iteration 3: 426.630 ops/s Iteration 4: 424.554 ops/s Iteration 5: 425.892 ops/s # Run progress: 25.00% complete, ETA 00:15:06 # Fork: 2 of 2 # Warmup Iteration 1: 397.275 ops/s # Warmup Iteration 2: 413.248 ops/s # Warmup Iteration 3: 418.206 ops/s # Warmup Iteration 4: 418.641 ops/s # Warmup Iteration 5: 418.441 ops/s Iteration 1: 416.863 ops/s Iteration 2: 404.348 ops/s Iteration 3: 415.095 ops/s Iteration 4: 419.154 ops/s Iteration 5: 417.764 ops/s Result "com.mascix.IntegerListFilter.ecMutableListParallel": 416.611 ±(99.9%) 13.608 ops/s [Average] (min, avg, max) = (398.756, 416.611, 426.630), stdev = 9.001 CI (99.9%): [403.003, 430.219] (assumes normal distribution) # JMH version: 1.23 # VM version: JDK 14.0.2, OpenJDK 64-Bit Server VM, 14.0.2+12-46 # VM invoker: C:\Program Files\OpenJDK\jdk-14.0.2\bin\java.exe # VM options: <none> # Warmup: 5 iterations, 10 s each # Measurement: 5 iterations, 10 s each # Timeout: 10 min per iteration # Threads: 1 thread, will synchronize iterations # Benchmark mode: Throughput, ops/time # Benchmark: com.mascix.IntegerListFilter.ecPrimitive # Run progress: 33.33% complete, ETA 00:13:25 # Fork: 1 of 2 # Warmup Iteration 1: 204.407 ops/s # Warmup Iteration 2: 204.898 ops/s # Warmup Iteration 3: 194.960 ops/s # Warmup Iteration 4: 178.705 ops/s # Warmup Iteration 5: 178.812 ops/s Iteration 1: 180.376 ops/s Iteration 2: 180.147 ops/s Iteration 3: 180.086 ops/s Iteration 4: 180.746 ops/s Iteration 5: 178.752 ops/s # Run progress: 41.67% complete, ETA 00:11:44 # Fork: 2 of 2 # Warmup Iteration 1: 204.929 ops/s # Warmup Iteration 2: 208.244 ops/s # Warmup Iteration 3: 196.546 ops/s # Warmup Iteration 4: 179.767 ops/s # Warmup Iteration 5: 179.485 ops/s Iteration 1: 177.174 ops/s Iteration 2: 179.544 ops/s Iteration 3: 179.982 ops/s Iteration 4: 179.820 ops/s Iteration 5: 180.402 ops/s Result "com.mascix.IntegerListFilter.ecPrimitive": 179.703 ±(99.9%) 1.577 ops/s [Average] (min, avg, max) = (177.174, 179.703, 180.746), stdev = 1.043 CI (99.9%): [178.126, 181.280] (assumes normal distribution) # JMH version: 1.23 # VM version: JDK 14.0.2, OpenJDK 64-Bit Server VM, 14.0.2+12-46 # VM invoker: C:\Program Files\OpenJDK\jdk-14.0.2\bin\java.exe # VM options: <none> # Warmup: 5 iterations, 10 s each # Measurement: 5 iterations, 10 s each # Timeout: 10 min per iteration # Threads: 1 thread, will synchronize iterations # Benchmark mode: Throughput, ops/time # Benchmark: com.mascix.IntegerListFilter.ecPrimitiveParallel # Run progress: 50.00% complete, ETA 00:10:03 # Fork: 1 of 2 # Warmup Iteration 1: 642.962 ops/s # Warmup Iteration 2: 672.796 ops/s # Warmup Iteration 3: 674.110 ops/s # Warmup Iteration 4: 676.845 ops/s # Warmup Iteration 5: 671.605 ops/s Iteration 1: 673.029 ops/s Iteration 2: 673.294 ops/s Iteration 3: 673.807 ops/s Iteration 4: 673.549 ops/s Iteration 5: 669.523 ops/s # Run progress: 58.33% complete, ETA 00:08:23 # Fork: 2 of 2 # Warmup Iteration 1: 651.860 ops/s # Warmup Iteration 2: 662.825 ops/s # Warmup Iteration 3: 649.972 ops/s # Warmup Iteration 4: 664.449 ops/s # Warmup Iteration 5: 672.883 ops/s Iteration 1: 670.101 ops/s Iteration 2: 668.074 ops/s Iteration 3: 663.229 ops/s Iteration 4: 661.291 ops/s Iteration 5: 673.637 ops/s Result "com.mascix.IntegerListFilter.ecPrimitiveParallel": 669.953 ±(99.9%) 6.872 ops/s [Average] (min, avg, max) = (661.291, 669.953, 673.807), stdev = 4.545 CI (99.9%): [663.081, 676.825] (assumes normal distribution) # JMH version: 1.23 # VM version: JDK 14.0.2, OpenJDK 64-Bit Server VM, 14.0.2+12-46 # VM invoker: C:\Program Files\OpenJDK\jdk-14.0.2\bin\java.exe # VM options: <none> # Warmup: 5 iterations, 10 s each # Measurement: 5 iterations, 10 s each # Timeout: 10 min per iteration # Threads: 1 thread, will synchronize iterations # Benchmark mode: Throughput, ops/time # Benchmark: com.mascix.IntegerListFilter.jdkList # Run progress: 66.67% complete, ETA 00:06:42 # Fork: 1 of 2 # Warmup Iteration 1: 131.019 ops/s # Warmup Iteration 2: 124.043 ops/s # Warmup Iteration 3: 126.349 ops/s # Warmup Iteration 4: 124.911 ops/s # Warmup Iteration 5: 122.685 ops/s Iteration 1: 111.307 ops/s Iteration 2: 124.077 ops/s Iteration 3: 127.157 ops/s Iteration 4: 125.571 ops/s Iteration 5: 124.025 ops/s # Run progress: 75.00% complete, ETA 00:05:01 # Fork: 2 of 2 # Warmup Iteration 1: 129.972 ops/s # Warmup Iteration 2: 125.094 ops/s # Warmup Iteration 3: 124.477 ops/s # Warmup Iteration 4: 126.937 ops/s # Warmup Iteration 5: 119.262 ops/s Iteration 1: 101.889 ops/s Iteration 2: 103.344 ops/s Iteration 3: 103.035 ops/s Iteration 4: 104.170 ops/s Iteration 5: 103.849 ops/s Result "com.mascix.IntegerListFilter.jdkList": 112.842 ±(99.9%) 16.585 ops/s [Average] (min, avg, max) = (101.889, 112.842, 127.157), stdev = 10.970 CI (99.9%): [96.258, 129.427] (assumes normal distribution) # JMH version: 1.23 # VM version: JDK 14.0.2, OpenJDK 64-Bit Server VM, 14.0.2+12-46 # VM invoker: C:\Program Files\OpenJDK\jdk-14.0.2\bin\java.exe # VM options: <none> # Warmup: 5 iterations, 10 s each # Measurement: 5 iterations, 10 s each # Timeout: 10 min per iteration # Threads: 1 thread, will synchronize iterations # Benchmark mode: Throughput, ops/time # Benchmark: com.mascix.IntegerListFilter.jdkListParallel # Run progress: 83.33% complete, ETA 00:03:21 # Fork: 1 of 2 # Warmup Iteration 1: 335.071 ops/s # Warmup Iteration 2: 348.010 ops/s # Warmup Iteration 3: 349.900 ops/s # Warmup Iteration 4: 352.848 ops/s # Warmup Iteration 5: 354.569 ops/s Iteration 1: 353.534 ops/s Iteration 2: 353.295 ops/s Iteration 3: 352.056 ops/s Iteration 4: 349.989 ops/s Iteration 5: 341.271 ops/s # Run progress: 91.67% complete, ETA 00:01:40 # Fork: 2 of 2 # Warmup Iteration 1: 334.725 ops/s # Warmup Iteration 2: 344.641 ops/s # Warmup Iteration 3: 348.182 ops/s # Warmup Iteration 4: 345.859 ops/s # Warmup Iteration 5: 345.038 ops/s Iteration 1: 333.103 ops/s Iteration 2: 321.674 ops/s Iteration 3: 336.749 ops/s Iteration 4: 341.546 ops/s Iteration 5: 322.156 ops/s Result "com.mascix.IntegerListFilter.jdkListParallel": 340.537 ±(99.9%) 18.300 ops/s [Average] (min, avg, max) = (321.674, 340.537, 353.534), stdev = 12.104 CI (99.9%): [322.238, 358.837] (assumes normal distribution) # Run complete. Total time: 00:20:07 REMEMBER: The numbers below are just data. To gain reusable insights, you need to follow up on why the numbers are the way they are. Use profilers (see -prof, -lprof), design factorial experiments, perform baseline and negative tests that provide experimental control, make sure the benchmarking environment is safe on JVM/OS/HW level, ask for reviews from the domain experts. Do not assume the numbers tell you what you want them to tell. Benchmark Mode Cnt Score Error Units IntegerListFilter.ecMutableList thrpt 10 111.019 ± 14.717 ops/s IntegerListFilter.ecMutableListParallel thrpt 10 416.611 ± 13.608 ops/s IntegerListFilter.ecPrimitive thrpt 10 179.703 ± 1.577 ops/s IntegerListFilter.ecPrimitiveParallel thrpt 10 669.953 ± 6.872 ops/s IntegerListFilter.jdkList thrpt 10 112.842 ± 16.585 ops/s IntegerListFilter.jdkListParallel thrpt 10 340.537 ± 18.300 ops/s Benchmark result is saved to jmh-result.json Result "com.mascix.IntegerListSum.jdkListParallel": 1130.600 ±(99.9%) 7.078 ops/s [Average] (min, avg, max) = (1119.181, 1130.600, 1135.694), stdev = 4.682 CI (99.9%): [1123.522, 1137.678] (assumes normal distribution) # Run complete. Total time: 00:20:06 REMEMBER: The numbers below are just data. To gain reusable insights, you need to follow up on why the numbers are the way they are. Use profilers (see -prof, -lprof), design factorial experiments, perform baseline and negative tests that provide experimental control, make sure the benchmarking environment is safe on JVM/OS/HW level, ask for reviews from the domain experts. Do not assume the numbers tell you what you want them to tell. Benchmark Mode Cnt Score Error Units IntegerListSum.ecMutableList thrpt 10 574.542 ± 25.928 ops/s IntegerListSum.ecMutableListParallel thrpt 10 1138.850 ± 21.732 ops/s IntegerListSum.ecPrimitive thrpt 10 3315.567 ± 3.718 ops/s IntegerListSum.ecPrimitiveParallel thrpt 10 8070.602 ± 436.183 ops/s IntegerListSum.jdkList thrpt 10 543.355 ± 22.079 ops/s IntegerListSum.jdkListParallel thrpt 10 1130.600 ± 7.078 ops/s You can find more results in jdk matrix from eclipse collections benchmark ...

July 25, 2020 · 8 min · Özkan Pakdil

Could not find MessageBodyWriter for response object of type: io.vertx.reactivex.core.buffer.Buffer of media type: text/html;charset=UTF-8

I was trying to use freemarker with quarkus and vertx. I start getting this error Could not find MessageBodyWriter for response object of type: io.vertx.reactivex.core.buffer.Buffer of media type: text/html;charset=UTF-8 And code look like below. I was trying to use reactive approach. @GET @Produces(MediaType.TEXT_HTML) public Uni<Object> doSomethingAsync() throws Exception { io.vertx.core.Vertx params = vertx.getDelegate(); io.vertx.reactivex.core.Vertx args = new io.vertx.reactivex.core.Vertx(params); FreeMarkerTemplateEngine engine = FreeMarkerTemplateEngine.create(args); List<ExampleObject> exs = new ArrayList<>(); for (int i = 0; i < 10; i++) { exs.add(new ExampleObject("name:" + i, "dev:" + i)); } HashMap data = new HashMap<>(); data.put("title", "Vert.x Web"); data.put("exampleObject", new ExampleObject("name", "dev")); data.put("systems", exs); Single<Buffer> rxRender = engine.rxRender(data, "/templates/index.htm"); Buffer page = null; try { page = rxRender.toFuture().get(); } catch (Exception ex) { ex.printStackTrace(); // e.printStacktrace(); } return Uni.createFrom().item(page); } ...

June 2, 2020 · 1 min · Özkan Pakdil