Sheet contains errors - Destination exists and is not a directory error

Symptom

When a user is updating a workbook, an error is generated for one sheet that reads as follows:

Sheet contains errors.

Destination exists and is not a directory: /opt/datameer/Datameer-5.4.2/cache/dfscache/wb-preview-1234/MySheet/data

Additionally, the following stack trace is generated in the conductor.log file:

[datameer_user] WARN [2015-01-01 00:00:00.000] qtp1030870354-186578 - Handler execution resulted in exception

java.lang.RuntimeException: Could not generate preview for sheet 'Sheet4'. FileNotFoundException: Destination exists and is not a directory: /opt/datameer/Datameer-5.4.2/cache/dfscache/wb-preview-1234/MySheet/data

at datameer.dap.conductor.service.preview.WorkbookPreviewService1.createSheetPreview(WorkbookPreviewService1.java:172)

at datameer.dap.conductor.service.preview.WorkbookPreviewService1.createSheetPreview(WorkbookPreviewService1.java:115)

at datameer.dap.conductor.service.preview.WorkbookPreviewService1.createSheetPreview(WorkbookPreviewService1.java:109)

at datameer.dap.conductor.service.visualization.ColumnMetricsService.getActualSource(ColumnMetricsService.java:120)

at datameer.dap.conductor.service.visualization.VisualizationService.getFlipsideVisualization(VisualizationService.java:80)

at datameer.dap.conductor.webapp.controller.workbook.VisualizationController.getSheetVisualization(VisualizationController.java:70)

at sun.reflect.GeneratedMethodAccessor455.invoke(Unknown Source)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:497)

at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:176)

at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:436)

at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:424)

at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:790)

at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:719)

at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:669)

at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:574)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:687)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)

at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:769)

at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1667)

at datameer.dap.conductor.webapp.filter.MinifyJsCssFilter.doFilter(MinifyJsCssFilter.java:49)

at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1650)

at datameer.dap.conductor.webapp.filter.HeaderInjectFilter.doFilter(HeaderInjectFilter.java:24)

at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1650)

at datameer.dap.conductor.webapp.filter.CsrfFilter.doHttpFilter(CsrfFilter.java:85)

at datameer.dap.conductor.webapp.filter.CsrfFilter.doFilter(CsrfFilter.java:64)

at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:237)

at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)

at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1650)

at datameer.dap.conductor.webapp.filter.SessionFilter.doFilter(SessionFilter.java:53)

at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1650)

at datameer.dap.conductor.webapp.filter.RestAuthenticationOriginFilter.doFilter(RestAuthenticationOriginFilter.java:52)

at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:237)

at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)

at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1650)

at org.eclipse.jetty.servlets.UserAgentFilter.doFilter(UserAgentFilter.java:83)

at org.eclipse.jetty.servlets.GzipFilter.doFilter(GzipFilter.java:364)

at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1650)

at datameer.dap.conductor.webapp.filter.OptimisticLockRetryFilter.doFilter(OptimisticLockRetryFilter.java:31)

at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1650)

at datameer.dap.conductor.webapp.filter.PermissionDeniedExceptionFilter.doFilter(PermissionDeniedExceptionFilter.java:29)

at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1650)

at datameer.dap.conductor.webapp.filter.RequestMetaDataFilter.doFilter(RequestMetaDataFilter.java:27)

at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1650)

at datameer.dap.conductor.webapp.filter.PersistenceFilter.doFilter(Unknown Source)

at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:237)

at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)

at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1650)

at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)

at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:118)

at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:84)

at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)

at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:113)

Cause

This is a known bug in Datameer. 

Solution

Workaround

To work around this issue, once the error is displayed, run the workbook. After the workbook is run, please continue to edit the workbook.

Resolution

This issue is resolved in Datameer 5.5 and later. Please upgrade to resolve this issue.

A fix may be available in some additional branches, please contact Datameer Technical Support for additional information.