Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

The latest Sormas stack (1.95.1) is not coming up with an empty db - starting from the scratch #13063

Open
tnako-sg opened this issue Apr 2, 2024 · 1 comment
Labels
bug An error or misbehavior of an existing feature (ticket type)

Comments

@tnako-sg
Copy link

tnako-sg commented Apr 2, 2024

Bug Description

When starting Sormas from the scratch (with an empty db) it throws below error:
Null value was assigned to a property of primitive type setter of de.symeda.sormas.backend.feature.FeatureConfiguration.enabled

The content of postgres db table is:
root@akademieby /opt/sormas # docker exec -it sormas_postgres_1 psql -U postgres sormas

sormas=# select featuretype, enabled, properties, entitytype from featureconfiguration order by featuretype asc, entitytype;
featuretype | enabled | properties | entitytype
---------------------------------+---------+--------------------------------------------------------+------------
HIDE_JURISDICTION_FIELDS | | |
SORMAS_TO_SORMAS_SHARE_CONTACTS | t | {"SHARE_SAMPLES" : true, "SHARE_IMMUNIZATIONS" : true} |
(2 rows)

which mean that HIDE_JURISDICTION_FIELDS enables is NULL by default

The Java error is below:

{"Timestamp":"2024-03-26T15:29:30.317+0100","Level":"SCHWERWIEGEND","Version":"Payara 5.2022.5","LoggerName":"javax.enterprise.system.tools.deployment.common","ThreadID":"112","ThreadName":"payara-executor-service-scheduled-task","TimeMillis":"1711463370317","LevelValue":"1000","Throwable":{"Exception":"Exception while invoking class org.glassfish.ejb.startup.EjbApplication start method","StackTrace":"javax.ejb.EJBException: javax.ejb.CreateException: Initialization failed for Singleton StartupShutdownService\n\tat com.sun.ejb.containers.AbstractSingletonContainer$SingletonContextFactory.create(AbstractSingletonContainer.java:689)\n\tat com.sun.ejb.containers.AbstractSingletonContainer.instantiateSingletonInstance(AbstractSingletonContainer.java:421)\n\tat org.glassfish.ejb.startup.SingletonLifeCycleManager.initializeSingleton(SingletonLifeCycleManager.java:219)\n\tat org.glassfish.ejb.startup.SingletonLifeCycleManager.initializeSingleton(SingletonLifeCycleManager.java:180)\n\tat org.glassfish.ejb.startup.SingletonLifeCycleManager.doStartup(SingletonLifeCycleManager.java:159)\n\tat org.glassfish.ejb.startup.EjbApplication.start(EjbApplication.java:171)\n\tat org.glassfish.internal.data.EngineRef.start(EngineRef.java:123)\n\tat org.glassfish.internal.data.ModuleInfo.start(ModuleInfo.java:292)\n\tat org.glassfish.internal.data.ApplicationInfo.start(ApplicationInfo.java:361)\n\tat com.sun.enterprise.v3.server.ApplicationLifecycle.initialize(ApplicationLifecycle.java:629)\n\tat org.glassfish.deployment.admin.DeployCommand.execute(DeployCommand.java:597)\n\tat com.sun.enterprise.v3.admin.CommandRunnerImpl$2$1.run(CommandRunnerImpl.java:556)\n\tat com.sun.enterprise.v3.admin.CommandRunnerImpl$2$1.run(CommandRunnerImpl.java:552)\n\tat java.base/java.security.AccessController.doPrivileged(Native Method)\n\tat java.base/javax.security.auth.Subject.doAs(Subject.java:361)\n\tat com.sun.enterprise.v3.admin.CommandRunnerImpl$2.execute(CommandRunnerImpl.java:551)\n\tat com.sun.enterprise.v3.admin.CommandRunnerImpl$3.run(CommandRunnerImpl.java:582)\n\tat com.sun.enterprise.v3.admin.CommandRunnerImpl$3.run(CommandRunnerImpl.java:574)\n\tat java.base/java.security.AccessController.doPrivileged(Native Method)\n\tat java.base/javax.security.auth.Subject.doAs(Subject.java:361)\n\tat com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:573)\n\tat com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:1497)\n\tat com.sun.enterprise.v3.admin.CommandRunnerImpl.access$1200(CommandRunnerImpl.java:120)\n\tat com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1869)\n\tat org.glassfish.deployment.autodeploy.AutoOperation.run(AutoOperation.java:149)\n\tat org.glassfish.deployment.autodeploy.AutoDeployer.deploy(AutoDeployer.java:532)\n\tat org.glassfish.deployment.autodeploy.AutoDeployer.deployAll(AutoDeployer.java:437)\n\tat org.glassfish.deployment.autodeploy.AutoDeployer.run(AutoDeployer.java:371)\n\tat org.glassfish.deployment.autodeploy.AutoDeployer.run(AutoDeployer.java:362)\n\tat org.glassfish.deployment.autodeploy.AutoDeployService$1.run(AutoDeployService.java:231)\n\tat java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)\n\tat java.base/java.util.concurrent.FutureTask.runAndReset(FutureTask.java:305)\n\tat java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:305)\n\tat java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)\n\tat java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)\n\tat java.base/java.lang.Thread.run(Thread.java:829)\nCaused by: javax.ejb.CreateException: Initialization failed for Singleton StartupShutdownService\n\tat com.sun.ejb.containers.AbstractSingletonContainer.createSingletonEJB(AbstractSingletonContainer.java:542)\n\tat com.sun.ejb.containers.AbstractSingletonContainer.access$000(AbstractSingletonContainer.java:81)\n\tat com.sun.ejb.containers.AbstractSingletonContainer$SingletonContextFactory.create(AbstractSingletonContainer.java:687)\n\t... 35 more\nCaused by: javax.ejb.EJBTransactionRolledbackException: Exception thrown from bean: javax.persistence.PersistenceException: org.hibernate.PropertyAccessException: Null value was assigned to a property of primitive type setter of de.symeda.sormas.backend.feature.FeatureConfiguration.enabled\n\tat com.sun.ejb.containers.BaseContainer.mapLocal3xException(BaseContainer.java:2386)\n\tat com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:2183)\n\tat com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:2104)\n\tat com.sun.ejb.containers.EJBLocalObjectInvocationHandler.invoke(EJBLocalObjectInvocationHandler.java:220)\n\tat com.sun.ejb.containers.EJBLocalObjectInvocationHandlerDelegate.invoke(EJBLocalObjectInvocationHandlerDelegate.java:90)\n\tat com.sun.proxy.$Proxy674.createMissingFeatureConfigurations(Unknown Source)\n\tat de.symeda.sormas.backend.feature.EJB31_Generated__FeatureConfigurationService__Intf____Bean.createMissingFeatureConfigurations(Unknown Source)\n\tat de.symeda.sormas.backend.common.StartupShutdownService.startup(StartupShutdownService.java:241)\n\tat java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n\tat java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\n\tat java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n\tat java.base/java.lang.reflect.Method.invoke(Method.java:566)\n\tat com.sun.ejb.containers.interceptors.BeanCallbackInterceptor.intercept(InterceptorManager.java:1022)\n\tat com.sun.ejb.containers.interceptors.CallbackChainImpl.invokeNext(CallbackChainImpl.java:72)\n\tat com.sun.ejb.containers.interceptors.CallbackInvocationContext.proceed(CallbackInvocationContext.java:204)\n\tat com.sun.ejb.containers.interceptors.SystemInterceptorProxy.doCall(SystemInterceptorProxy.java:163)\n\tat com.sun.ejb.containers.interceptors.SystemInterceptorProxy.init(SystemInterceptorProxy.java:125)\n\tat java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n\tat java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\n\tat java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n\tat java.base/java.lang.reflect.Method.invoke(Method.java:566)\n\tat com.sun.ejb.containers.interceptors.CallbackInterceptor.intercept(InterceptorManager.java:978)\n\tat com.sun.ejb.containers.interceptors.CallbackChainImpl.invokeNext(CallbackChainImpl.java:72)\n\tat com.sun.ejb.containers.interceptors.CallbackInvocationContext.proceed(CallbackInvocationContext.java:204)\n\tat org.jboss.weld.module.ejb.AbstractEJBRequestScopeActivationInterceptor.aroundInvoke(AbstractEJBRequestScopeActivationInterceptor.java:81)\n\tat org.jboss.weld.module.ejb.SessionBeanInterceptor.aroundInvoke(SessionBeanInterceptor.java:52)\n\tat java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n\tat java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\n\tat java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n\tat java.base/java.lang.reflect.Method.invoke(Method.java:566)\n\tat com.sun.ejb.containers.interceptors.CallbackInterceptor.intercept(InterceptorManager.java:978)\n\tat com.sun.ejb.containers.interceptors.CallbackChainImpl.invokeNext(CallbackChainImpl.java:72)\n\tat com.sun.ejb.containers.interceptors.InterceptorManager.intercept(InterceptorManager.java:418)\n\tat com.sun.ejb.containers.interceptors.InterceptorManager.intercept(InterceptorManager.java:381)\n\tat com.sun.ejb.containers.BaseContainer.intercept(BaseContainer.java:2071)\n\tat com.sun.ejb.containers.AbstractSingletonContainer.createSingletonEJB(AbstractSingletonContainer.java:529)\n\t... 37 more\nCaused by: javax.ejb.TransactionRolledbackLocalException: Exception thrown from bean: javax.persistence.PersistenceException: org.hibernate.PropertyAccessException: Null value was assigned to a property of primitive type setter of de.symeda.sormas.backend.feature.FeatureConfiguration.enabled\n\tat com.sun.ejb.containers.EJBContainerTransactionManager.checkExceptionClientTx(EJBContainerTransactionManager.java:615)\n\tat com.sun.ejb.containers.EJBContainerTransactionManager.postInvokeTx(EJBContainerTransactionManager.java:485)\n\tat com.sun.ejb.containers.BaseContainer.postInvokeTx(BaseContainer.java:4601)\n\tat com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:2134)\n\t... 71 more\nCaused by: javax.persistence.PersistenceException: org.hibernate.PropertyAccessException: Null value was assigned to a property of primitive type setter of de.symeda.sormas.backend.feature.FeatureConfiguration.enabled\n\tat org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:154)\n\tat org.hibernate.query.internal.AbstractProducedQuery.list(AbstractProducedQuery.java:1626)\n\tat org.hibernate.query.Query.getResultList(Query.java:165)\n\tat org.hibernate.query.criteria.internal.compile.CriteriaQueryTypeQueryAdapter.getResultList(CriteriaQueryTypeQueryAdapter.java:76)\n\tat de.symeda.sormas.backend.common.BaseAdoService.getAll(BaseAdoService.java:161)\n\tat de.symeda.sormas.backend.feature.FeatureConfigurationService.getServerFeatureConfigurations(FeatureConfigurationService.java:197)\n\tat de.symeda.sormas.backend.feature.FeatureConfigurationService.createMissingFeatureConfigurations(FeatureConfigurationService.java:132)\n\tat java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n\tat java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\n\tat java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n\tat java.base/java.lang.reflect.Method.invoke(Method.java:566)\n\tat org.glassfish.ejb.security.application.EJBSecurityManager.runMethod(EJBSecurityManager.java:588)\n\tat org.glassfish.ejb.security.application.EJBSecurityManager.invoke(EJBSecurityManager.java:408)\n\tat com.sun.ejb.containers.BaseContainer.invokeBeanMethod(BaseContainer.java:4835)\n\tat com.sun.ejb.EjbInvocation.invokeBeanMethod(EjbInvocation.java:665)\n\tat com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:834)\n\tat com.sun.ejb.EjbInvocation.proceed(EjbInvocation.java:615)\n\tat de.symeda.sormas.backend.util.ValidationConstraintViolationInterceptor.handleValidationConstraintViolation(ValidationConstraintViolationInterceptor.java:35)\n\tat jdk.internal.reflect.GeneratedMethodAccessor202.invoke(Unknown Source)\n\tat java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n\tat java.base/java.lang.reflect.Method.invoke(Method.java:566)\n\tat com.sun.ejb.containers.interceptors.AroundInvokeInterceptor.intercept(InterceptorManager.java:888)\n\tat com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:833)\n\tat com.sun.ejb.EjbInvocation.proceed(EjbInvocation.java:615)\n\tat de.symeda.sormas.backend.util.RightsAllowedInterceptor.checkRightsAllowed(RightsAllowedInterceptor.java:111)\n\tat jdk.internal.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)\n\tat java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n\tat java.base/java.lang.reflect.Method.invoke(Method.java:566)\n\tat com.sun.ejb.containers.interceptors.AroundInvokeInterceptor.intercept(InterceptorManager.java:888)\n\tat com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:833)\n\tat com.sun.ejb.EjbInvocation.proceed(EjbInvocation.java:615)\n\tat de.symeda.sormas.backend.util.PerformanceLoggingInterceptor.logInvokeDuration(PerformanceLoggingInterceptor.java:37)\n\tat jdk.internal.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)\n\tat java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n\tat java.base/java.lang.reflect.Method.invoke(Method.java:566)\n\tat com.sun.ejb.containers.interceptors.AroundInvokeInterceptor.intercept(InterceptorManager.java:888)\n\tat com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:833)\n\tat com.sun.ejb.EjbInvocation.proceed(EjbInvocation.java:615)\n\tat de.symeda.sormas.backend.audit.AuditLoggerInterceptor.logAudit(AuditLoggerInterceptor.java:158)\n\tat jdk.internal.reflect.GeneratedMethodAccessor199.invoke(Unknown Source)\n\tat java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n\tat java.base/java.lang.reflect.Method.invoke(Method.java:566)\n\tat com.sun.ejb.containers.interceptors.AroundInvokeInterceptor.intercept(InterceptorManager.java:888)\n\tat com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:833)\n\tat com.sun.ejb.EjbInvocation.proceed(EjbInvocation.java:615)\n\tat com.sun.ejb.containers.interceptors.SystemInterceptorProxy.doCall(SystemInterceptorProxy.java:163)\n\tat com.sun.ejb.containers.interceptors.SystemInterceptorProxy.aroundInvoke(SystemInterceptorProxy.java:140)\n\tat jdk.internal.reflect.GeneratedMethodAccessor198.invoke(Unknown Source)\n\tat java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n\tat java.base/java.lang.reflect.Method.invoke(Method.java:566)\n\tat com.sun.ejb.containers.interceptors.AroundInvokeInterceptor.intercept(InterceptorManager.java:888)\n\tat com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:833)\n\tat com.sun.ejb.EjbInvocation.proceed(EjbInvocation.java:615)\n\tat org.jboss.weld.module.ejb.AbstractEJBRequestScopeActivationInterceptor.aroundInvoke(AbstractEJBRequestScopeActivationInterceptor.java:72)\n\tat org.jboss.weld.module.ejb.SessionBeanInterceptor.aroundInvoke(SessionBeanInterceptor.java:52)\n\tat jdk.internal.reflect.GeneratedMethodAccessor192.invoke(Unknown Source)\n\tat java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n\tat java.base/java.lang.reflect.Method.invoke(Method.java:566)\n\tat com.sun.ejb.containers.interceptors.AroundInvokeInterceptor.intercept(InterceptorManager.java:888)\n\tat com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:833)\n\tat com.sun.ejb.containers.interceptors.InterceptorManager.intercept(InterceptorManager.java:375)\n\tat com.sun.ejb.containers.BaseContainer.__intercept(BaseContainer.java:4807)\n\tat com.sun.ejb.containers.BaseContainer.intercept(BaseContainer.java:4795)\n\tat com.sun.ejb.containers.EJBLocalObjectInvocationHandler.invoke(EJBLocalObjectInvocationHandler.java:212)\n\t... 69 more\nCaused by: org.hibernate.PropertyAccessException: Null value was assigned to a property of primitive type setter of de.symeda.sormas.backend.feature.FeatureConfiguration.enabled\n\tat org.hibernate.property.access.spi.SetterMethodImpl.set(SetterMethodImpl.java:88)\n\tat org.hibernate.tuple.entity.AbstractEntityTuplizer.setPropertyValues(AbstractEntityTuplizer.java:694)\n\tat org.hibernate.tuple.entity.PojoEntityTuplizer.setPropertyValues(PojoEntityTuplizer.java:144)\n\tat org.hibernate.persister.entity.AbstractEntityPersister.setPropertyValues(AbstractEntityPersister.java:5281)\n\tat org.hibernate.engine.internal.TwoPhaseLoad.initializeEntityFromEntityEntryLoadedState(TwoPhaseLoad.java:253)\n\tat org.hibernate.engine.internal.TwoPhaseLoad.initializeEntity(TwoPhaseLoad.java:156)\n\tat org.hibernate.engine.internal.TwoPhaseLoad.initializeEntity(TwoPhaseLoad.java:126)\n\tat org.hibernate.loader.Loader.initializeEntitiesAndCollections(Loader.java:1201)\n\tat org.hibernate.loader.Loader.processResultSet(Loader.java:1009)\n\tat org.hibernate.loader.Loader.doQuery(Loader.java:967)\n\tat org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:357)\n\tat org.hibernate.loader.Loader.doList(Loader.java:2868)\n\tat org.hibernate.loader.Loader.doList(Loader.java:2850)\n\tat org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2682)\n\tat org.hibernate.loader.Loader.list(Loader.java:2677)\n\tat org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:540)\n\tat org.hibernate.hql.internal.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:400)\n\tat org.hibernate.engine.query.spi.HQLQueryPlan.performList(HQLQueryPlan.java:218)\n\tat org.hibernate.internal.SessionImpl.list(SessionImpl.java:1459)\n\tat org.hibernate.query.internal.AbstractProducedQuery.doList(AbstractProducedQuery.java:1649)\n\tat org.hibernate.query.internal.AbstractProducedQuery.list(AbstractProducedQuery.java:1617)\n\t... 131 more\nCaused by: java.lang.IllegalArgumentException\n\tat java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n\tat java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\n\tat java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n\tat java.base/java.lang.reflect.Method.invoke(Method.java:566)\n\tat org.hibernate.property.access.spi.SetterMethodImpl.set(SetterMethodImpl.java:45)\n\t... 151 more\n"}}

Reproduction Steps

  1. start sormas with an empty database
  2. sormas container is not coming up
  3. Error is thrown: Null value was assigned to a property of primitive type setter of de.symeda.sormas.backend.feature.FeatureConfiguration.enabled

Expected Behavior

No response

Affected Area(s)

Web app

SORMAS Version

1.95.1

Android version/Browser

any

User Role(s)

any

Server URL

No response

Additional Information

No response

@tnako-sg tnako-sg added the bug An error or misbehavior of an existing feature (ticket type) label Apr 2, 2024
@fhauptmann
Copy link
Contributor

This can be fixed by executing
update featureconfiguration set enabled = true where enabled is null;
But SORMAS should create working configuration on first startup.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug An error or misbehavior of an existing feature (ticket type)
Projects
None yet
Development

No branches or pull requests

2 participants