When inserting a datastream via the Connected Systems API into a node using OSGi, the database encounters a mapping error. This results in the insertion failing.
Affects v2 branch.
2023-01-26 16:57:07.583 INFO SWEApiService:14b08253 [qtp481353845-302] - POST /sensorhub/api/systems/fnurah7mkqbbg/datastreams (from ip=192.168.56.1, user=anonymous)
2023-01-26 16:57:07.589 ERROR SWEApiService:14b08253 [SWAPool-2] - Internal server error while processing request POST /sensorhub/api/systems/fnurah7mkqbbg/datastreams (from ip=192.168.56.1, user=anonymous)
java.lang.IllegalStateException: Error loading class mapping
at org.sensorhub.impl.datastore.h2.kryo.PersistentClassResolver.loadMappings(PersistentClassResolver.java:100)
at org.sensorhub.impl.datastore.h2.kryo.KryoDataType$KryoInstance.<init>(KryoDataType.java:74)
at org.sensorhub.impl.datastore.h2.kryo.KryoDataType$1.create(KryoDataType.java:110)
at org.sensorhub.impl.datastore.h2.kryo.KryoDataType$1.create(KryoDataType.java:104)
at com.esotericsoftware.kryo.util.Pool.obtain(Pool.java:80)
at org.sensorhub.impl.datastore.h2.kryo.KryoDataType.getKryo(KryoDataType.java:138)
at org.sensorhub.impl.datastore.h2.kryo.KryoDataType.initRecordSize(KryoDataType.java:217)
at org.sensorhub.impl.datastore.h2.kryo.KryoDataType.getMemory(KryoDataType.java:151)
at org.h2.mvstore.Page.insertLeaf(Page.java:566)
at org.h2.mvstore.MVBTreeMap.put(MVBTreeMap.java:215)
at org.h2.mvstore.MVMap.put(MVMap.java:124)
at org.sensorhub.impl.datastore.h2.MVDataStreamStoreImpl.put(MVDataStreamStoreImpl.java:430)
at org.sensorhub.impl.datastore.h2.MVDataStreamStoreImpl.add(MVDataStreamStoreImpl.java:229)
at org.sensorhub.impl.system.SystemTransactionHandler.addOrUpdateDataStream(SystemTransactionHandler.java:339)
at org.sensorhub.impl.service.sweapi.obs.DataStreamHandler.addEntry(DataStreamHandler.java:165)
at org.sensorhub.impl.service.sweapi.obs.DataStreamHandler.addEntry(DataStreamHandler.java:44)
at org.sensorhub.impl.service.sweapi.resource.BaseResourceHandler.create(BaseResourceHandler.java:327)
at org.sensorhub.impl.service.sweapi.resource.BaseResourceHandler.doPost(BaseResourceHandler.java:141)
at org.sensorhub.impl.service.sweapi.obs.DataStreamHandler.doPost(DataStreamHandler.java:93)
at org.sensorhub.impl.service.sweapi.resource.BaseResourceHandler.doPost(BaseResourceHandler.java:136)
at org.sensorhub.impl.service.sweapi.RootHandler.doPost(RootHandler.java:53)
at org.sensorhub.impl.service.sweapi.RestApiServlet.lambda$doPost$1(RestApiServlet.java:208)
at java.base/java.util.concurrent.CompletableFuture$AsyncRun.run(CompletableFuture.java:1736)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: java.lang.ClassNotFoundException: org.sensorhub.impl.service.sweapi.system.SystemFeatureAdapter not found by org.sensorhub.sensorhub-core [4]
at org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1585)
at org.apache.felix.framework.BundleWiringImpl.access$300(BundleWiringImpl.java:79)
at org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:1970)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
at java.base/java.lang.Class.forName0(Native Method)
at java.base/java.lang.Class.forName(Class.java:398)
at org.sensorhub.impl.datastore.h2.kryo.PersistentClassResolver.loadMappings(PersistentClassResolver.java:94)
... 28 common frames omitted
When inserting a datastream via the Connected Systems API into a node using OSGi, the database encounters a mapping error. This results in the insertion failing.
Affects v2 branch.