cancel
Showing results for 
Search instead for 
Did you mean: 

Folder upload with WebDav and OSX

apolci
Champ in-the-making
Champ in-the-making
Whenever we try to upload a folder to alfresco through webdav (using https) we get an error (Error code -43) and no file get to alfresco (only the folder is created).
We tracked the problem with the precence of the .DS_Store file. If we upload a file without the .DS_Store the operation complete successfully.
The same operation done frome the terminal complete successfully including the upload of .DS_Store, so the problem has to be in something specific to Finder.

We have the same problem in Lion and Snow Leopard.

Is this a known problem?
Someone know any workaround?

Thankyou,
Andra Polci
3 REPLIES 3

mikeh
Star Contributor
Star Contributor
Please see this Apple KB Article about .DS_Store files on remote drives: http://support.apple.com/kb/HT1629

Thanks,
Mike

apolci
Champ in-the-making
Champ in-the-making
I've already tried the Apple KB Article and disabled .DS_Store creation on remote folders, but it seems to me that it only affect the creation of a new .DS_Store on remote folder and not the copy of an existing .DS_Store inside the local folder that I try to copy.

Does anyone else experience the same problem?

Andrea

apolci
Champ in-the-making
Champ in-the-making
Investigating further on my problem I've found that while processing a PUT request for the .DS_Store file i get the following exception:


org.alfresco.error.AlfrescoRuntimeException: 08151865 Exception in Transaction.
   at org.alfresco.repo.transaction.RetryingTransactionHelper.doInTransaction(RetryingTransactionHelper.java:466)
   at org.alfresco.repo.transaction.RetryingTransactionHelper.doInTransaction(RetryingTransactionHelper.java:272)
   at org.alfresco.repo.webdav.WebDAVMethod.execute(WebDAVMethod.java:310)
   at org.alfresco.repo.webdav.CustomWebDAVServlet.service(CustomWebDAVServlet.java:131)
   at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
   at org.alfresco.repo.webdav.auth.AuthenticationFilter.doFilter(AuthenticationFilter.java:172)
   at sun.reflect.GeneratedMethodAccessor413.invoke(Unknown Source)
   at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
   at java.lang.reflect.Method.invoke(Method.java:597)
   at org.alfresco.repo.management.subsystems.ChainingSubsystemProxyFactory$1.invoke(ChainingSubsystemProxyFactory.java:116)
   at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
   at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
   at $Proxy201.doFilter(Unknown Source)
   at org.alfresco.repo.web.filter.beans.BeanProxyFilter.doFilter(BeanProxyFilter.java:82)
   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
   at org.alfresco.web.app.servlet.GlobalLocalizationFilter.doFilter(GlobalLocalizationFilter.java:58)
   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
   at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
   at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
   at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:558)
   at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
   at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
   at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
   at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
   at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852)
   at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
   at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
   at java.lang.Thread.run(Thread.java:662)
Caused by: java.net.SocketTimeoutException: Read timed out
   at java.net.SocketInputStream.socketRead0(Native Method)
   at java.net.SocketInputStream.read(SocketInputStream.java:129)
   at com.sun.net.ssl.internal.ssl.InputRecord.readFully(InputRecord.java:293)
   at com.sun.net.ssl.internal.ssl.InputRecord.read(InputRecord.java:331)
   at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:798)
   at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readDataRecord(SSLSocketImpl.java:755)
   at com.sun.net.ssl.internal.ssl.AppInputStream.read(AppInputStream.java:75)
   at org.apache.coyote.http11.InternalInputBuffer.fill(InternalInputBuffer.java:751)
   at org.apache.coyote.http11.InternalInputBuffer$InputStreamInputBuffer.doRead(InternalInputBuffer.java:781)
   at org.apache.coyote.http11.filters.ChunkedInputFilter.readBytes(ChunkedInputFilter.java:243)
   at org.apache.coyote.http11.filters.ChunkedInputFilter.parseCRLF(ChunkedInputFilter.java:326)
   at org.apache.coyote.http11.filters.ChunkedInputFilter.doRead(ChunkedInputFilter.java:128)
   at org.apache.coyote.http11.InternalInputBuffer.doRead(InternalInputBuffer.java:710)
   at org.apache.coyote.Request.doRead(Request.java:428)
   at org.apache.catalina.connector.InputBuffer.realReadBytes(InputBuffer.java:304)
   at org.apache.tomcat.util.buf.ByteChunk.substract(ByteChunk.java:405)
   at org.apache.catalina.connector.InputBuffer.read(InputBuffer.java:327)
   at org.apache.catalina.connector.CoyoteInputStream.read(CoyoteInputStream.java:162)
   at org.springframework.util.FileCopyUtils.copy(FileCopyUtils.java:112)
   at org.alfresco.repo.webdav.WebDAVMethod.getRequestBodyAsFile(WebDAVMethod.java:256)
   at org.alfresco.repo.webdav.WebDAVMethod.access$200(WebDAVMethod.java:80)
   at org.alfresco.repo.webdav.WebDAVMethod$1.getInputStream(WebDAVMethod.java:162)
   at org.alfresco.repo.webdav.PutMethod.executeImpl(PutMethod.java:169)
   at org.alfresco.repo.webdav.WebDAVMethod$2.execute(WebDAVMethod.java:302)
   at org.alfresco.repo.transaction.RetryingTransactionHelper.doInTransaction(RetryingTransactionHelper.java:381)
   … 31 more

It seems to me that alfresco receive the put request but cannot get the content of the file.

I've already set the "com.apple.desktopservices DSDontWriteNetworkStores" switch to true as suggested by MikeH without any visible effect.

I've seen that if i copy from the terminal with the command "cp -r <source path> <dest path on webdav>" the folder is copied without problem and the .DS_Store file is skipped.
Shouldn't this happens also from finder?

Any other suggestion?

Thanks,
Andrea