ObjectDB ObjectDB

Issue #1080: Error 990 when querying a class with persistence-capable-superclass

Type: Bug ReoprtVersion: 2.5.4Priority: NormalStatus: ActiveReplies: 8
#1
[ObjectDB 2.4.7_07] Unexpected exception (Error 990)
  Generated by Java HotSpot(TM) Server VM 1.7.0_10 (on Linux 3.2.0-39-generic-pae).
Please report this error on http://www.objectdb.com/database/issue/new
com.objectdb.o.InternalException: null
com.objectdb.o.InternalException
    at com.objectdb.o.InternalException.f(InternalException.java:236)
    at com.objectdb.o.STA.K(STA.java:339)
    at com.objectdb.o.ENT.D(ENT.java:533)
    at com.objectdb.o.ENT.M(ENT.java:681)
    at com.objectdb.o.LDR.F(LDR.java:589)
    at com.objectdb.o.LDR.E(LDR.java:466)
    at com.objectdb.o.OBC.UJ(OBC.java:1102)
    at com.objectdb.o.QRR.f(QRR.java:220)
    at com.objectdb.jdo.JdoQuery.execute0(JdoQuery.java:811)
    at com.objectdb.jdo.JdoQuery.execute(JdoQuery.java:720)
    at com.spiffymap.jdo.JdoDaoBase.count(JdoDaoBase.java:143)

JdoDaoBase.java:143 is the last line of the following:

Query query = pm.newQuery();
query.setResult("count(this)");
query.setClass(myClass);
return (Long) query.execute();

All queries (eg ones with parameters) on the same class fail with the same error.

The code was working with the class in this case until I added a persistence-capable-superclass so I guess it's related to that.

edit
delete
#2

Thank you for this report.

Could you please provide a test case that reproduces the exception?

ObjectDB Support
edit
delete
#3

I don't have much time at the moment and simplifying a complex codebase into a simple test case which still fails with the same error is a lot of work. Looking at where the exception is being thrown, can you give me any clues as to what is likely to be involved, to help me with this work? Could it be because of the superclass, as I guessed? Or a failure of run-time enhancement? RDBMS-based JDO/JPA implementations use a discriminator column when concrete superclasses are involved - is that entirely transparent with ObjectDB?

edit
delete
#4

Unfortunately this stack trace does not provide much valuable information. The exception indicates some unexpected internal ObjectDB state, and the cause is unknown.

It happens during cleanup of query execution in a finally block. Maybe there is another problem that stops the query execution with another exception, but that other exception is hidden by this internal cleanup exception. You may find more information in the log file.

If you can make your application available to us (just jar/class files, no java files are needed) with instructions how to run it and reproduce the exception, isolating the problem into a small test case may not be needed.

ObjectDB Support
edit
delete
#5

Sorry, I'm no longer able to reproduce this problem at the moment.

edit
delete
#6
[2014-02-14 15:38:47 #1 *]
[ObjectDB 2.5.4] Unexpected exception (Error 990)
  Generated by Java HotSpot(TM) 64-Bit Server VM 1.7.0_17 (on Windows 7 6.1).
Please report this error on http://www.objectdb.com/database/issue/new
com.objectdb.o.InternalException: null
com.objectdb.o.InternalException
at com.objectdb.o.InternalException.f(InternalException.java:236)
at com.objectdb.o.STA.K(STA.java:339)
at com.objectdb.o.ENT.E(ENT.java:533)
at com.objectdb.o.ENT.N(ENT.java:681)
at com.objectdb.o.LDR.F(LDR.java:593)
at com.objectdb.o.LDR.E(LDR.java:470)
at com.objectdb.o.OBC.UO(OBC.java:1080)
at com.objectdb.o.QRR.f(QRR.java:220)
at com.objectdb.jpa.JpaQuery.getResultList(JpaQuery.java:716)
at com.sprecher.easyeng.dbservice.objectdb.ObjectDBRulesEngineDAOImpl.executeQuery(ObjectDBRulesEngineDAOImpl.java:239)
at com.sprecher.easyeng.rulesengine.test.RulesEngineTestSystem.checkRemoveObjectWithChildren(RulesEngineTestSystem.java:2189)
at com.sprecher.easyeng.rulesengine.test.RulesEngineTestSystem.test(RulesEngineTestSystem.java:254)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
edit
delete
#7

This exception is still a mystery, and any help in reproducing it will be highly appreciated.

ObjectDB Support
edit
delete
#8

I face this problem by multiple begin and commit transaction

 

IRule rule = new Rule();
  ...
 
  dbService.beginTrans();
  engine.addRule(rule);

   dbService.commitTrans();
  dbService.beginTrans();

  rule = new Rule();

....
  engine.addRule(rule);

  dbService.commitTrans();
edit
delete
#9

Will you be able to provide a test case that reproduces this exception?

ObjectDB Support
edit
delete

Reply

To post on this website please sign in.