Hello,
i'm very sorry but we have 2 big problem to solve if we want to continue our 
project with oak platform.

The first is that we can't manage to save on RDBMS neither metadata nor binary.
We tried both postgres  and Oracle with a simple class that load a simple node 
(is similar to the class in "getting start")
In Oracle and in postgres we have a problem when we create a repository:
Repository repo = jcr.createRepository();

I add to this mail 2 files that describe in detail these 2 errors
This is a critical issue, cause some clients want to use an RDBMS; besides 
should be very easy store in a RDBMS so we are a little perplexed.


The second is that we don't understand, completely, how query engine works.
Before we analize the source code i will try to detail in bullets OAK search 
phases; i'will point out in red the bullet that are not so clear. For our 
tests, we used the platform in an embedded way, we didn't configure neither 
lucene nor solr as search engine;

1.       we configured for instance mongodb to save metadata and content binary 
on that db

2.       Oak esplicitally doesn'i index anything so what's happens when i 
search a document (or node)  the first time ? (this is not clear)

a.       The search is delegated always on index server (lucene embedded or 
solr) return a resultset of nodes that match the query.

b.      So mongodb (or RDBMS) is used only to render the metadata or content 
binary

3.       If i want better performance or i want want full text search i have to 
create some indexes (3 type of indexes lucene, solr and property of nodes) that 
improve efficiency of index server (lucene or solr).  These indexes don't have 
effect on RDBMS or mongodb in which these kind of metadata are stored

If this scenario is correct,

-          we don't understand when we talk about query and search, what does 
"traverse the repository" mean, cause we use always lucene or solr. Ref: 
https://docs.adobe.com/docs/en/aem/6-0/deploy/best-practices/best-practices-for-queries-and-indexing.html

-          we don't understand how an application  can be in cluster when 
embeds lucene (we think taht we have to use solr)

-          we would to know which data structure is used for PropertyIndex 
index type. Is it a binary search? a tree? hash table? a skip list? Or anything 
else?


Thanks in advance,
best regards





[cid:image001.png@01D173C8.FDDE6900]
Francesco Ancona | Software Dev. Dept. (SP) - Software Architect
tel. +39 049 8979797 | fax +39 049 8978800 | cel. +39 3299060325
e-mail: francesco.anc...@siav.it<mailto:francesco.anc...@siav.it> | www.siav.it

I contenuti di questa e-mail e dei suoi allegati sono confidenziali e riservati 
esclusivamente ai destinatari.
L'utilizzo per qualunque fine del presente messaggio e degli allegati così come 
la relativa divulgazione senza l'autorizzazione del mittente sono vietati.
Se avete ricevuto questa e-mail per errore, vi preghiamo di distruggerla e di 
comunicarcelo.
I dati personali sono trattati esclusivamente per le finalità della presente 
comunicazione in conformità con la legislazione vigente (D.lgs. 196/2003 
"Codice Privacy").
Per informazioni: SIAV S.p.A. - s...@siav.it<mailto:s...@siav.it> - 049 8979797

The contents of this e-mail and its attachments are confidential and reserved 
exclusively to the recipients.
The use for any purpose of this message and attachments as well as its 
disclosure without the consent of the sender is prohibited.
If you have received this email in error, please destroy it and notify us.
Personal data shall be processed solely for the purposes of this notice in 
accordance with current legislation (Legislative Decree no. 196/2003 "Code").
For more information: SIAV S.p.A. - s...@siav.it<mailto:s...@siav.it> - 049 
8979797

Dbms: Oracle 11.2 Express Edition

Maven
Driver jdbc:
<dependency>
                <groupId>com.oracle</groupId>
                <artifactId>ojdbc6</artifactId>
                <version>11.2.0.4</version>
</dependency>

Spring Datasource:
    <bean id="oakOracleDataSource" 
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="driverClassName" 
value="oracle.jdbc.driver.OracleDriver"/>
        <property name="url" value="jdbc:oracle:thin:@localhost:1521:XE"/>
        <property name="username" value="system"/>
        <property name="password" value="password"/>
    </bean>


        
Class   
package it.siav.jarvis.testplatform.ecm.common;

import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;

import javax.jcr.Binary;
import javax.jcr.LoginException;
import javax.jcr.Node;
import javax.jcr.Repository;
import javax.jcr.RepositoryException;
import javax.jcr.Session;
import javax.jcr.SimpleCredentials;
import javax.jcr.ValueFactory;
import javax.sql.DataSource;

import org.apache.commons.io.FileUtils;
import org.apache.jackrabbit.oak.Oak;
import org.apache.jackrabbit.oak.jcr.Jcr;
import org.apache.jackrabbit.oak.plugins.document.DocumentMK;
import org.apache.jackrabbit.oak.plugins.document.DocumentNodeStore;
import org.apache.jackrabbit.oak.spi.blob.BlobStore;
import org.apache.jackrabbit.oak.spi.blob.FileBlobStore;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.testng.annotations.Test;

@Test
public class OakRDBMSTest extends AbstractTestCommons {
                @Autowired
                @Qualifier("oakOracleDataSource")
                private DataSource ds;

