CMDBuild Forum

Classes with DATE Attributes Errors

Hello,

Since upgrading to CMDBuild 2.1.4 I have been experiencing problems with classes which contain an attribute of type 'DATE'. 

As an example, one of the classes I have is called 'Licenses' which contains start and end dates. After upgrading to 2.1.4 whenever I attempt to modify a card within a class with an 'End' date attribute, I receive error and I'm unable to save the card after modification.

I have attempted to disable the attribute and make it inactive, however I continue to receive the same error.

Call: services/json/management/modcard/updatecard
--------------------------------------------------
Error: org.springframework.jdbc.BadSqlGrammarException: PreparedStatementCallback; bad SQL grammar [UPDATE licenses SET platform = ?, "Description" = ?, "saasName" = ?, "Code" = ?, version = ?, guid = ?, "Notes" = ?, "appName" = ?, start = ?, name = ?, end = ?, "osName" = ?, key = ?, "User" = ? WHERE "Id" = ?]; nested exception is org.postgresql.util.PSQLException: ERROR: syntax error at or near "end"
  Position: 165
	at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:233)
	at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:72)
	at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:602)
	at org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:811)
	at org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:867)
	at org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:875)
	at org.cmdbuild.dao.driver.postgres.EntryUpdateCommand.execute(EntryUpdateCommand.java:37)
	at org.cmdbuild.dao.driver.postgres.PostgresDriver.update(PostgresDriver.java:159)
	at org.cmdbuild.dao.entry.DBEntry.updateOnly(DBEntry.java:136)
	at org.cmdbuild.dao.entry.DBCard.save(DBCard.java:51)
	at org.cmdbuild.dao.entry.DBCard.save(DBCard.java:7)
	at org.cmdbuild.data.store.DataViewStore.update(DataViewStore.java:240)
	at org.cmdbuild.logic.data.access.DefaultDataAccessLogic.updateCard(DefaultDataAccessLogic.java:528)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:601)
	at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:309)
	at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:196)
	at com.sun.proxy.$Proxy318.updateCard(Unknown Source)
	at org.cmdbuild.servlets.json.management.ModCard.updateCard(ModCard.java:299)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:601)
	at org.cmdbuild.servlets.JSONDispatcher.dispatch(JSONDispatcher.java:94)
	at org.cmdbuild.servlets.JSONDispatcher.doPost(JSONDispatcher.java:54)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
	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.cmdbuild.filters.AuthFilter.doFilter(AuthFilter.java:142)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.cmdbuild.filters.PatchManagerFilter.doFilter(PatchManagerFilter.java:33)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.cmdbuild.filters.ConfCheckFilter.doFilter(ConfCheckFilter.java:31)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.cmdbuild.filters.TranslationFilter.doFilter(TranslationFilter.java:39)
	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.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:857)
	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:722)
Caused by: org.postgresql.util.PSQLException: ERROR: syntax error at or near "end"
Please advise on any further action I can take to resolve this.
Thanks,
Jamie

Hello,

the problem is the name "end" that you gave to the date attribute.

The update of your card produces this error:

Error: org.springframework.jdbc.BadSqlGrammarException: PreparedStatementCallback; bad SQL grammar [UPDATE licenses SET platform = ?, "Description" = ?, "saasName" = ?, "Code" = ?, version = ?, guid = ?, "Notes" = ?, "appName" = ?, start = ?, name = ?, end = ?, "osName" = ?, key = ?, "User" = ? WHERE "Id" = ?]; nested exception is org.postgresql.util.PSQLException: ERROR: syntax error at or near "end"
because "end" is a reserved word in Postgres SQL ("case when ... then ... else ... end").
CMDBuild Team
Haha! I'm an idiot. Sorry!
 
Thanks though!
Jamie
 
Previously Tecnoteca wrote:

Hello,

the problem is the name "end" that you gave to the date attribute.

The update of your card produces this error:

Error: org.springframework.jdbc.BadSqlGrammarException: PreparedStatementCallback; bad SQL grammar [UPDATE licenses SET platform = ?, "Description" = ?, "saasName" = ?, "Code" = ?, version = ?, guid = ?, "Notes" = ?, "appName" = ?, start = ?, name = ?, end = ?, "osName" = ?, key = ?, "User" = ? WHERE "Id" = ?]; nested exception is org.postgresql.util.PSQLException: ERROR: syntax error at or near "end"
because "end" is a reserved word in Postgres SQL ("case when ... then ... else ... end").
CMDBuild Team