Details
-
Type:
Bug
-
Status: Closed
-
Priority:
Blocker
-
Resolution: Fixed
-
Affects Version/s: 3.16.0
-
Fix Version/s: 3.16.1
-
Component/s: Licensing, User Token
-
Labels:
Description
Install Nexus OSS 3.16.0 into a system that does not have a license, and start it up. Then install the license, and restart. This fails. Full log attached.
2019-04-14 10:49:00,947-0500 ERROR [FelixStartLevel <command>sql.UPDATE usertoken_record SET username = username.toLowerCase()</command>] *SYSTEM com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - Exception `411F5A02` in storage `plocal:/home/rseddon/temp/sonatype-work/nexus3/db/security`: 2.2.36 (build d3beb772c02098ceaea89779a7afd4b7305d3788, branch 2.2.x)
com.orientechnologies.orient.core.exception.OQueryParsingException: Error on parsing query
Query: usertoken_record
------^
DB name="security"
at com.orientechnologies.orient.core.sql.filter.OSQLTarget.<init>(OSQLTarget.java:74)
at com.orientechnologies.orient.core.sql.OSQLEngine.parseTarget(OSQLEngine.java:464)
at com.orientechnologies.orient.core.sql.OCommandExecutorSQLSelect.parse(OCommandExecutorSQLSelect.java:278)
at com.orientechnologies.orient.core.sql.OCommandExecutorSQLSelect.parse(OCommandExecutorSQLSelect.java:93)
at com.orientechnologies.orient.core.sql.OCommandExecutorSQLDelegate.parse(OCommandExecutorSQLDelegate.java:53)
at com.orientechnologies.orient.core.sql.OCommandExecutorSQLDelegate.parse(OCommandExecutorSQLDelegate.java:34)
at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.command(OAbstractPaginatedStorage.java:3302)
at com.orientechnologies.orient.core.sql.query.OSQLQuery.run(OSQLQuery.java:78)
at com.orientechnologies.orient.core.sql.query.OSQLAsynchQuery.run(OSQLAsynchQuery.java:74)
at com.orientechnologies.orient.core.query.OQueryAbstract.execute(OQueryAbstract.java:33)
at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.query(ODatabaseDocumentTx.java:756)
at com.orientechnologies.orient.core.sql.OCommandExecutorSQLUpdate.execute(OCommandExecutorSQLUpdate.java:291)
at com.orientechnologies.orient.core.sql.OCommandExecutorSQLDelegate.execute(OCommandExecutorSQLDelegate.java:70)
at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.executeCommand(OAbstractPaginatedStorage.java:3400)
at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.command(OAbstractPaginatedStorage.java:3318)
at com.orientechnologies.orient.core.command.OCommandRequestTextAbstract.execute(OCommandRequestTextAbstract.java:69)
at com.sonatype.nexus.usertoken.plugin.store.orient.internal.SecurityDatabaseUpgrade_1_1.lambda$0(SecurityDatabaseUpgrade_1_1.java:50)
at org.sonatype.nexus.orient.DatabaseUpgradeSupport.withDatabase(DatabaseUpgradeSupport.java:65)
at com.sonatype.nexus.usertoken.plugin.store.orient.internal.SecurityDatabaseUpgrade_1_1.apply(SecurityDatabaseUpgrade_1_1.java:49)
at org.sonatype.nexus.upgrade.internal.UpgradeServiceImpl.lambda$2(UpgradeServiceImpl.java:183)
at java.util.ArrayList.forEach(ArrayList.java:1257)
at org.sonatype.nexus.upgrade.internal.UpgradeServiceImpl.doUpgrade(UpgradeServiceImpl.java:125)
at org.sonatype.nexus.upgrade.internal.UpgradeServiceImpl.doStart(UpgradeServiceImpl.java:90)
at org.sonatype.nexus.common.stateguard.StateGuardLifecycleSupport.start(StateGuardLifecycleSupport.java:67)
at org.sonatype.nexus.upgrade.internal.UpgradeServiceImpl$$EnhancerByGuice$$dbe05174.CGLIB$start$4(<generated>)
at org.sonatype.nexus.upgrade.internal.UpgradeServiceImpl$$EnhancerByGuice$$dbe05174$$FastClassByGuice$$2ae549d6.invoke(<generated>)
at com.google.inject.internal.cglib.proxy.$MethodProxy.invokeSuper(MethodProxy.java:228)
at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:76)
at org.sonatype.nexus.common.stateguard.MethodInvocationAction.run(MethodInvocationAction.java:39)
at org.sonatype.nexus.common.stateguard.StateGuard$TransitionImpl.run(StateGuard.java:193)
at org.sonatype.nexus.common.stateguard.TransitionsInterceptor.invoke(TransitionsInterceptor.java:56)
at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:77)
at com.google.inject.internal.InterceptorStackCallback.intercept(InterceptorStackCallback.java:55)
at org.sonatype.nexus.upgrade.internal.UpgradeServiceImpl$$EnhancerByGuice$$dbe05174.start(<generated>)
at org.sonatype.nexus.extender.NexusLifecycleManager.startComponent(NexusLifecycleManager.java:199)
at org.sonatype.nexus.extender.NexusLifecycleManager.to(NexusLifecycleManager.java:111)
at org.sonatype.nexus.extender.NexusContextListener.moveToPhase(NexusContextListener.java:304)
at org.sonatype.nexus.extender.NexusContextListener.frameworkEvent(NexusContextListener.java:201)
at org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1429)
at org.apache.felix.framework.FrameworkStartLevelImpl.run(FrameworkStartLevelImpl.java:308)
at java.lang.Thread.run(Thread.java:748)
Caused by: com.orientechnologies.orient.core.exception.OCommandExecutionException: Class 'USERTOKEN_RECORD' was not found in database 'security'
DB name="security"
at com.orientechnologies.orient.core.sql.filter.OSQLTarget.extractTargets(OSQLTarget.java:273)
at com.orientechnologies.orient.core.sql.filter.OSQLTarget.<init>(OSQLTarget.java:64)
... 40 common frames omitted
Patch for 3.16.0
A nexus-usertoken-plugin-3.16.0-01.jar patched jar is attached which fixes this problem for 3.16.0-01. To apply this patch replace "nexus-3.16.0-01/system/com/sonatype/nexus/plugins/nexus-usertoken-plugin/3.16.0-01/nexus-usertoken-plugin-3.16.0-01.jar” with the attached jar.