                @Test
                public void test() {
                               
                               final DocumentMK.Builder builder = new 
DocumentMK.Builder();
                               
builder.setBlobStore(createFileSystemBlobStore());
                               final DocumentNodeStore ns = 
getRDBDocumentNodeStore(builder);
                               Oak oak = new Oak(ns);
                               Jcr jcr = new Jcr(oak);
                               Repository repo = jcr.createRepository();
                               Session session = null;
                               try {
                                               InputStream is = new 
ByteArrayInputStream(document_small);
                                               session = repo.login(new 
SimpleCredentials("admin", "admin".toCharArray()));
                                               ValueFactory valueFactory = 
session.getValueFactory();
                                               Binary data = 
valueFactory.createBinary(is);
                                               Node root = 
session.getRootNode();
                                               if (root.hasNode("hello")) {
                                                               Node hello = 
root.getNode("hello");
                                                               long count = 
hello.getProperty("count").getLong();
                                                               if (count > 1) {
                                                                              
hello.remove();
                                                                              
System.out.println("delete the hello node");
                                                               } else {
                                                                              
hello.setProperty("count", count + 1);
                                                                              
hello.setProperty("data", data);
                                                                              
System.out.println("found the hello node, count = " + count);
                                                               }
                                               } else {
                                                               
System.out.println("creating the hello node");
                                                               
root.addNode("hello").setProperty("count", 1);
                                               }
                                               session.save();
                                               // Logout
                               } catch (LoginException e) {
                                               // TODO Auto-generated catch 
block
                                               e.printStackTrace();
                               } catch (RepositoryException e) {
                                               // TODO Auto-generated catch 
block
                                               e.printStackTrace();
                               } finally {
                                               if (session != null) 
session.logout();
                                               ns.dispose();
                               }
                }

                private DocumentNodeStore 
getRDBDocumentNodeStore(DocumentMK.Builder builder) {
                               DocumentNodeStore ns = null;
                               if (builder == null) {
                                               ns = new 
DocumentMK.Builder().setRDBConnection(ds).getNodeStore();
                               } else {
                                               ns = 
builder.setRDBConnection(ds).getNodeStore();
                               }
                               return ns;
                }

                private BlobStore createFileSystemBlobStore() {
                               try {
                                               FileUtils.deleteDirectory(new 
File("/var/tmp/oak"));
                               } catch (IOException e) {
                                               // TODO Auto-generated catch 
block
                                               e.printStackTrace();
                               }

                               FileBlobStore store = new 
FileBlobStore("/var/tmp/oak");
                               return store;
                }

}


java.sql.SQLSyntaxErrorException: ORA-00933: SQL command not properly ended

                at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:447)
                at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:396)
                at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:951)
                at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:513)
                at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:227)
                at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:531)
                at 
oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:208)
                at 
oracle.jdbc.driver.T4CPreparedStatement.executeForDescribe(T4CPreparedStatement.java:886)
                at 
oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:1175)
                at 
oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1296)
                at 
oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3613)
                at 
oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:3657)
                at 
oracle.jdbc.driver.OraclePreparedStatementWrapper.executeQuery(OraclePreparedStatementWrapper.java:1495)
                at 
org.apache.jackrabbit.oak.plugins.document.rdb.RDBDocumentStoreJDBC.query(RDBDocumentStoreJDBC.java:568)
                at 
org.apache.jackrabbit.oak.plugins.document.rdb.RDBDocumentStore.internalQuery(RDBDocumentStore.java:1486)
                at 
org.apache.jackrabbit.oak.plugins.document.rdb.RDBDocumentStore.query(RDBDocumentStore.java:249)
                at 
org.apache.jackrabbit.oak.plugins.document.util.Utils$2$1.nextBatch(Utils.java:648)
                at 
org.apache.jackrabbit.oak.plugins.document.util.Utils$2$1.<init>(Utils.java:627)
                at 
org.apache.jackrabbit.oak.plugins.document.util.Utils$2.iterator(Utils.java:622)
                at 
com.google.common.collect.Iterables$6.iterator(Iterables.java:586)
                at 
org.apache.jackrabbit.oak.plugins.document.LastRevRecoveryAgent.recoverCandidates(LastRevRecoveryAgent.java:297)
                at 
org.apache.jackrabbit.oak.plugins.document.LastRevRecoveryAgent.recover(LastRevRecoveryAgent.java:104)
                at 
org.apache.jackrabbit.oak.plugins.document.DocumentNodeStore.checkLastRevRecovery(DocumentNodeStore.java:524)
                at 
org.apache.jackrabbit.oak.plugins.document.DocumentNodeStore.<init>(DocumentNodeStore.java:469)
                at 
org.apache.jackrabbit.oak.plugins.document.DocumentMK$Builder.getNodeStore(DocumentMK.java:722)
                at 
it.siav.jarvis.testplatform.ecm.common.OakRDBMSTest.getRDBDocumentNodeStore(OakRDBMSTest.java:87)
                at 
