You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@jackrabbit.apache.org by gohilumesh <go...@hotmail.com> on 2011/01/14 17:34:02 UTC
WebDav -- Updating file fails from MAC -- Please Help
Hi ,
I am trying to update a file from mac using jackrabbit. But it always fails.
When I see the memberName it says .dat085.2 something. And when trying to
get data it give empty array. So my application break. This works from
windows
I am using latest version of Jack rabbit 2.2.1 , Tomcat server
Below is my code : Any help appreciated Thanks in advance
public void addMember(DavResource member, InputContext inputContext) throws
DavException {
if (!exists()) {
throw new DavException(HttpServletResponse.SC_CONFLICT);
}
if (isLocked(this) || isLocked(member)) {
throw new DavException(DavServletResponse.SC_LOCKED);
}
if (!document.isFolder()) {
// TODO convert all exceptions to DavException?
throw new RuntimeException("Can only add members to folders");
}
DocumentRepository documentRepository =
ServiceLocator.getDocumentRepository();
String memberName =
StringUtils.substringAfterLast(member.getLocator().getRepositoryPath(),
"/");
if (member.isCollection()) {
// create folder
documentRepository.createSubFolder(memberName, document);
} else {
// read file data
byte[] data;
try {
data = IOUtils.toByteArray(inputContext.getInputStream());
} catch (IOException e) {
throw new RuntimeException(e);
}
// check if file exists or if this is a new file
if (member.exists() || !document.isNewEntity()) {
// we've already tested if isLocked(member) above, so we know it's not
checked out by another user
// TODO there's a small window where another user could lock this
between test above
// (probably not worth dealing with, but worth documenting here or
catching optimistic lock error?)
boolean wasCheckedOut = true;
if (((DavResourceImpl) member).document.getCheckedOutBy() == null) {
wasCheckedOut = false; // When a new file is moved into a dav folder
documentRepository.checkOut(((DavResourceImpl) member).document);
}
//Check-in the changes
documentRepository.checkIn(((DavResourceImpl) member).document, data,
"Webdav Check-in");
//Keep document checkedout, only if it was checked out before
//Fix for defect 082710-35767
if (wasCheckedOut) {
documentRepository.checkOut(((DavResourceImpl) member).document);
}
} else {
String fileExtension = StringUtils.substringAfterLast(memberName, ".");
Document newDocument = DocumentFactory.newFile(memberName,
fileExtension, data, document);
//Document newDocument = DocumentFactory.newFile(memberName,
documentContentType.getFileExtension(), data, document);
documentRepository.insertDocument(newDocument);
}
}
}
--
View this message in context: http://jackrabbit.510166.n4.nabble.com/WebDav-Updating-file-fails-from-MAC-Please-Help-tp3217987p3217987.html
Sent from the Jackrabbit - Users mailing list archive at Nabble.com.