CMDBuild Forum

Import CSV Error

Hi all,

I'm having an issue when I'm trying to import a CSV file to add cards to a class. I have first exported the CSV for the class, then I go into the CSV file, remove the current rows (while keeping the header row), and add in the rows. I then go to the Import CSV function and attempt to upload the modified CSV file. However when I go attempt to upload I get the error copied below. I have also tried this in my deployment of Ready2Use and I get the same error (using the Employee class). Am I doing something wrong when modifying the CSV file. I've verified the correct Separator when I upload. Not sure what I'm doing wrong. Any help is much appreciated. 

 

Call: services/json/management/importcsv/getcsvrecords
-------------------------------------------------------
Error: java.lang.NullPointerException
	at org.cmdbuild.servlets.json.management.ImportCSV.getCSVRecords(ImportCSV.java:253)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.cmdbuild.servlets.JSONDispatcher.dispatch(JSONDispatcher.java:104)
	at org.cmdbuild.servlets.JSONDispatcher.doPost(JSONDispatcher.java:64)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:650)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
	at org.cmdbuild.filters.AuthFilter.doFilter(AuthFilter.java:188)
	at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346)
	at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:262)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
	at org.cmdbuild.filters.PatchManagerFilter.doFilter(PatchManagerFilter.java:48)
	at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346)
	at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:262)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
	at org.cmdbuild.filters.ConfCheckFilter.doFilter(ConfCheckFilter.java:31)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
	at org.cmdbuild.filters.TranslationFilter.doFilter(TranslationFilter.java:52)
	at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346)
	at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:262)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
	at org.cmdbuild.filters.LocalizationFilter.doFilter(LocalizationFilter.java:127)
	at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346)
	at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:262)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:956)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:423)
	at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1079)
	at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:625)
	at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
	at java.lang.Thread.run(Thread.java:745)

I do not know if in your file is also a problem of incorrect separators.
Also consider that, as specified
As specified in the User Manual (page 72), for “reference” attributes
the export function extracts the “Description” field of the linked card (usually most significant), while the import function matches the linked card using the “Code” field (usually unique).
Then you can not import a file obtained by the export function without changing the value of the “reference” attributes.
CMDBuild Team

Thank you for the quick reply. 
I found the problem after debugging the code. It is unrelated to CMDBuild.  It was an apache configuration error.
I'll post my solution here for others, even though it is not a CMDBuild issue.
 
We are running tomcat behind apache using reverse proxy.
The upload csv request was using a different session than the get csv request.
I had to add cookie support to apache to preserve the session id.
In my apache conf file, I have:
 
ProxyPass /inventory/ http://localhost:8080/cmdbuild/
ProxyPassReverse /inventory/ http://localhost:8080/cmdbuild/
ProxyPassReverseCookiePath /cmdbuild/ /inventory/
 
Adding the last line fixed the session issue.
 
Previously Tecnoteca wrote:
I do not know if in your file is also a problem of incorrect separators.
Also consider that, as specified
As specified in the User Manual (page 72), for "reference" attributes
the export function extracts the "Description" field of the linked card (usually most significant), while the import function matches the linked card using the "Code" field (usually unique).
Then you can not import a file obtained by the export function without changing the value of the "reference" attributes.
CMDBuild Team