it.siav.jarvis.testplatform.ecm.common.OakRDBMSTest.test(OakRDBMSTest.java:40)
                at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
                at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
                at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
                at java.lang.reflect.Method.invoke(Method.java:497)
                at 
org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:80)
                at 
org.testng.internal.MethodInvocationHelper$1.runTestMethod(MethodInvocationHelper.java:182)
                at 
org.springframework.test.context.testng.AbstractTestNGSpringContextTests.run(AbstractTestNGSpringContextTests.java:175)
                at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
                at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
                at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
                at java.lang.reflect.Method.invoke(Method.java:497)
                at 
org.testng.internal.MethodInvocationHelper.invokeHookable(MethodInvocationHelper.java:194)
                at org.testng.internal.Invoker.invokeMethod(Invoker.java:707)
                at 
org.testng.internal.Invoker.invokeTestMethod(Invoker.java:901)
                at 
org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1231)
                at 
org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:127)
                at 
org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:111)
                at org.testng.TestRunner.privateRun(TestRunner.java:767)
                at org.testng.TestRunner.run(TestRunner.java:617)
                at org.testng.SuiteRunner.runTest(SuiteRunner.java:334)
                at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:329)
                at org.testng.SuiteRunner.privateRun(SuiteRunner.java:291)
                at org.testng.SuiteRunner.run(SuiteRunner.java:240)
                at 
org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
                at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)
                at org.testng.TestNG.runSuitesSequentially(TestNG.java:1198)
                at org.testng.TestNG.runSuitesLocally(TestNG.java:1123)
                at org.testng.TestNG.run(TestNG.java:1031)
                at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:115)
                at 
org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:207)
                at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:178)
FAILED: test
org.apache.jackrabbit.oak.plugins.document.DocumentStoreException: 
java.sql.SQLSyntaxErrorException: ORA-00933: SQL command not properly ended

                at 
org.apache.jackrabbit.oak.plugins.document.rdb.RDBDocumentStore.internalQuery(RDBDocumentStore.java:1503)
                at 
org.apache.jackrabbit.oak.plugins.document.rdb.RDBDocumentStore.query(RDBDocumentStore.java:249)
                at 
org.apache.jackrabbit.oak.plugins.document.util.Utils$2$1.nextBatch(Utils.java:648)
                at 
org.apache.jackrabbit.oak.plugins.document.util.Utils$2$1.<init>(Utils.java:627)
                at 
org.apache.jackrabbit.oak.plugins.document.util.Utils$2.iterator(Utils.java:622)
                at 
com.google.common.collect.Iterables$6.iterator(Iterables.java:586)
                at 
org.apache.jackrabbit.oak.plugins.document.LastRevRecoveryAgent.recoverCandidates(LastRevRecoveryAgent.java:297)
                at 
org.apache.jackrabbit.oak.plugins.document.LastRevRecoveryAgent.recover(LastRevRecoveryAgent.java:104)
                at 
org.apache.jackrabbit.oak.plugins.document.DocumentNodeStore.checkLastRevRecovery(DocumentNodeStore.java:524)
                at 
org.apache.jackrabbit.oak.plugins.document.DocumentNodeStore.<init>(DocumentNodeStore.java:469)
                at 
org.apache.jackrabbit.oak.plugins.document.DocumentMK$Builder.getNodeStore(DocumentMK.java:722)
                at 
it.siav.jarvis.testplatform.ecm.common.OakRDBMSTest.getRDBDocumentNodeStore(OakRDBMSTest.java:87)
                at 
it.siav.jarvis.testplatform.ecm.common.OakRDBMSTest.test(OakRDBMSTest.java:40)
                at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
                at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
                at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
                at java.lang.reflect.Method.invoke(Method.java:497)
                at 
org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:80)
                at 
org.testng.internal.MethodInvocationHelper$1.runTestMethod(MethodInvocationHelper.java:182)
                at 
org.springframework.test.context.testng.AbstractTestNGSpringContextTests.run(AbstractTestNGSpringContextTests.java:175)
                at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
                at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
                at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
                at java.lang.reflect.Method.invoke(Method.java:497)
                at 
org.testng.internal.MethodInvocationHelper.invokeHookable(MethodInvocationHelper.java:194)
                at org.testng.internal.Invoker.invokeMethod(Invoker.java:707)
                at 
org.testng.internal.Invoker.invokeTestMethod(Invoker.java:901)
                at 
org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1231)
                at 
org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:127)
                at 
org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:111)
                at org.testng.TestRunner.privateRun(TestRunner.java:767)
                at org.testng.TestRunner.run(TestRunner.java:617)
                at org.testng.SuiteRunner.runTest(SuiteRunner.java:334)
                at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:329)
                at org.testng.SuiteRunner.privateRun(SuiteRunner.java:291)
                at org.testng.SuiteRunner.run(SuiteRunner.java:240)
                at 
org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
                at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)
                at org.testng.TestNG.runSuitesSequentially(TestNG.java:1198)
                at org.testng.TestNG.runSuitesLocally(TestNG.java:1123)
                at org.testng.TestNG.run(TestNG.java:1031)
                at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:115)
                at 
