vitrivr / cineast

Cineast is a multi-feature content-based mulitmedia retrieval engine. It is capable of retrieving images, audio- and video sequences as well as 3d models based on edge or color sketches, textual descriptions and example objects.
MIT License
57 stars 50 forks source link

Explicitly specifying type as Map for constructors #326

Closed silvanheller closed 2 years ago

silvanheller commented 2 years ago

Changes in #324 made all constructors take Map as parameter if there are properties. However, this requires explictly searching for Map as class type in reflection. If this is not done, an exception is thrown:

2022-07-26 07:55:04.238 [ssq-0] ERROR o.v.c.c.u.ReflectionHelper - java.lang.NoSuchMethodException: org.vitrivr.cineast.core.features.ProvidedOcrSearch.<init>(java.util.LinkedHashMap)
        at java.base/java.lang.Class.getConstructor0(Class.java:3585)
        at java.base/java.lang.Class.getConstructor(Class.java:2271)
        at org.vitrivr.cineast.core.util.ReflectionHelper.instantiate(ReflectionHelper.java:285)
        at org.vitrivr.cineast.core.util.ReflectionHelper.instantiate(ReflectionHelper.java:272)

This PR fixes that by explictly searching for Map constructors if there is a map passed.