Giter VIP home page Giter VIP logo

Comments (5)

 avatar commented on August 22, 2024

I did other tests.

it seems that the error occures when you try to add an object of type Map with more than 5 objects in it.

It does the same error when I do that:

val data:Map[String,Any] = Map(
      "test1" -> "test1",
      "test2" -> "test2",
      "test3" -> "test3",
      "test4" -> "test3",
      "test5" -> "test3"
    )

    val data2 = Map("mais oui" -> data)
    map.putAll(data2)

jdbm.commit()

    jdbm.close()
    val jdbm2 = DBMaker.openFile("scalaError").deleteFilesAfterClose().make()
    val map2 = jdbm2.getHashMap("test")
    map2.clear()
    jdbm2.commit()

from jdbm3.

 avatar commented on August 22, 2024

I am still very interested in knowing why I get this NPE but It seems I have found a workaround.

If you use scala.collection.mutable.Map instead of the immutable version, it seems to work.

from jdbm3.

 avatar commented on August 22, 2024

the stacktrace

java.lang.Error: Could not instanciate class
at org.apache.jdbm.SerialClassInfo.readObject(SerialClassInfo.java:493)
at org.apache.jdbm.Serialization.readObject(Serialization.java:40)
at org.apache.jdbm.Serialization.deserialize(Serialization.java:901)
at org.apache.jdbm.Serialization.deserialize(Serialization.java:614)
at org.apache.jdbm.DBStore.fetch2(DBStore.java:400)
at org.apache.jdbm.DBStore.fetch(DBStore.java:366)
at org.apache.jdbm.DBCacheMRU.fetch(DBCacheMRU.java:165)
at org.apache.jdbm.BTreeLazyRecord.get(BTreeLazyRecord.java:28)
at org.apache.jdbm.HTreeBucket.removeElement(HTreeBucket.java:179)
at org.apache.jdbm.HTreeDirectory.remove(HTreeDirectory.java:294)
at org.apache.jdbm.HTree.remove(HTree.java:219)
at org.apache.jdbm.HTreeDirectory$HDIterator.remove(HTreeDirectory.java:611)
at org.apache.jdbm.HTree.clear(HTree.java:258)
at com.yoocos.test.JdbmIssue.test(JdbmIssue.scala:43)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:45)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:42)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:263)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:68)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:47)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:231)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:60)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:229)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:50)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:222)
at org.junit.runners.ParentRunner.run(ParentRunner.java:300)
at org.junit.runner.JUnitCore.run(JUnitCore.java:157)
at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:63)
Caused by: java.lang.NullPointerException
at java.lang.reflect.Array.newArray(Native Method)
at java.lang.reflect.Array.newInstance(Array.java:52)
at org.apache.jdbm.Serialization.deserializeArrayObject(Serialization.java:1094)
at org.apache.jdbm.Serialization.deserialize(Serialization.java:910)
at org.apache.jdbm.SerialClassInfo.readObject(SerialClassInfo.java:487)
... 34 more

from jdbm3.

 avatar commented on August 22, 2024

Ok I found something that seems to work.

The issue is that the two properties classId2class and class2classId are not populated.

So instead of using them in deserializeArrayObject I use the property registered like that:

Class clazz = Class.forName(registered.get(classId).getName());

my test is passing now.

from jdbm3.

jankotek avatar jankotek commented on August 22, 2024

Closing, reopen issue in JDBM4 if it is still a problem.

from jdbm3.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.