org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:207)
                at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:178)
Caused by: java.sql.SQLSyntaxErrorException: ORA-00933: SQL command not 
properly ended

                at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:447)
                at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:396)
                at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:951)
                at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:513)
                at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:227)
                at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:531)
                at 
oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:208)
                at 
oracle.jdbc.driver.T4CPreparedStatement.executeForDescribe(T4CPreparedStatement.java:886)
                at 
oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:1175)
                at 
oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1296)
                at 
oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3613)
                at 
oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:3657)
                at 
oracle.jdbc.driver.OraclePreparedStatementWrapper.executeQuery(OraclePreparedStatementWrapper.java:1495)
                at 
org.apache.jackrabbit.oak.plugins.document.rdb.RDBDocumentStoreJDBC.query(RDBDocumentStoreJDBC.java:568)
                at 
org.apache.jackrabbit.oak.plugins.document.rdb.RDBDocumentStore.internalQuery(RDBDocumentStore.java:1486)

Postgres 9.4

Maven
Driver jdbc:
<dependency>
                           <groupId>org.postgresql</groupId>
                           <artifactId>postgresql</artifactId>
                           <version>9.4.1207.jre7</version>
</dependency>
           
Spring     
<bean id="oakPostgresDataSource"
                           
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
                           <property name="driverClassName" 
value="org.postgresql.Driver" />
                           <property name="url" 
value="jdbc:postgresql://localhost:5432/oak_db" />
                           <property name="username" value="postgres" />
                           <property name="password" value="password" />
</bean>

                                                           
Class                                                      
Class   
package it.siav.jarvis.testplatform.ecm.common;

import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;

import javax.jcr.Binary;
import javax.jcr.LoginException;
import javax.jcr.Node;
import javax.jcr.Repository;
import javax.jcr.RepositoryException;
import javax.jcr.Session;
import javax.jcr.SimpleCredentials;
import javax.jcr.ValueFactory;
import javax.sql.DataSource;

import org.apache.commons.io.FileUtils;
import org.apache.jackrabbit.oak.Oak;
import org.apache.jackrabbit.oak.jcr.Jcr;
import org.apache.jackrabbit.oak.plugins.document.DocumentMK;
import org.apache.jackrabbit.oak.plugins.document.DocumentNodeStore;
import org.apache.jackrabbit.oak.spi.blob.BlobStore;
import org.apache.jackrabbit.oak.spi.blob.FileBlobStore;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.testng.annotations.Test;

@Test
public class OakRDBMSTest extends AbstractTestCommons {
                @Autowired
                @Qualifier("oakPostgresDataSource")
                private DataSource ds;

                @Test
                public void test() {
                               
                               final DocumentMK.Builder builder = new 
DocumentMK.Builder();
                               
builder.setBlobStore(createFileSystemBlobStore());
                               final DocumentNodeStore ns = 
getRDBDocumentNodeStore(builder);
                               Oak oak = new Oak(ns);
                               Jcr jcr = new Jcr(oak);
                               Repository repo = jcr.createRepository();
                               Session session = null;
                               try {
                                               InputStream is = new 
ByteArrayInputStream(document_small);
                                               session = repo.login(new 
SimpleCredentials("admin", "admin".toCharArray()));
                                               ValueFactory valueFactory = 
session.getValueFactory();
                                               Binary data = 
valueFactory.createBinary(is);
                                               Node root = 
session.getRootNode();
                                               if (root.hasNode("hello")) {
                                                               Node hello = 
root.getNode("hello");
                                                               long count = 
hello.getProperty("count").getLong();
                                                               if (count > 1) {
                                                                              
hello.remove();
                                                                              
System.out.println("delete the hello node");
                                                               } else {
                                                                              
hello.setProperty("count", count + 1);
                                                                              
hello.setProperty("data", data);
                                                                              
System.out.println("found the hello node, count = " + count);
                                                               }
                                               } else {
                                                               
System.out.println("creating the hello node");
                                                               
root.addNode("hello").setProperty("count", 1);
                                               }
                                               session.save();
                                               // Logout
                               } catch (LoginException e) {
                                               // TODO Auto-generated catch 
block
                                               e.printStackTrace();
                               } catch (RepositoryException e) {
                                               // TODO Auto-generated catch 
block
                                               e.printStackTrace();
                               } finally {
                                               if (session != null) 
session.logout();
                                               ns.dispose();
                               }
                }

                private DocumentNodeStore 
getRDBDocumentNodeStore(DocumentMK.Builder builder) {
                               DocumentNodeStore ns = null;
                               if (builder == null) {
                                               ns = new 
DocumentMK.Builder().setRDBConnection(ds).getNodeStore();
                               } else {
                                               ns = 
builder.setRDBConnection(ds).getNodeStore();
                               }
                               return ns;
                }

