Xyrio / RSSOwlnix

RSSOwlnix is a fork of RSSOwl a powerful application to organize, search and read your RSS, RDF & Atom news feeds in a comfortable way. Highlights are saved searches, notifications, filters, fast fulltext search and a flexible, clean user interface.
Eclipse Public License 1.0
237 stars 22 forks source link

JRE 1.8.0.371 appears to break db4o - cannot launch application - downgrading to jre 2.8.0.361 appears to address the issue... #155

Open SethBodine opened 1 year ago

SethBodine commented 1 year ago

OS: Win 10 22H2 fully updated RSSOwlnix version: Latest release 2.9.0 (even redownloaded the release)

Downgraded to 1.8.0.361 to resolve the issue... jre 1.8.0.361

rssowl.log can be provided, but the long and short of it is even a fresh folder structure (clean .rssownix-beta) breaks a new db4o file as well.

!ENTRY org.rssowl.ui 4 4 2023-04-30 23:14:45.292 !MESSAGE [db4o 6.1.501 2023-04-30 23:14:31] Uncaught Exception. Engine closed. [db4o 6.1.501 2023-04-30 23:14:31] Please mail the following to exception@db4o.com: <db4o 6.1.501 stacktrace> java.lang.reflect.InaccessibleObjectException: Unable to make field private final java.lang.String java.lang.Enum.name accessible: module java.base does not "opens java.lang" to unnamed module @5cf3157b at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:357) at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:297) at java.base/java.lang.reflect.Field.checkCanSetAccessible(Field.java:177) at java.base/java.lang.reflect.Field.setAccessible(Field.java:171) at com.db4o.internal.JDK_1_2.setAccessible(Unknown Source) at com.db4o.internal.Platform4.setAccessible(Unknown Source) at com.db4o.reflect.jdk.JdkField.setAccessible(Unknown Source) at com.db4o.internal.FieldMetadata.(Unknown Source) at com.db4o.internal.ClassMetadata.collectReflectFields(Unknown Source) at com.db4o.internal.ClassMetadata.addMembers(Unknown Source) at com.db4o.internal.ClassMetadata.checkChanges(Unknown Source) at com.db4o.internal.ClassMetadataRepository.readYapClass(Unknown Source) at com.db4o.internal.ClassMetadataRepository.getYapClass(Unknown Source) at com.db4o.internal.PartialObjectContainer.getYapClass(Unknown Source) at com.db4o.internal.marshall.ClassMarshaller.read(Unknown Source) at com.db4o.internal.ClassMetadata.forceRead(Unknown Source) at com.db4o.internal.ClassMetadata.readThis(Unknown Source) at com.db4o.internal.ClassMetadataRepository.readYapClass(Unknown Source) at com.db4o.internal.ClassMetadataRepository.getYapClass(Unknown Source) at com.db4o.internal.PartialObjectContainer.getYapClass(Unknown Source) at com.db4o.internal.PartialObjectContainer.handlerByID(Unknown Source) at com.db4o.internal.FieldMetadata.loadHandler(Unknown Source) at com.db4o.internal.marshall.FieldMarshaller0.fromSpec(Unknown Source) at com.db4o.internal.marshall.FieldMarshaller1.fromSpec(Unknown Source) at com.db4o.internal.marshall.FieldMarshaller0.read(Unknown Source) at com.db4o.internal.marshall.ClassMarshaller.readFields(Unknown Source) at com.db4o.internal.marshall.ClassMarshaller.read(Unknown Source) at com.db4o.internal.ClassMetadata.forceRead(Unknown Source) at com.db4o.internal.ClassMetadata.readThis(Unknown Source) at com.db4o.internal.ClassMetadataRepository.readYapClass(Unknown Source) at com.db4o.internal.ClassMetadataRepository.getYapClass(Unknown Source) at com.db4o.internal.PartialObjectContainer.getYapClass(Unknown Source) at com.db4o.internal.marshall.UntypedMarshaller1.read(Unknown Source) at com.db4o.internal.UntypedFieldHandler.read(Unknown Source) at com.db4o.internal.handlers.ArrayHandler.read1(Unknown Source) at com.db4o.internal.marshall.ArrayMarshaller1.read(Unknown Source) at com.db4o.internal.handlers.ArrayHandler.read(Unknown Source) at com.db4o.internal.FieldMetadata.read(Unknown Source) at com.db4o.internal.TranslatedFieldMetadata.instantiate(Unknown Source) at com.db4o.internal.marshall.ObjectMarshaller1$5.processField(Unknown Source) at com.db4o.internal.marshall.ObjectMarshaller.traverseFields(Unknown Source) at com.db4o.internal.marshall.ObjectMarshaller1.instantiateFields(Unknown Source) at com.db4o.internal.ClassMetadata.instantiateFields(Unknown Source) at com.db4o.internal.ClassMetadata.instantiate(Unknown Source) at com.db4o.internal.ObjectReference.read(Unknown Source) at com.db4o.internal.ObjectReference.activate1(Unknown Source) at com.db4o.internal.PartialObjectContainer.activate3CheckStill(Unknown Source) at com.db4o.internal.PartialObjectContainer.activate2(Unknown Source) at com.db4o.internal.PartialObjectContainer.activate1(Unknown Source) at com.db4o.internal.PartialObjectContainer.activate(Unknown Source) at org.rssowl.core.internal.persist.dao.AbstractPersistableDAO.activateAll(AbstractPersistableDAO.java:144) at org.rssowl.core.internal.persist.dao.AbstractPersistableDAO.loadAll(AbstractPersistableDAO.java:134) at org.rssowl.core.internal.persist.dao.CachingDAO.onDatabaseOpened(CachingDAO.java:100) at org.rssowl.core.internal.persist.dao.CachingDAO$1.databaseOpened(CachingDAO.java:73) at org.rssowl.core.internal.persist.service.DBManager.fireDatabaseEvent(DBManager.java:445) at org.rssowl.core.internal.persist.service.DBManager.createDatabase(DBManager.java:275) at org.rssowl.core.internal.persist.service.DBManager.startup(DBManager.java:208) at org.rssowl.core.internal.persist.service.PersistenceServiceImpl.startup(PersistenceServiceImpl.java:60) at org.rssowl.core.internal.InternalOwl.startup(InternalOwl.java:144) at org.rssowl.core.Owl.startup(Owl.java:208) at org.rssowl.ui.internal.Activator$5.run(Activator.java:251) at org.eclipse.jface.operation.ModalContext.runInCurrentThread(ModalContext.java:440) at org.eclipse.jface.operation.ModalContext.run(ModalContext.java:356) at org.eclipse.jface.dialogs.ProgressMonitorDialog.run(ProgressMonitorDialog.java:474) at org.rssowl.ui.internal.Activator.startCore(Activator.java:264) at org.rssowl.ui.internal.Activator.access$2(Activator.java:192) at org.rssowl.ui.internal.Activator$3.run(Activator.java:160) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45) at org.rssowl.ui.internal.Activator.start(Activator.java:157) at org.eclipse.osgi.internal.framework.BundleContextImpl$3.run(BundleContextImpl.java:782) at org.eclipse.osgi.internal.framework.BundleContextImpl$3.run(BundleContextImpl.java:1) at java.base/java.security.AccessController.doPrivileged(AccessController.java:554) at org.eclipse.osgi.internal.framework.BundleContextImpl.startActivator(BundleContextImpl.java:775) at org.eclipse.osgi.internal.framework.BundleContextImpl.start(BundleContextImpl.java:732) at org.eclipse.osgi.internal.framework.EquinoxBundle.startWorker0(EquinoxBundle.java:1005) at org.eclipse.osgi.internal.framework.EquinoxBundle$EquinoxModule.startWorker(EquinoxBundle.java:357) at org.eclipse.osgi.container.Module.doStart(Module.java:584) at org.eclipse.osgi.container.Module.start(Module.java:452) at org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:471) at org.eclipse.osgi.internal.hooks.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:117) at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.findLocalClass(ClasspathManager.java:557) at org.eclipse.osgi.internal.loader.ModuleClassLoader.findLocalClass(ModuleClassLoader.java:331) at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:395) at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:473) at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:422) at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:414) at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:153) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:519) at org.eclipse.osgi.internal.framework.EquinoxBundle.loadClass(EquinoxBundle.java:612) at org.eclipse.core.internal.registry.osgi.RegistryStrategyOSGI.createExecutableExtension(RegistryStrategyOSGI.java:180) at org.eclipse.core.internal.registry.ExtensionRegistry.createExecutableExtension(ExtensionRegistry.java:934) at org.eclipse.core.internal.registry.ConfigurationElement.createExecutableExtension(ConfigurationElement.java:246) at org.eclipse.core.internal.registry.ConfigurationElementHandle.createExecutableExtension(ConfigurationElementHandle.java:63) at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:194) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:137) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:107) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:391) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:246) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:78) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:567) at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:659) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:595) at org.eclipse.equinox.launcher.Main.run(Main.java:1501) at org.eclipse.equinox.launcher.Main.main(Main.java:1474) </db4o 6.1.501 stacktrace>

SethBodine commented 1 year ago

Can confirm - an almost 500MB db file is back up and running after downgrading jre

SethBodine commented 1 year ago

Adding the following line to my RSSOwlnix.ini file appears to resolve the issue (running latest jre)

--add-opens java.base/java.lang=ALL-UNNAMED

Full ini file is as follows:

-startup
plugins/org.eclipse.equinox.launcher_1.5.100.v20180827-1352.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.1.800.v20180827-1352
-vmargs
-Xms2048m
-Xmx4096m
-Dosgi.requiredJavaVersion=1.8
-Djava.util.Arrays.useLegacyMergeSort=true
--add-modules=ALL-SYSTEM
--add-opens java.base/java.lang=ALL-UNNAMED

Might just need to update the FAQ