From dbffd532f7cf5bbe96a8d24bf9df3de5e0ed722e Mon Sep 17 00:00:00 2001 From: Derek Hulley Date: Tue, 18 Jul 2006 15:22:09 +0000 Subject: [PATCH] Merge V1.3 to HEAD (3045:3063) svn merge svn://www.alfresco.org:3691/alfresco/BRANCHES/V1.3@3045 svn://www.alfresco.org:3691/alfresco/BRANCHES/V1.3@3063 . git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@3340 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261 --- .../filesys/smb/server/NTProtocolHandler.java | 39 +++---------------- .../filesys/smb/server/SMBSrvSession.java | 2 +- .../smb/server/repo/ContentDiskDriver.java | 10 +++-- .../filesys/smb/server/repo/FileState.java | 31 +-------------- .../smb/server/repo/FileStateTable.java | 4 +- .../filefolder/FileFolderServiceImpl.java | 33 +++++++++++----- source/java/org/alfresco/tools/Import.java | 2 +- .../util/SearchLanguageConversion.java | 2 +- .../util/SearchLanguageConversionTest.java | 2 +- 9 files changed, 41 insertions(+), 84 deletions(-) diff --git a/source/java/org/alfresco/filesys/smb/server/NTProtocolHandler.java b/source/java/org/alfresco/filesys/smb/server/NTProtocolHandler.java index 33f53eb4ad..c8a6022dee 100644 --- a/source/java/org/alfresco/filesys/smb/server/NTProtocolHandler.java +++ b/source/java/org/alfresco/filesys/smb/server/NTProtocolHandler.java @@ -6576,41 +6576,12 @@ public class NTProtocolHandler extends CoreProtocolHandler return; } - // Check if this is a buffer length check, if so the maximum returned data count will be - // zero + // Return an empty security descriptor + + byte[] paramblk = new byte[4]; + DataPacker.putIntelInt(0, paramblk, 0); - if (tbuf.getReturnDataLimit() == 0) - { - - // Return the security descriptor length in the parameter block - - byte[] paramblk = new byte[4]; - DataPacker.putIntelInt(_sdEveryOne.length, paramblk, 0); - - // Initialize the transaction reply - - outPkt.initTransactReply(paramblk, paramblk.length, null, 0); - - // Set a warning status to indicate the supplied data buffer was too small to return the - // security - // descriptor - - outPkt.setLongErrorCode(SMBStatus.NTBufferTooSmall); - } - else - { - - // Return the security descriptor length in the parameter block - - byte[] paramblk = new byte[4]; - DataPacker.putIntelInt(_sdEveryOne.length, paramblk, 0); - - // Initialize the transaction reply. Return the fixed security descriptor that allows - // anyone to access the - // file/directory - - outPkt.initTransactReply(paramblk, paramblk.length, _sdEveryOne, _sdEveryOne.length); - } + outPkt.initTransactReply(paramblk, paramblk.length, null, 0); // Send back the response diff --git a/source/java/org/alfresco/filesys/smb/server/SMBSrvSession.java b/source/java/org/alfresco/filesys/smb/server/SMBSrvSession.java index 51ad5cf2b6..fa924a6944 100644 --- a/source/java/org/alfresco/filesys/smb/server/SMBSrvSession.java +++ b/source/java/org/alfresco/filesys/smb/server/SMBSrvSession.java @@ -1344,7 +1344,7 @@ public class SMBSrvSession extends SrvSession implements Runnable // We are using case sensitive pathnames and long file names - setDefaultFlags(0); + setDefaultFlags(SMBSrvPacket.FLG_CASELESS); setDefaultFlags2(SMBSrvPacket.FLG2_LONGFILENAMES + SMBSrvPacket.FLG2_UNICODE); // Access the authenticator for this server and determine if the server is in share or diff --git a/source/java/org/alfresco/filesys/smb/server/repo/ContentDiskDriver.java b/source/java/org/alfresco/filesys/smb/server/repo/ContentDiskDriver.java index 6f857b19a9..0d57ee05c3 100644 --- a/source/java/org/alfresco/filesys/smb/server/repo/ContentDiskDriver.java +++ b/source/java/org/alfresco/filesys/smb/server/repo/ContentDiskDriver.java @@ -598,10 +598,8 @@ public class ContentDiskDriver implements DiskInterface, IOCtlInterface { // a valid use case if (logger.isDebugEnabled()) - { logger.debug("Getting file information - File not found: \n" + " path: " + path); - } throw e; } catch (org.alfresco.repo.security.permissions.AccessDeniedException ex) @@ -1449,7 +1447,8 @@ public class ContentDiskDriver implements DiskInterface, IOCtlInterface try { - // get the node + // Get the node + NodeRef nodeRef = getNodeForPath(tree, name); if (nodeService.exists(nodeRef)) { @@ -1602,8 +1601,11 @@ public class ContentDiskDriver implements DiskInterface, IOCtlInterface // DEBUG - if ( logger.isDebugEnabled()) + if ( logger.isDebugEnabled()) + { logger.debug("Cached rename state for " + oldName + ", state=" + fstate); + logger.debug(" new name " + newName + ", state=" + newState); + } } } else diff --git a/source/java/org/alfresco/filesys/smb/server/repo/FileState.java b/source/java/org/alfresco/filesys/smb/server/repo/FileState.java index 1a5844df79..dc87680438 100644 --- a/source/java/org/alfresco/filesys/smb/server/repo/FileState.java +++ b/source/java/org/alfresco/filesys/smb/server/repo/FileState.java @@ -20,7 +20,6 @@ import org.alfresco.filesys.locking.FileLock; import org.alfresco.filesys.locking.FileLockList; import org.alfresco.filesys.locking.LockConflictException; import org.alfresco.filesys.locking.NotLockedException; -import org.alfresco.filesys.server.filesys.FileName; import org.alfresco.filesys.server.filesys.FileOpenParams; import org.alfresco.filesys.server.filesys.FileStatus; import org.alfresco.filesys.smb.SharingMode; @@ -587,35 +586,7 @@ public class FileState */ public final static String normalizePath(String path) { - - // Split the path into directories and file name, only uppercase the directories to - // normalize the path. - - String normPath = path; - - if (path.length() > 3) - { - - // Split the path to seperate the folders/file name - - int pos = path.lastIndexOf(FileName.DOS_SEPERATOR); - if (pos != -1) - { - - // Get the path and file name parts, normalize the path - - String pathPart = path.substring(0, pos).toUpperCase(); - String namePart = path.substring(pos); - - // Rebuild the path string - - normPath = pathPart + namePart; - } - } - - // Return the normalized path - - return normPath; + return path.toUpperCase(); } /** diff --git a/source/java/org/alfresco/filesys/smb/server/repo/FileStateTable.java b/source/java/org/alfresco/filesys/smb/server/repo/FileStateTable.java index 835fb04e03..2eb2797979 100644 --- a/source/java/org/alfresco/filesys/smb/server/repo/FileStateTable.java +++ b/source/java/org/alfresco/filesys/smb/server/repo/FileStateTable.java @@ -448,7 +448,7 @@ public class FileStateTable implements Runnable // Dump the file state cache entries to the specified stream if (m_stateTable.size() > 0) - logger.info("++ FileStateCache Entries:"); + logger.debug("++ FileStateCache Entries:"); Enumeration enm = m_stateTable.keys(); long curTime = System.currentTimeMillis(); @@ -458,7 +458,7 @@ public class FileStateTable implements Runnable String fname = (String) enm.nextElement(); FileState state = m_stateTable.get(fname); - logger.info(" ++ " + fname + "(" + state.getSecondsToExpire(curTime) + ") : " + state); + logger.debug(" ++ " + fname + "(" + state.getSecondsToExpire(curTime) + ") : " + state); } } } \ No newline at end of file diff --git a/source/java/org/alfresco/repo/model/filefolder/FileFolderServiceImpl.java b/source/java/org/alfresco/repo/model/filefolder/FileFolderServiceImpl.java index 6494d26f4a..aefc09f3e1 100644 --- a/source/java/org/alfresco/repo/model/filefolder/FileFolderServiceImpl.java +++ b/source/java/org/alfresco/repo/model/filefolder/FileFolderServiceImpl.java @@ -467,21 +467,34 @@ public class FileFolderServiceImpl implements FileFolderService targetParentRef = assocRef.getParentRef(); } - // there is nothing to do if both the name and parent folder haven't changed - if (targetParentRef.equals(assocRef.getParentRef()) && newName.equals(beforeFileInfo.getName())) + boolean checkExists = true; + if (targetParentRef.equals(assocRef.getParentRef())) { - if (logger.isDebugEnabled()) + // there is nothing to do if both the name and parent folder haven't changed + if (newName.equals(beforeFileInfo.getName())) { - logger.debug("Doing nothing - neither filename or parent has not changed: \n" + - " parent: " + targetParentRef + "\n" + - " before: " + beforeFileInfo + "\n" + - " new name: " + newName); + if (logger.isDebugEnabled()) + { + logger.debug("Doing nothing - neither filename or parent has changed: \n" + + " parent: " + targetParentRef + "\n" + + " before: " + beforeFileInfo + "\n" + + " new name: " + newName); + } + return beforeFileInfo; + } + else if (newName.equalsIgnoreCase(beforeFileInfo.getName())) + { + // name has only changed case so don't bother with exists check + checkExists = false; } - return beforeFileInfo; } - // check for existing file or folder - checkExists(targetParentRef, newName); + // check for existing file or folder (if name has changed) + if (checkExists) + { + checkExists(targetParentRef, newName); + } + QName qname = QName.createQName( NamespaceService.CONTENT_MODEL_1_0_URI, diff --git a/source/java/org/alfresco/tools/Import.java b/source/java/org/alfresco/tools/Import.java index db2f1837d6..0096c459ac 100644 --- a/source/java/org/alfresco/tools/Import.java +++ b/source/java/org/alfresco/tools/Import.java @@ -409,7 +409,7 @@ public class Import extends Tool throw new ToolArgumentException("Source directory " + fileSourceDir.getAbsolutePath() + " does not exist."); } } - if (packageName.endsWith(".acp")) + if (packageName.endsWith(".acp") || packageName.endsWith(".zip")) { File packageFile = new File(getSourceDir(), packageName); if (!packageFile.exists()) diff --git a/source/java/org/alfresco/util/SearchLanguageConversion.java b/source/java/org/alfresco/util/SearchLanguageConversion.java index b5be2f5d76..a5f64aef20 100644 --- a/source/java/org/alfresco/util/SearchLanguageConversion.java +++ b/source/java/org/alfresco/util/SearchLanguageConversion.java @@ -34,7 +34,7 @@ public class SearchLanguageConversion *
  • Reserved: \%_
  • * */ - public static LanguageDefinition DEF_XPATH_LIKE = new SimpleLanguageDef('\\', "%", "_", "\\%_"); + public static LanguageDefinition DEF_XPATH_LIKE = new SimpleLanguageDef('\\', "%", "_", "\\%_[]"); /** * Regular expression query language summary: *