                private BlobStore createFileSystemBlobStore() {
                               try {
                                               FileUtils.deleteDirectory(new 
File("/var/tmp/oak"));
                               } catch (IOException e) {
                                               // TODO Auto-generated catch 
block
                                               e.printStackTrace();
                               }

                               FileBlobStore store = new 
FileBlobStore("/var/tmp/oak");
                               return store;
                }

}


java.text.ParseException: Query: SELECT * FROM [nt:base] WHERE(*)[jcr:uuid] = 
$id /* oak-internal */; expected: unknown node type
                at 
org.apache.jackrabbit.oak.query.SQL2Parser.getSyntaxError(SQL2Parser.java:1357)
                at 
org.apache.jackrabbit.oak.query.SQL2Parser.parseSelector(SQL2Parser.java:252)
                at 
org.apache.jackrabbit.oak.query.SQL2Parser.parseSource(SQL2Parser.java:278)
                at 
org.apache.jackrabbit.oak.query.SQL2Parser.parseSelect(SQL2Parser.java:203)
                at 
org.apache.jackrabbit.oak.query.SQL2Parser.parse(SQL2Parser.java:148)
                at 
org.apache.jackrabbit.oak.query.QueryEngineImpl.parseQuery(QueryEngineImpl.java:177)
                at 
org.apache.jackrabbit.oak.query.QueryEngineImpl.executeQuery(QueryEngineImpl.java:257)
                at 
org.apache.jackrabbit.oak.query.QueryEngineImpl.executeQuery(QueryEngineImpl.java:233)
                at 
org.apache.jackrabbit.oak.plugins.identifier.IdentifierManager.resolveUUID(IdentifierManager.java:314)
                at 
org.apache.jackrabbit.oak.plugins.identifier.IdentifierManager.resolveUUID(IdentifierManager.java:308)
                at 
org.apache.jackrabbit.oak.plugins.identifier.IdentifierManager.resolveUUID(IdentifierManager.java:304)
                at 
org.apache.jackrabbit.oak.plugins.identifier.IdentifierManager.getTree(IdentifierManager.java:133)
                at 
org.apache.jackrabbit.oak.security.user.AuthorizableBaseProvider.getByContentID(AuthorizableBaseProvider.java:56)
                at 
org.apache.jackrabbit.oak.security.user.AuthorizableBaseProvider.getByID(AuthorizableBaseProvider.java:51)
                at 
org.apache.jackrabbit.oak.security.user.UserProvider.getAuthorizable(UserProvider.java:211)
                at 
org.apache.jackrabbit.oak.security.user.UserManagerImpl.getAuthorizable(UserManagerImpl.java:106)
                at 
org.apache.jackrabbit.oak.security.user.UserInitializer.initialize(UserInitializer.java:130)
                at 
org.apache.jackrabbit.oak.spi.lifecycle.OakInitializer.initialize(OakInitializer.java:57)
                at 
org.apache.jackrabbit.oak.Oak.createNewContentRepository(Oak.java:672)
                at 
org.apache.jackrabbit.oak.Oak.createContentRepository(Oak.java:616)
                at 
org.apache.jackrabbit.oak.jcr.Jcr.createContentRepository(Jcr.java:367)
                at 
org.apache.jackrabbit.oak.jcr.Jcr.createRepository(Jcr.java:375)
                at 
it.zzzz.yyyy.testplatform.ecm.oak.OakPostgresTest.test(OakPostgresTest.java:53)
                at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
                at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
                at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
                at java.lang.reflect.Method.invoke(Method.java:497)
                at 
org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:86)
                at 
org.testng.internal.MethodInvocationHelper$1.runTestMethod(MethodInvocationHelper.java:197)
                at 
org.springframework.test.context.testng.AbstractTestNGSpringContextTests.run(AbstractTestNGSpringContextTests.java:175)
                at 
org.testng.internal.MethodInvocationHelper.invokeHookable(MethodInvocationHelper.java:209)
                at org.testng.internal.Invoker.invokeMethod(Invoker.java:641)
                at 
org.testng.internal.Invoker.invokeTestMethod(Invoker.java:822)
                at 
org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1130)
                at 
org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:129)
                at 
org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:112)
                at org.testng.TestRunner.privateRun(TestRunner.java:782)
                at org.testng.TestRunner.run(TestRunner.java:632)
                at org.testng.SuiteRunner.runTest(SuiteRunner.java:366)
                at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:361)
                at org.testng.SuiteRunner.privateRun(SuiteRunner.java:319)
                at org.testng.SuiteRunner.run(SuiteRunner.java:268)
                at 
org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
                at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)
                at org.testng.TestNG.runSuitesSequentially(TestNG.java:1244)
                at org.testng.TestNG.runSuitesLocally(TestNG.java:1169)
                at org.testng.TestNG.run(TestNG.java:1064)
                at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:113)
                at 
org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:206)
                at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:177)
2016-02-25 10:06:43 [main] ERROR o.a.j.o.p.i.IdentifierManager -
                                                               query failed
java.text.ParseException: Query: SELECT * FROM [nt:base] WHERE(*)[jcr:uuid] = 
$id /* oak-internal */; expected: unknown node type
                at 
