jackrabbit-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Martijn Hendriks (JIRA)" <j...@apache.org>
Subject [jira] Commented: (JCR-748) DatabaseFileSystem fails with Oracle database
Date Mon, 19 Feb 2007 12:19:05 GMT

    [ https://issues.apache.org/jira/browse/JCR-748?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12474150

Martijn Hendriks commented on JCR-748:

I just tried to adjuste the oracle.ddl, but this still gives an error: the unique index constraint
is violated. This happens as follows:

- The DatabaseFileSystem.init() method calls verifyRootExists, which creates en entry for
the root path "/" and name "" (which is converted to null).

- Then RepositoryImpl<init> calls createDeepFolder for "/meta". This calls the exists
method for the root path "/" (line 1363 of the DatabaseFileSystem), and this method surprisingly
returns false, which triggers the constraint violation.

So it seems that handling null and "" values with Oracle is not so easy unfortunately...

> DatabaseFileSystem fails with Oracle database
> ---------------------------------------------
>                 Key: JCR-748
>                 URL: https://issues.apache.org/jira/browse/JCR-748
>             Project: Jackrabbit
>          Issue Type: Bug
>          Components: core
>         Environment: JackRabbit 1.2.1 with a DatabaseFileSystem using an Oracle database
>            Reporter: Martijn Hendriks
> The initialization of the repository fails because Oracle seems to convert empty strings
to null values. This gives a problem as shown below. A possible solution might be to adjust
the oracle.ddl in such a way that the FSENTRY_NAME column can contain null values. I don't
know, however, whether this affects the rest of the persistence scheme.
> Feb 19, 2007 12:28:24 PM org.apache.jackrabbit.core.fs.db.DatabaseFileSystem createDeepFolder
> SEVERE: failed to create folder entry: /
> java.sql.SQLException: ORA-01400: cannot insert NULL into ("MARTIJNH"."WM9_REPOSITORY_FS_FSENTRY"."FSENTRY_NAME")
>         at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:187)
>         at oracle.jdbc.ttc7.TTIoer.processError(TTIoer.java:241)
>         at oracle.jdbc.ttc7.Oall7.receive(Oall7.java:543)
>         at oracle.jdbc.ttc7.TTC7Protocol.doOall7(TTC7Protocol.java:1477)
>         at oracle.jdbc.ttc7.TTC7Protocol.parseExecuteFetch(TTC7Protocol.java:888)
>         at oracle.jdbc.driver.OracleStatement.executeNonQuery(OracleStatement.java:2030)
>         at oracle.jdbc.driver.OracleStatement.doExecuteOther(OracleStatement.java:1950)
>         at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:2591)
>         at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:452)
>         at oracle.jdbc.driver.OraclePreparedStatement.execute(OraclePreparedStatement.java:526)
>         at org.apache.jackrabbit.core.fs.db.DatabaseFileSystem.executeStmt(DatabaseFileSystem.java:1061)
>         at org.apache.jackrabbit.core.fs.db.DatabaseFileSystem.createDeepFolder(DatabaseFileSystem.java:1370)
>         at org.apache.jackrabbit.core.fs.db.DatabaseFileSystem.verifyRootExists(DatabaseFileSystem.java:1347)
>         at org.apache.jackrabbit.core.fs.db.DatabaseFileSystem.init(DatabaseFileSystem.java:190)
>         at org.apache.jackrabbit.core.config.FileSystemConfig.createFileSystem(FileSystemConfig.java:47)
>         at org.apache.jackrabbit.core.RepositoryImpl.<init>(RepositoryImpl.java:239)
>         at org.apache.jackrabbit.core.RepositoryImpl.create(RepositoryImpl.java:588)

This message is automatically generated by JIRA.
You can reply to this email to add a comment to the issue online.

View raw message