Hello,
I was having trouble creating a connection to a graph database in orientDB.
I always get
2016-08-04 14:02:55:993 INFO OrientDB Server v2.1.20 is active.
[OServer]com.orientechnologies.orient.core.command.OCommandExecutorNotFoundException:
Cannot find a command executor for the command request: sql.select from
OUser where name = ? limit 1
at
com.orientechnologies.orient.core.sql.OCommandExecutorSQLDelegate.parse(OCommandExecutorSQLDelegate.java:72)
at
com.orientechnologies.orient.core.sql.OCommandExecutorSQLDelegate.parse(OCommandExecutorSQLDelegate.java:42)
at
com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.command(OAbstractPaginatedStorage.java:1404)
at
com.orientechnologies.orient.core.sql.query.OSQLQuery.run(OSQLQuery.java:72)
at
com.orientechnologies.orient.core.sql.query.OSQLSynchQuery.run(OSQLSynchQuery.java:85)
at
com.orientechnologies.orient.core.query.OQueryAbstract.execute(OQueryAbstract.java:33)
at
com.orientechnologies.orient.core.metadata.security.OSecurityShared.getUser(OSecurityShared.java:522)
at
com.orientechnologies.orient.core.metadata.security.OSecurityShared.authenticate(OSecurityShared.java:163)
at
com.orientechnologies.orient.core.metadata.security.OSecurityProxy.authenticate(OSecurityProxy.java:87)
at
com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.open(ODatabaseDocumentTx.java:268)
at
com.tinkerpop.blueprints.impls.orient.OrientBaseGraph.openOrCreate(OrientBaseGraph.java:1797)
at
com.tinkerpop.blueprints.impls.orient.OrientBaseGraph.<init>(OrientBaseGraph.java:156)
at
com.tinkerpop.blueprints.impls.orient.OrientTransactionalGraph.<init>(OrientTransactionalGraph.java:102)
at
com.tinkerpop.blueprints.impls.orient.OrientTransactionalGraph.<init>(OrientTransactionalGraph.java:98)
at
com.tinkerpop.blueprints.impls.orient.OrientGraph.<init>(OrientGraph.java:76)
at
com.tridium.systemDb.orient.BOrientSystemDatabase.connectToDatabase(BOrientSystemDatabase.java:62)
at
com.tridium.systemDb.orient.BOrientSystemDatabase.instantiate(BOrientSystemDatabase.java:47)
at
com.tridium.systemDb.orient.BOrientSystemDatabase.doConnect(BOrientSystemDatabase.java:83)
at
com.tridium.systemDb.BSystemDbService.doConnect(BSystemDbService.java:209)
at auto.com_tridium_systemDb_BSystemDbService.invoke(AutoGenerated)
at
com.tridium.sys.schema.ComponentSlotMap.invoke(ComponentSlotMap.java:1871)
at com.tridium.sys.engine.EngineUtil.doInvoke(EngineUtil.java:62)
at
com.tridium.sys.engine.EngineManager.checkAsyncActions(EngineManager.java:420)
at
com.tridium.sys.engine.EngineManager.execute(EngineManager.java:245)
at
com.tridium.sys.engine.EngineManager$EngineThread.run(EngineManager.java:839)
The documentation is vague and not helpful so i step through the code and
see this in OCommandExecutorSQLDelegate.parse:
public OCommandExecutorSQLDelegate parse(final OCommandRequest iCommand) {
...
if (textUpperCase.startsWith("SELECT") && false) {
InputStream is = new ByteArrayInputStream(text.getBytes());
OrientSql osql = new OrientSql(is);
try {
// TODO create a cache of parsed statements
OStatement stm = osql.parse();
delegate = stm.buildExecutor(iCommand);
delegate.setContext(context);
delegate.setLimit(iCommand.getLimit());
delegate.setProgressListener(progressListener);
is.close();
} catch (Exception e) {
throwParsingException(e.getMessage());
}
} else {
delegate = (OCommandExecutorSQLAbstract)
OSQLEngine.getInstance().getCommand(textUpperCase);
if (delegate == null)
throw new OCommandExecutorNotFoundException("Cannot find a command executor
for the command request: " + iCommand);
delegate.setContext(context);
delegate.setLimit(iCommand.getLimit());
delegate.parse(iCommand);
delegate.setProgressListener(progressListener);
}
the query starts with select but the try catch block is never reached because
of the hard coded false in the if statement. There aren't any comments to
explain this. Why is that there?
--
---
You received this message because you are subscribed to the Google Groups
"OrientDB" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.