Cannot Import Solution

Version: 5.1.2 - build 959

We sent a .servoy file to one of our customers about a month ago, and they successfully imported it. Last Friday, we sent another .servoy file that contains code upgrades to them, and when they tried to import it, they received the following error:

com.servoy.j2db.persistence.RepositoryException: could not update columninfo, column has none

Here is the log file info…

2010-04-16 16:25:42,329 ERROR [http-8080-1] com.servoy.j2db.util.Debug - Throwable
com.servoy.j2db.persistence.RepositoryException: com.servoy.j2db.persistence.RepositoryException: could not update columninfo, column has none
at com.servoy.j2db.server.xmlxport.Zp.Za(Zp.java:37)
at com.servoy.j2db.server.xmlxport.XMLImporter.Za(XMLImporter.java:30)
at com.servoy.j2db.server.xmlxport.XMLImporter.importFromJarFile(XMLImporter.java:12)
at com.servoy.j2db.server.servlets.ConfigServlet.Zj(ConfigServlet.java:1096)
at com.servoy.j2db.server.servlets.ConfigServlet.service(ConfigServlet.java:2465)
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.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:567)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)
at java.lang.Thread.run(Unknown Source)
Caused by: com.servoy.j2db.persistence.RepositoryException: could not update columninfo, column has none
at com.servoy.j2db.persistence.Zvd.Zb(Zvd.java:294)
at com.servoy.j2db.persistence.Zvd.Zb(Zvd.java:23)
at com.servoy.j2db.persistence.Server.updateAllColumnInfo(Server.java:216)
at com.servoy.j2db.persistence.Server.syncTableObjWithDB(Server.java:671)
at com.servoy.j2db.persistence.Server.syncTableObjWithDB(Server.java:374)
at com.servoy.j2db.server.xmlxport.Zo.Zb(Zo.java:777)
at com.servoy.j2db.server.xmlxport.Zo.Za(Zo.java:662)
at com.servoy.j2db.server.xmlxport.Zp.Za(Zp.java:119)
… 18 more

Searching the forum, I found the following thread related to the same problem in Servoy version 3.5.3:

http://www.servoy.com/forum/viewtopic.phpf=11&t=9740&st=0&sk=t&sd=a&hilit=could+not+update+columninfo2C+column+has+none

The thread indicates that this error arises whenever a table name begins with ‘temp_’, however, I have checked our database for such a table, and it does not exist. Also, in the same thread, Servoy stated that they would fix this problem in the next release (version 3.5.4), so it shouldn’t be a problem in version 5.1.2.

The first file we sent to the customer was developed in version 5.1.1 while the second file was developed in version 5.1.2. I don’t know if that makes any difference, but I don’t know what else has changed to cause the error message (other than the code changes).

The error message is somewhat cryptic. I understand that that a table column could not be updated, but I am not certain why. Does ‘column has none’ mean that a column modification was to occur, but there was no column parameters (like name, type, length, etc.)? Also, how do I find the offending column and its table?

Any help and/or guidance would be greatly appreciated!

Thanks!

Can you reproduce this issue in own server ? This error means it tries to update a column info (the extra information you have for a column in Servoy) but the column info is null, so cannot be updated. I think in the import log(from servoy admin) can be seen for what table it failed.

We successfully imported the solution on our own server.

I am still not clear on the ‘column has none’ message. If a column is being updated/created and is supplied with parameters, how can it have none? Shouldn’t the newly specified parameters be written into the column descriptor? Then, it would have some.

Does the message mean that a column descriptor was expecting parameters, but none were supplied? This was my initial assumption, and I thought I could look at the table structure to see what was missing. However, I still cannot find the offending table to confirm this…it would have been nice to have the table listed in the error message.

kwpsd:
We successfully imported the solution on our own server.

I am still not clear on the ‘column has none’ message. If a column is being updated/created and is supplied with parameters, how can it have none? Shouldn’t the newly specified parameters be written into the column descriptor? Then, it would have some.

Does the message mean that a column descriptor was expecting parameters, but none were supplied? This was my initial assumption, and I thought I could look at the table structure to see what was missing. However, I still cannot find the offending table to confirm this…it would have been nice to have the table listed in the error message.

Unfortunately the error message doesn’t give the column/table info; I added this info for next release (5.1.3). You don’t have access to the client admin page ? I guess the client has important data in database so recreating table from scratch is not an option ?

Unfortunately the error message doesn’t give the column/table info; I added this info for next release (5.1.3).

Excellent…thanks for your efforts, Laurian!