org.apache.jackrabbit.oak.query.SQL2Parser.getSyntaxError(SQL2Parser.java:1357)
                at 
org.apache.jackrabbit.oak.query.SQL2Parser.parseSelector(SQL2Parser.java:252)
                at 
org.apache.jackrabbit.oak.query.SQL2Parser.parseSource(SQL2Parser.java:278)
                at 
org.apache.jackrabbit.oak.query.SQL2Parser.parseSelect(SQL2Parser.java:203)
                at 
org.apache.jackrabbit.oak.query.SQL2Parser.parse(SQL2Parser.java:148)
                at 
org.apache.jackrabbit.oak.query.QueryEngineImpl.parseQuery(QueryEngineImpl.java:177)
                at 
org.apache.jackrabbit.oak.query.QueryEngineImpl.executeQuery(QueryEngineImpl.java:257)
                at 
org.apache.jackrabbit.oak.query.QueryEngineImpl.executeQuery(QueryEngineImpl.java:233)
                at 
org.apache.jackrabbit.oak.plugins.identifier.IdentifierManager.resolveUUID(IdentifierManager.java:314)
                at 
org.apache.jackrabbit.oak.plugins.identifier.IdentifierManager.resolveUUID(IdentifierManager.java:308)
                at 
org.apache.jackrabbit.oak.plugins.identifier.IdentifierManager.resolveUUID(IdentifierManager.java:304)
                at 
org.apache.jackrabbit.oak.plugins.identifier.IdentifierManager.getTree(IdentifierManager.java:133)
                at 
org.apache.jackrabbit.oak.security.user.AuthorizableBaseProvider.getByContentID(AuthorizableBaseProvider.java:56)
                at 
org.apache.jackrabbit.oak.security.user.AuthorizableBaseProvider.getByID(AuthorizableBaseProvider.java:51)
                at 
org.apache.jackrabbit.oak.security.user.UserProvider.getAuthorizable(UserProvider.java:211)
                at 
org.apache.jackrabbit.oak.security.user.UserManagerImpl.getAuthorizable(UserManagerImpl.java:106)
                at 
org.apache.jackrabbit.oak.security.user.UserManagerImpl.checkValidId(UserManagerImpl.java:371)
                at 
org.apache.jackrabbit.oak.security.user.UserManagerImpl.createUser(UserManagerImpl.java:156)
                at 
org.apache.jackrabbit.oak.security.user.UserManagerImpl.createUser(UserManagerImpl.java:150)
                at 
org.apache.jackrabbit.oak.security.user.UserInitializer.initialize(UserInitializer.java:132)
                at 
org.apache.jackrabbit.oak.spi.lifecycle.OakInitializer.initialize(OakInitializer.java:57)
                at 
org.apache.jackrabbit.oak.Oak.createNewContentRepository(Oak.java:672)
                at 
org.apache.jackrabbit.oak.Oak.createContentRepository(Oak.java:616)
                at 
org.apache.jackrabbit.oak.jcr.Jcr.createContentRepository(Jcr.java:367)
                at 
org.apache.jackrabbit.oak.jcr.Jcr.createRepository(Jcr.java:375)
                at 
it.zzzz.yyyy.testplatform.ecm.oak.OakPostgresTest.test(OakPostgresTest.java:53)
                at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
                at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
                at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
                at java.lang.reflect.Method.invoke(Method.java:497)
                at 
org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:86)
                at 
org.testng.internal.MethodInvocationHelper$1.runTestMethod(MethodInvocationHelper.java:197)
                at 
org.springframework.test.context.testng.AbstractTestNGSpringContextTests.run(AbstractTestNGSpringContextTests.java:175)
                at 
org.testng.internal.MethodInvocationHelper.invokeHookable(MethodInvocationHelper.java:209)
                at org.testng.internal.Invoker.invokeMethod(Invoker.java:641)
                at 
org.testng.internal.Invoker.invokeTestMethod(Invoker.java:822)
                at 
org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1130)
                at 
org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:129)
                at 
org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:112)
                at org.testng.TestRunner.privateRun(TestRunner.java:782)
                at org.testng.TestRunner.run(TestRunner.java:632)
                at org.testng.SuiteRunner.runTest(SuiteRunner.java:366)
                at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:361)
                at org.testng.SuiteRunner.privateRun(SuiteRunner.java:319)
                at org.testng.SuiteRunner.run(SuiteRunner.java:268)
                at 
org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
                at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)
                at org.testng.TestNG.runSuitesSequentially(TestNG.java:1244)
                at org.testng.TestNG.runSuitesLocally(TestNG.java:1169)
                at org.testng.TestNG.run(TestNG.java:1064)
                at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:113)
                at 
org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:206)
                at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:177)
2016-02-25 10:06:43 [main] ERROR o.a.j.oak.security.user.UserProvider -
                                                               Failed to 
retrieve authorizable by principal
java.text.ParseException: Query: SELECT * FROM [rep:Authorizable] 
WHERE(*)[rep:principalName] = $principalName /* oak-internal */; expected: 
unknown node type
                at 
