Hello, we got following exception, do you know why the exeception occurs?
Caused by: com.objectdb.o._RollbackException: Failed to commit transaction: Cannot invoke "com.objectdb.o.PAG.N()" because "this.h" is null
at com.objectdb.o.JPE.d(JPE.java:91)
at com.objectdb.o.ERR.h(ERR.java:56)
at com.objectdb.o.OBC.onObjectDBError(OBC.java:1591)
at com.objectdb.jpa.EMImpl.commit(EMImpl.java:295)
at ep.base.transactions.internal.TransactionManagerImpl.lambda$1(TransactionManagerImpl.java:328)
at java.base/java.util.Optional.ifPresent(Optional.java:178)
at ep.base.transactions.internal.TransactionManagerImpl.doCommit(TransactionManagerImpl.java:326)
... 23 common frames omitted
Caused by: java.lang.NullPointerException: Cannot invoke "com.objectdb.o.PAG.N()" because "this.h" is null
at com.objectdb.o.UPT.a(UPT.java:180)
at com.objectdb.o.TSK.f(TSK.java:184)
at com.objectdb.o.TSK.b(TSK.java:157)
at com.objectdb.o.TSK.c(TSK.java:96)
at com.objectdb.o.UPT.n(UPT.java:158)
at com.objectdb.o.PGT.j(PGT.java:155)
at com.objectdb.o.UPT.u(UPT.java:122)
at com.objectdb.o.UPT.g(UPT.java:111)
at com.objectdb.o.TSK.b(TSK.java:146)
at com.objectdb.o.TSK.c(TSK.java:96)
at com.objectdb.o.UPT.n(UPT.java:158)
at com.objectdb.o.PGT.j(PGT.java:155)
at com.objectdb.o.UPT.u(UPT.java:122)
at com.objectdb.o.URT.g(URT.java:173)
at com.objectdb.o.TSK.b(TSK.java:146)
at com.objectdb.o.TSK.c(TSK.java:96)
at com.objectdb.o.TSM.a(TSM.java:88)
at com.objectdb.o.UTT.r(UTT.java:377)
at com.objectdb.o.UTT.g(UTT.java:210)
at com.objectdb.o.TSK.b(TSK.java:146)
at com.objectdb.o.TSK.c(TSK.java:96)
at com.objectdb.o.TSM.a(TSM.java:88)
at com.objectdb.o.MST.Zx(MST.java:1444)
at com.objectdb.o.WRA.Zx(WRA.java:398)
at com.objectdb.o.WSM.Zx(WSM.java:186)
at com.objectdb.o.OBM.aR(OBM.java:990)
at com.objectdb.o.OBM.aU(OBM.java:890)
at com.objectdb.o.OBM.aH(OBM.java:790)
at com.objectdb.jpa.EMImpl.commit(EMImpl.java:292)
... 26 common frames omitted Unexpected exception com.objectdb.o.PAG.N()" because "this.h"
Hi,
After investigating the stack trace, it appears this issue is an internal bug related to how cached pages are stored in temporary files. This process is managed by the objectdb.temp.page-file system property. Specifically, the system is attempting to write a page to the file even when that page is unavailable (null).
To help us resolve this and ensure your data remains healthy, could you please perform the following steps?
1. Database Integrity Check
Please run the ObjectDB Doctor tool on the relevant database file. We want to verify that the underlying database integrity has not been compromised by these exceptions.
2. Contextual Information
Do you notice any patterns regarding when these exceptions occur? For example, does it happen during specific heavy-load operations or certain types of queries?
Analysis & Resolution
The objectdb.temp.page-file option was originally implemented as a custom solution to handle high volumes of "flush without commit" operations. Because this is a specialized, undocumented setting, it may be interacting with the current environment in an unexpected way.
The Fix: We have already implemented a null-check in the code to prevent this NullPointerException from triggering. This update will be included in the next build. While this should stop the crashes, we want to ensure there are no other side effects, which is why the integrity check above is so important.
Regards,
Hi,
Thank you for providing the ObjectDB Doctor report. Based on our analysis, the report confirms several structural issues within the database file. To resolve this and prevent future occurrences, please follow these steps:
1. Database Repair
You will need to run the ObjectDB Doctor in repair mode to generate a fresh, corrected version of your database. We recommend keeping a backup of the original file.
2. Version Upgrade
The report indicates you are using an outdated version of ObjectDB. We strongly recommend upgrading to version 2.9.5.
This update is critical because:
-
It contains a specific fix to avoid the exception you encountered.
-
It includes numerous stability and performance improvements released since your current version.
Once you have performed the repair and the upgrade, please let us know if the issue persists or if you require further assistance with the migration.
Regards,
