mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-07-31 17:39:05 +00:00
Merged V1.4 to HEAD
svn merge svn://svn.alfresco.com:3691/alfresco/BRANCHES/V1.4@4133 svn://svn.alfresco.com:3691/alfresco/BRANCHES/V1.4@4145 . svn merge svn://svn.alfresco.com:3691/alfresco/BRANCHES/V1.4@4147 svn://svn.alfresco.com:3691/alfresco/BRANCHES/V1.4@4148 . svn merge svn://svn.alfresco.com:3691/alfresco/BRANCHES/V1.4@4151 svn://svn.alfresco.com:3691/alfresco/BRANCHES/V1.4@4152 . svn merge svn://svn.alfresco.com:3691/alfresco/BRANCHES/V1.4@4157 svn://svn.alfresco.com:3691/alfresco/BRANCHES/V1.4@4159 . svn merge svn://svn.alfresco.com:3691/alfresco/BRANCHES/V1.4@4161 svn://svn.alfresco.com:3691/alfresco/BRANCHES/V1.4@4162 . svn merge svn://svn.alfresco.com:3691/alfresco/BRANCHES/V1.4@4169 svn://svn.alfresco.com:3691/alfresco/BRANCHES/V1.4@4175 . Skipped: 4146, 4151, 4153, 4156, 4157, 4160, 4163-4167 (inclusive) Last included: 4175 git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@4176 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -25,7 +25,6 @@ import org.alfresco.repo.domain.ChildAssoc;
|
||||
import org.alfresco.repo.domain.Node;
|
||||
import org.alfresco.service.cmr.repository.ChildAssociationRef;
|
||||
import org.alfresco.service.namespace.QName;
|
||||
import org.alfresco.util.EqualsHelper;
|
||||
|
||||
/**
|
||||
* @author Derek Hulley
|
||||
@@ -124,9 +123,12 @@ public class ChildAssocImpl implements ChildAssoc, Serializable
|
||||
{
|
||||
StringBuffer sb = new StringBuffer(32);
|
||||
sb.append("ChildAssoc")
|
||||
.append("[ parent=").append(parent)
|
||||
.append(", child=").append(child)
|
||||
.append("[ id=").append(id)
|
||||
.append(", parent=").append(parent.getId())
|
||||
.append(", child=").append(child.getId())
|
||||
.append(", child name=").append(childNodeName)
|
||||
.append(", child name crc=").append(childNodeNameCrc)
|
||||
.append(", assoc type=").append(getTypeQName())
|
||||
.append(", assoc name=").append(getQname())
|
||||
.append(", isPrimary=").append(isPrimary)
|
||||
.append("]");
|
||||
|
@@ -29,7 +29,7 @@
|
||||
unique="false"
|
||||
not-null="false"
|
||||
cascade="none" />
|
||||
<property name="changeTxnId" column="change_txn_id" type="string" length="56" not-null="true" index="CHANGE_TXN_ID"/>
|
||||
<property name="changeTxnId" column="change_txn_id" type="string" length="56" not-null="true" />
|
||||
</class>
|
||||
|
||||
<class
|
||||
|
@@ -67,6 +67,7 @@ public class SchemaBootstrap extends AbstractLifecycleBean
|
||||
private static final String PLACEHOLDER_SCRIPT_DIALECT = "\\$\\{db\\.script\\.dialect\\}";
|
||||
|
||||
private static final String MSG_EXECUTING_SCRIPT = "schema.update.msg.executing_script";
|
||||
private static final String MSG_OPTIONAL_STATEMENT_FAILED = "schema.update.msg.optional_statement_failed";
|
||||
private static final String ERR_STATEMENT_FAILED = "schema.update.err.statement_failed";
|
||||
private static final String ERR_UPDATE_FAILED = "schema.update.err.update_failed";
|
||||
private static final String ERR_VALIDATION_FAILED = "schema.update.err.validation_failed";
|
||||
@@ -504,10 +505,18 @@ public class SchemaBootstrap extends AbstractLifecycleBean
|
||||
}
|
||||
// have we reached the end of a statement?
|
||||
boolean execute = false;
|
||||
boolean optional = false;
|
||||
if (sql.endsWith(";"))
|
||||
{
|
||||
sql = sql.substring(0, sql.length() - 1);
|
||||
execute = true;
|
||||
optional = false;
|
||||
}
|
||||
else if (sql.endsWith(";(optional)"))
|
||||
{
|
||||
sql = sql.substring(0, sql.length() - 11);
|
||||
execute = true;
|
||||
optional = true;
|
||||
}
|
||||
// append to the statement being built up
|
||||
sb.append(" ").append(sql);
|
||||
@@ -515,7 +524,7 @@ public class SchemaBootstrap extends AbstractLifecycleBean
|
||||
if (execute)
|
||||
{
|
||||
sql = sb.toString();
|
||||
executeStatement(connection, sql, line, scriptFile);
|
||||
executeStatement(connection, sql, optional, line, scriptFile);
|
||||
sb = new StringBuilder(1024);
|
||||
}
|
||||
}
|
||||
@@ -531,7 +540,7 @@ public class SchemaBootstrap extends AbstractLifecycleBean
|
||||
* Execute the given SQL statement, absorbing exceptions that we expect during
|
||||
* schema creation or upgrade.
|
||||
*/
|
||||
private void executeStatement(Connection connection, String sql, int line, File file) throws Exception
|
||||
private void executeStatement(Connection connection, String sql, boolean optional, int line, File file) throws Exception
|
||||
{
|
||||
Statement stmt = connection.createStatement();
|
||||
try
|
||||
@@ -544,10 +553,18 @@ public class SchemaBootstrap extends AbstractLifecycleBean
|
||||
}
|
||||
catch (SQLException e)
|
||||
{
|
||||
String msg = I18NUtil.getMessage(ERR_STATEMENT_FAILED, sql, e.getMessage(), file.getAbsolutePath(), line);
|
||||
// ignore exceptions generated by the creation of indexes that already exist
|
||||
logger.error(msg);
|
||||
throw e;
|
||||
if (optional)
|
||||
{
|
||||
// it was marked as optional, so we just ignore it
|
||||
String msg = I18NUtil.getMessage(MSG_OPTIONAL_STATEMENT_FAILED, sql, e.getMessage(), file.getAbsolutePath(), line);
|
||||
logger.warn(msg);
|
||||
}
|
||||
else
|
||||
{
|
||||
String err = I18NUtil.getMessage(ERR_STATEMENT_FAILED, sql, e.getMessage(), file.getAbsolutePath(), line);
|
||||
logger.error(err);
|
||||
throw e;
|
||||
}
|
||||
}
|
||||
finally
|
||||
{
|
||||
|
Reference in New Issue
Block a user