org.apache.jackrabbit.oak.query.SQL2Parser.getSyntaxError(SQL2Parser.java:1357)
                at 
org.apache.jackrabbit.oak.query.SQL2Parser.parseSelector(SQL2Parser.java:252)
                at 
org.apache.jackrabbit.oak.query.SQL2Parser.parseSource(SQL2Parser.java:278)
                at 
org.apache.jackrabbit.oak.query.SQL2Parser.parseSelect(SQL2Parser.java:203)
                at 
org.apache.jackrabbit.oak.query.SQL2Parser.parse(SQL2Parser.java:148)
                at 
org.apache.jackrabbit.oak.query.QueryEngineImpl.parseQuery(QueryEngineImpl.java:177)
                at 
org.apache.jackrabbit.oak.query.QueryEngineImpl.executeQuery(QueryEngineImpl.java:257)
                at 
org.apache.jackrabbit.oak.security.user.UserProvider.getAuthorizableByPrincipal(UserProvider.java:234)
                at 
org.apache.jackrabbit.oak.security.user.UserManagerImpl.getAuthorizable(UserManagerImpl.java:120)
                at 
org.apache.jackrabbit.oak.security.user.UserManagerImpl.checkValidPrincipal(UserManagerImpl.java:383)
                at 
org.apache.jackrabbit.oak.security.user.UserManagerImpl.createUser(UserManagerImpl.java:157)
                at 
org.apache.jackrabbit.oak.security.user.UserManagerImpl.createUser(UserManagerImpl.java:150)
                at 
org.apache.jackrabbit.oak.security.user.UserInitializer.initialize(UserInitializer.java:132)
                at 
org.apache.jackrabbit.oak.spi.lifecycle.OakInitializer.initialize(OakInitializer.java:57)
                at 
org.apache.jackrabbit.oak.Oak.createNewContentRepository(Oak.java:672)
                at 
org.apache.jackrabbit.oak.Oak.createContentRepository(Oak.java:616)
                at 
org.apache.jackrabbit.oak.jcr.Jcr.createContentRepository(Jcr.java:367)
                at 
org.apache.jackrabbit.oak.jcr.Jcr.createRepository(Jcr.java:375)
                at 
it.zzzz.yyyy.testplatform.ecm.oak.OakPostgresTest.test(OakPostgresTest.java:53)
                at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
                at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
                at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
                at java.lang.reflect.Method.invoke(Method.java:497)
                at 
org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:86)
                at 
org.testng.internal.MethodInvocationHelper$1.runTestMethod(MethodInvocationHelper.java:197)
                at 
org.springframework.test.context.testng.AbstractTestNGSpringContextTests.run(AbstractTestNGSpringContextTests.java:175)
                at 
org.testng.internal.MethodInvocationHelper.invokeHookable(MethodInvocationHelper.java:209)
                at org.testng.internal.Invoker.invokeMethod(Invoker.java:641)
                at 
org.testng.internal.Invoker.invokeTestMethod(Invoker.java:822)
                at 
org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1130)
                at 
org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:129)
                at 
org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:112)
                at org.testng.TestRunner.privateRun(TestRunner.java:782)
                at org.testng.TestRunner.run(TestRunner.java:632)
                at org.testng.SuiteRunner.runTest(SuiteRunner.java:366)
                at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:361)
                at org.testng.SuiteRunner.privateRun(SuiteRunner.java:319)
                at org.testng.SuiteRunner.run(SuiteRunner.java:268)
                at 
org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
                at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)
                at org.testng.TestNG.runSuitesSequentially(TestNG.java:1244)
                at org.testng.TestNG.runSuitesLocally(TestNG.java:1169)
                at org.testng.TestNG.run(TestNG.java:1064)
                at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:113)
                at 
org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:206)
                at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:177)
2016-02-25 10:06:43 [main] ERROR o.a.j.o.s.user.UserInitializer -
                                                               Failed to 
initialize user content.
javax.jcr.nodetype.NoSuchNodeTypeException: Node type rep:User does not exist
                at 
org.apache.jackrabbit.oak.util.TreeUtil.addChild(TreeUtil.java:192)
                at 
org.apache.jackrabbit.oak.security.user.UserProvider.createAuthorizableNode(UserProvider.java:271)
                at 
org.apache.jackrabbit.oak.security.user.UserProvider.createUser(UserProvider.java:185)
                at 
org.apache.jackrabbit.oak.security.user.UserManagerImpl.createUser(UserManagerImpl.java:162)
                at 
org.apache.jackrabbit.oak.security.user.UserManagerImpl.createUser(UserManagerImpl.java:150)
                at 
org.apache.jackrabbit.oak.security.user.UserInitializer.initialize(UserInitializer.java:132)
                at 
org.apache.jackrabbit.oak.spi.lifecycle.OakInitializer.initialize(OakInitializer.java:57)
                at 
org.apache.jackrabbit.oak.Oak.createNewContentRepository(Oak.java:672)
                at 
org.apache.jackrabbit.oak.Oak.createContentRepository(Oak.java:616)
                at 
