mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-08-07 17:49:17 +00:00
Merged V3.4-BUG-FIX to HEAD
27967: Fixes: ALF-8696. L10N updates 27969: Fixes: ALF-8698 - FR L10N string updates 28011: Fixes: ALF-8776 - IT L10N updates 28035: Fix for ALF-2711 - Spring Surf contrib: Unable to upload files over 2GB 28052: Fixes: ALF-8724 28054: Merged PATCHES/V3.4.1 to V3.4-BUG-FIX 27765: ALF-8607: Detect and invalidate stale cached nodes during transaction tracking - Also increased debug logging around IndexTransactionTracker 27953: ALF-8607: Store FTSSTATUS on a supplementary document in the index for each transaction, so that we don't forget to FTS reindex the document if it has already been updated by a later transaction. 27965: ALF-8607: Complete query parsers' handling of new FTSREF field 28033: ALF-8811: Removed invalid caching of permissions from Invite wizards. Finish off ALF-4597 28053: ALF-8815: Make it possible to copy a node with the cm:storeSelector aspect - The copied node's content will already be in the target store when its properties (including storeName) are first applied 28055: Merged PATCHES/V3.3.4 to V3.4-BUG-FIX (RECORD ONLY) 27830: ALF-8476: Possible fix to StackOverflowError when searching a transaction with a huge number of deletions 27854: Merged V3.3 to PATCHES/V3.3.4 27851: Fix for ALF-8476: CLONE - Query consuming all heap and receiving an OOM exception - actually fixes stack overflow with skipTo when there are lots of deleted docs in an index in a row (<10000 on the default settings) 28060: ALF-8779: I18N Fix from Bitrock. 28065: ALF-8105: Correction to ETWOTWO-1384 fix: do not embed schema in XForm definition if it references externals to avoid performance issues - Previous fix embedded a partial, invalid schema that caused XML parser warnings 28070: Suggested fix for ALF-8852. Upgrading pdfbox,fontbox,jempbox from 1.3.1 to 1.5.0. 28071: Fix for symptom raised in ALF-8780: Forms system does not show control for associations of cm:person type This hides the rn:rendition association from default forms as it should never be edited by a user. The proper fix for the bug is to supply form config for the custom type. 28072: Fixed ALF-8050: Inconsistency in validation of webforms with maxOccurs="*" 28077: ALF-6293: Fix from Bitrock - Installing the tomcat service logs more stuff on Linux and Windows 28084: ALF-8877: Upgraded freemarker to 2.3.18 28090: Fix failing forms related tests 28118: ALF-8557 Added NullScope object used by JbpmNode. 28123: Fix for ALF-8207 28124: ALF-7708 The JavaScript expressions in workflows should no longer be re-formatted. 28134: Incremented version revision for 3.4.3 28135: Merged V3.4 to V3.4-BUG-FIX 27962: Update to Bitrock 7.1.1 + use absolute path to Bitrock license under protected build-classpath directory 27971: Fix for ALF-8704 - RM search doesn't work 27984: ALF-8771: Installer now uses cmd /C start /MIN /WAIT to run minimized commands synchronously rather than asynchronously! - Also uses -w flag when registering postgres service to make its startup synchronous - Should mean that the install waits for postgres to start before issuing commands to it! 27987: ALF-8666: Bitrock service run and install scripts now execute commands sequentially - start /MIN /WAIT cmd /C used instead of start /MIN 27993: ALF-8761: getWindowsACL fix from Bitrock 27996: ALF-8710: Run servicerun.bat as admin user 27998: ALF-7164: NFS: User with editor role cannot edit content 28021: ALF-8823: PostgreSQL Windows service is registered under SYSTEM user. Therefore initial initdb must be done as this user for service to start. 28022: ALF-8823: Additional fix from Bitrock 28041: Another try at fixing ALF-8704 - RM search doesn't work 28119: ALF-8853: I18N fallout from ALF-6469. TransferService default group must be looked up by QName rather than cm:name git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@28137 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -512,21 +512,35 @@ found:
|
||||
// If the batch is full or if there are no more voids, fire the query
|
||||
if (voidTxnIdBatch.size() == VOID_BATCH_SIZE || !voidTxnIdIterator.hasNext())
|
||||
{
|
||||
if (logger.isDebugEnabled())
|
||||
{
|
||||
logger.debug("Checking void txn batch " + voidTxnIdBatch);
|
||||
}
|
||||
List<Transaction> filledTxns = nodeDAO.getTxnsByCommitTimeAscending(voidTxnIdBatch);
|
||||
for (Transaction txn : filledTxns)
|
||||
{
|
||||
InIndex inIndex;
|
||||
if (txn.getCommitTimeMs() == null) // Just coping with Hibernate mysteries
|
||||
{
|
||||
continue;
|
||||
}
|
||||
else if (isTxnPresentInIndex(txn) != InIndex.NO)
|
||||
else if ((inIndex = isTxnPresentInIndex(txn)) != InIndex.NO)
|
||||
{
|
||||
if (logger.isDebugEnabled())
|
||||
{
|
||||
logger.debug("Expiring indexed void txn " + txn.getId() + " (inIndex = " + inIndex + ")");
|
||||
}
|
||||
// It is in the index so expire it from the voids.
|
||||
// This can happen if void was committed locally.
|
||||
toExpireTxnIds.add(txn.getId());
|
||||
}
|
||||
else
|
||||
{
|
||||
if (logger.isDebugEnabled())
|
||||
{
|
||||
logger.debug("Found unindexed void txn " + txn.getId() + " (inIndex = " + inIndex + ")");
|
||||
}
|
||||
|
||||
// It's not in the index so we have a timespamp from which to kick off
|
||||
// It is a bone fide first transaction. A void has been filled.
|
||||
long txnCommitTimeMs = txn.getCommitTimeMs().longValue();
|
||||
@@ -547,6 +561,11 @@ found:
|
||||
TxnRecord voidTxnRecord = voids.get(voidTxnId);
|
||||
if (voidTxnRecord.txnCommitTime < maxHistoricalTime)
|
||||
{
|
||||
if (logger.isDebugEnabled())
|
||||
{
|
||||
logger.debug("Expiring void txn " + voidTxnId + " ("
|
||||
+ (maxHistoricalTime - voidTxnRecord.txnCommitTime) + " ms too old)");
|
||||
}
|
||||
// It's too late for this void whether or not it has become live
|
||||
toExpireTxnIds.add(voidTxnId);
|
||||
}
|
||||
@@ -622,10 +641,11 @@ found:
|
||||
processedTxnRecord.txnCommitTime = txnCommitTimeMs;
|
||||
processedTxnRecords.put(txnId, processedTxnRecord);
|
||||
// Remove this entry from the void list - it is not void
|
||||
voids.remove(txnId);
|
||||
boolean previouslyVoid = voids.remove(txnId) != null;
|
||||
|
||||
// Reindex the transaction if we are forcing it or if it isn't in the index already
|
||||
if (forceReindex || isTxnPresentInIndex(txn) == InIndex.NO)
|
||||
InIndex inIndex = InIndex.INDETERMINATE;
|
||||
if (forceReindex || (inIndex = isTxnPresentInIndex(txn)) == InIndex.NO)
|
||||
{
|
||||
// From this point on, until the tracker has caught up, all transactions need to be indexed
|
||||
forceReindex = true;
|
||||
@@ -633,14 +653,29 @@ found:
|
||||
txnIdBuffer.add(txnId);
|
||||
if (logger.isDebugEnabled())
|
||||
{
|
||||
logger.debug("Reindexing transaction: " + txn);
|
||||
if (previouslyVoid)
|
||||
{
|
||||
logger.debug("Reindexing previously void transaction: " + txn + " (inIndex = " + inIndex + ")");
|
||||
}
|
||||
else
|
||||
{
|
||||
logger.debug("Reindexing transaction: " + txn + " (inIndex = " + inIndex + ")");
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (logger.isDebugEnabled())
|
||||
{
|
||||
logger.debug("Reindex skipping transaction: " + txn);
|
||||
if (previouslyVoid)
|
||||
{
|
||||
logger.debug("Reindex skipping previously void transaction: " + txn + " (inIndex = " + inIndex
|
||||
+ ")");
|
||||
}
|
||||
else
|
||||
{
|
||||
logger.debug("Reindex skipping transaction: " + txn + " (inIndex = " + inIndex + ")");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user