org.apache.jackrabbit.oak.jcr.Jcr.createContentRepository(Jcr.java:367)
                at 
org.apache.jackrabbit.oak.jcr.Jcr.createRepository(Jcr.java:375)
                at 
it.zzzz.yyyy.testplatform.ecm.oak.OakPostgresTest.test(OakPostgresTest.java:53)
                at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
                at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
                at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
                at java.lang.reflect.Method.invoke(Method.java:497)
                at 
org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:86)
                at 
org.testng.internal.MethodInvocationHelper$1.runTestMethod(MethodInvocationHelper.java:197)
                at 
org.springframework.test.context.testng.AbstractTestNGSpringContextTests.run(AbstractTestNGSpringContextTests.java:175)
                at 
org.testng.internal.MethodInvocationHelper.invokeHookable(MethodInvocationHelper.java:209)
                at org.testng.internal.Invoker.invokeMethod(Invoker.java:641)
                at 
org.testng.internal.Invoker.invokeTestMethod(Invoker.java:822)
                at 
org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1130)
                at 
org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:129)
                at 
org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:112)
                at org.testng.TestRunner.privateRun(TestRunner.java:782)
                at org.testng.TestRunner.run(TestRunner.java:632)
                at org.testng.SuiteRunner.runTest(SuiteRunner.java:366)
                at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:361)
                at org.testng.SuiteRunner.privateRun(SuiteRunner.java:319)
                at org.testng.SuiteRunner.run(SuiteRunner.java:268)
                at 
org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
                at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)
                at org.testng.TestNG.runSuitesSequentially(TestNG.java:1244)
                at org.testng.TestNG.runSuitesLocally(TestNG.java:1169)
                at org.testng.TestNG.run(TestNG.java:1064)
                at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:113)
                at 
org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:206)
                at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:177)
FAILED: 
java.lang.RuntimeException: javax.jcr.nodetype.NoSuchNodeTypeException: Node 
type rep:User does not exist
                at 
org.apache.jackrabbit.oak.security.user.UserInitializer.initialize(UserInitializer.java:143)
                at 
org.apache.jackrabbit.oak.spi.lifecycle.OakInitializer.initialize(OakInitializer.java:57)
                at 
org.apache.jackrabbit.oak.Oak.createNewContentRepository(Oak.java:672)
                at 
org.apache.jackrabbit.oak.Oak.createContentRepository(Oak.java:616)
                at 
org.apache.jackrabbit.oak.jcr.Jcr.createContentRepository(Jcr.java:367)
                at 
org.apache.jackrabbit.oak.jcr.Jcr.createRepository(Jcr.java:375)
                at 
it.zzzz.yyyy.testplatform.ecm.oak.OakPostgresTest.test(OakPostgresTest.java:53)
                at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
                at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
                at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
                at java.lang.reflect.Method.invoke(Method.java:497)
                at 
org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:86)
                at 
org.testng.internal.MethodInvocationHelper$1.runTestMethod(MethodInvocationHelper.java:197)
                at 
org.springframework.test.context.testng.AbstractTestNGSpringContextTests.run(AbstractTestNGSpringContextTests.java:175)
                at 
org.testng.internal.MethodInvocationHelper.invokeHookable(MethodInvocationHelper.java:209)
                at org.testng.internal.Invoker.invokeMethod(Invoker.java:641)
                at 
org.testng.internal.Invoker.invokeTestMethod(Invoker.java:822)
                at 
org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1130)
                at 
org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:129)
                at 
org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:112)
                at org.testng.TestRunner.privateRun(TestRunner.java:782)
                at org.testng.TestRunner.run(TestRunner.java:632)
                at org.testng.SuiteRunner.runTest(SuiteRunner.java:366)
                at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:361)
                at org.testng.SuiteRunner.privateRun(SuiteRunner.java:319)
                at org.testng.SuiteRunner.run(SuiteRunner.java:268)
                at 
org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
                at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)
                at org.testng.TestNG.runSuitesSequentially(TestNG.java:1244)
                at org.testng.TestNG.runSuitesLocally(TestNG.java:1169)
                at org.testng.TestNG.run(TestNG.java:1064)
                at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:113)
                at 
org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:206)
                at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:177)
Caused by: javax.jcr.nodetype.NoSuchNodeTypeException: Node type rep:User does 
not exist
                at 
org.apache.jackrabbit.oak.util.TreeUtil.addChild(TreeUtil.java:192)
                at 
org.apache.jackrabbit.oak.security.user.UserProvider.createAuthorizableNode(UserProvider.java:271)
                at 
org.apache.jackrabbit.oak.security.user.UserProvider.createUser(UserProvider.java:185)
                at 
org.apache.jackrabbit.oak.security.user.UserManagerImpl.createUser(UserManagerImpl.java:162)
                at 
org.apache.jackrabbit.oak.security.user.UserManagerImpl.createUser(UserManagerImpl.java:150)
                at 
org.apache.jackrabbit.oak.security.user.UserInitializer.initialize(UserInitializer.java:132)
                ... 33 more

Reply via email to