Data too long for column 'FILTER_XML'

The FILTER_XML column’s limit, in SEC_CONSTRAINT table, should be more than just 1000 characters.
I got the following error:

com.haulmont.cuba.core.global.RemoteException:
---
org.springframework.transaction.TransactionSystemException: Could not commit JPA transaction; nested exception is javax.persistence.RollbackException: Exception [EclipseLink-4002] (Eclipse Persistence Services - 2.6.2.cuba15): org.eclipse.persistence.exceptions.DatabaseException
Internal Exception: com.mysql.jdbc.MysqlDataTruncation: Data truncation: Data too long for column 'FILTER_XML' at row 1
Error Code: 1406
Call: INSERT INTO SEC_CONSTRAINT (ID, CHECK_TYPE, CODE, CREATE_TS, CREATED_BY, DELETE_TS, DELETED_BY, ENTITY_NAME, FILTER_XML, GROOVY_SCRIPT, IS_ACTIVE, JOIN_CLAUSE, OPERATION_TYPE, UPDATE_TS, UPDATED_BY, VERSION, WHERE_CLAUSE, GROUP_ID) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
	bind => &#91;7c250a6650d25c357c8991b6b552d0fa, db, null, 2017-06-17 17:14:12.293, admin, null, null, sec$Role, <?xml version="1.0" encoding="UTF-8"?>

<filter>
  <and>
    <or name="group" unary="true" width="1">
      <c name="type" class="com.haulmont.cuba.security.entity.RoleType" operatorType="EQUAL" width="1" type="PROPERTY"><!&#91;CDATA&#91;queryEntity.type = :component$filterWithoutId.type32205&#93;&#93;>
        <param name="component$filterWithoutId.type32205" javaClass="com.haulmont.cuba.security.entity.RoleType">STANDARD</param>
      </c>
      <c name="type" class="com.haulmont.cuba.security.entity.RoleType" operatorType="EQUAL" width="1" type="PROPERTY"><!&#91;CDATA&#91;queryEntity.type = :component$filterWithoutId.type17193&#93;&#93;>
        <param name="component$filterWithoutId.type17193" javaClass="com.haulmont.cuba.security.entity.RoleType">READONLY</param>
      </c>
      <c name="type" class="com.haulmont.cuba.security.entity.RoleType" operatorType="EQUAL" width="1" type="PROPERTY"><!&#91;CDATA&#91;queryEntity.type = :component$filterWithoutId.type40931&#93;&#93;>
        <param name="component$filterWithoutId.type40931" javaClass="com.haulmont.cuba.security.entity.RoleType">DENYING</param>
      </c>
    </or>
  </and>
</filter>
, null, true, null, read, 2017-06-17 17:14:12.293, null, 1, ({E}.type = 0 or {E}.type = 20 or {E}.type = 30), 0fa2b1a51d684d699fbddff348347f93&#93;
Query: InsertObjectQuery(com.haulmont.cuba.security.entity.Constraint-7c250a66-50d2-5c35-7c89-91b6b552d0fa &#91;new,managed&#93;)
---
javax.persistence.RollbackException: Exception &#91;EclipseLink-4002&#93; (Eclipse Persistence Services - 2.6.2.cuba15): org.eclipse.persistence.exceptions.DatabaseException
Internal Exception: com.mysql.jdbc.MysqlDataTruncation: Data truncation: Data too long for column 'FILTER_XML' at row 1
Error Code: 1406
Call: INSERT INTO SEC_CONSTRAINT (ID, CHECK_TYPE, CODE, CREATE_TS, CREATED_BY, DELETE_TS, DELETED_BY, ENTITY_NAME, FILTER_XML, GROOVY_SCRIPT, IS_ACTIVE, JOIN_CLAUSE, OPERATION_TYPE, UPDATE_TS, UPDATED_BY, VERSION, WHERE_CLAUSE, GROUP_ID) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
	bind => &#91;7c250a6650d25c357c8991b6b552d0fa, db, null, 2017-06-17 17:14:12.293, admin, null, null, sec$Role, <?xml version="1.0" encoding="UTF-8"?>

<filter>
  <and>
    <or name="group" unary="true" width="1">
      <c name="type" class="com.haulmont.cuba.security.entity.RoleType" operatorType="EQUAL" width="1" type="PROPERTY"><!&#91;CDATA&#91;queryEntity.type = :component$filterWithoutId.type32205&#93;&#93;>
        <param name="component$filterWithoutId.type32205" javaClass="com.haulmont.cuba.security.entity.RoleType">STANDARD</param>
      </c>
      <c name="type" class="com.haulmont.cuba.security.entity.RoleType" operatorType="EQUAL" width="1" type="PROPERTY"><!&#91;CDATA&#91;queryEntity.type = :component$filterWithoutId.type17193&#93;&#93;>
        <param name="component$filterWithoutId.type17193" javaClass="com.haulmont.cuba.security.entity.RoleType">READONLY</param>
      </c>
      <c name="type" class="com.haulmont.cuba.security.entity.RoleType" operatorType="EQUAL" width="1" type="PROPERTY"><!&#91;CDATA&#91;queryEntity.type = :component$filterWithoutId.type40931&#93;&#93;>
        <param name="component$filterWithoutId.type40931" javaClass="com.haulmont.cuba.security.entity.RoleType">DENYING</param>
      </c>
    </or>
  </and>
</filter>
, null, true, null, read, 2017-06-17 17:14:12.293, null, 1, ({E}.type = 0 or {E}.type = 20 or {E}.type = 30), 0fa2b1a51d684d699fbddff348347f93&#93;
Query: InsertObjectQuery(com.haulmont.cuba.security.entity.Constraint-7c250a66-50d2-5c35-7c89-91b6b552d0fa &#91;new,managed&#93;)
---
org.eclipse.persistence.exceptions.DatabaseException: 
Internal Exception: com.mysql.jdbc.MysqlDataTruncation: Data truncation: Data too long for column 'FILTER_XML' at row 1
Error Code: 1406
Call: INSERT INTO SEC_CONSTRAINT (ID, CHECK_TYPE, CODE, CREATE_TS, CREATED_BY, DELETE_TS, DELETED_BY, ENTITY_NAME, FILTER_XML, GROOVY_SCRIPT, IS_ACTIVE, JOIN_CLAUSE, OPERATION_TYPE, UPDATE_TS, UPDATED_BY, VERSION, WHERE_CLAUSE, GROUP_ID) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
	bind => &#91;7c250a6650d25c357c8991b6b552d0fa, db, null, 2017-06-17 17:14:12.293, admin, null, null, sec$Role, <?xml version="1.0" encoding="UTF-8"?>

<filter>
  <and>
    <or name="group" unary="true" width="1">
      <c name="type" class="com.haulmont.cuba.security.entity.RoleType" operatorType="EQUAL" width="1" type="PROPERTY"><!&#91;CDATA&#91;queryEntity.type = :component$filterWithoutId.type32205&#93;&#93;>
        <param name="component$filterWithoutId.type32205" javaClass="com.haulmont.cuba.security.entity.RoleType">STANDARD</param>
      </c>
      <c name="type" class="com.haulmont.cuba.security.entity.RoleType" operatorType="EQUAL" width="1" type="PROPERTY"><!&#91;CDATA&#91;queryEntity.type = :component$filterWithoutId.type17193&#93;&#93;>
        <param name="component$filterWithoutId.type17193" javaClass="com.haulmont.cuba.security.entity.RoleType">READONLY</param>
      </c>
      <c name="type" class="com.haulmont.cuba.security.entity.RoleType" operatorType="EQUAL" width="1" type="PROPERTY"><!&#91;CDATA&#91;queryEntity.type = :component$filterWithoutId.type40931&#93;&#93;>
        <param name="component$filterWithoutId.type40931" javaClass="com.haulmont.cuba.security.entity.RoleType">DENYING</param>
      </c>
    </or>
  </and>
</filter>
, null, true, null, read, 2017-06-17 17:14:12.293, null, 1, ({E}.type = 0 or {E}.type = 20 or {E}.type = 30), 0fa2b1a51d684d699fbddff348347f93&#93;
Query: InsertObjectQuery(com.haulmont.cuba.security.entity.Constraint-7c250a66-50d2-5c35-7c89-91b6b552d0fa &#91;detached&#93;)
---
com.mysql.jdbc.MysqlDataTruncation: Data truncation: Data too long for column 'FILTER_XML' at row 1
	at com.haulmont.cuba.core.sys.ServiceInterceptor.aroundInvoke(ServiceInterceptor.java:127)
	at sun.reflect.GeneratedMethodAccessor127.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:629)
	at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:618)
	at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:70)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:168)
	at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
	at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:213)
	at com.sun.proxy.$Proxy191.commit(Unknown Source)
	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 com.haulmont.cuba.core.sys.remoting.LocalServiceInvokerImpl.invoke(LocalServiceInvokerImpl.java:94)
	at com.haulmont.cuba.web.sys.remoting.LocalServiceProxy$LocalServiceInvocationHandler.invoke(LocalServiceProxy.java:148)
	at com.sun.proxy.$Proxy25.commit(Unknown Source)
	at com.haulmont.cuba.client.sys.DataManagerClientImpl.commit(DataManagerClientImpl.java:96)
	at com.haulmont.cuba.gui.data.impl.GenericDataSupplier.commit(GenericDataSupplier.java:90)
	at com.haulmont.cuba.gui.data.impl.DsContextImpl.commit(DsContextImpl.java:164)
	at com.haulmont.cuba.gui.components.EditorWindowDelegate.commit(EditorWindowDelegate.java:281)
	at com.haulmont.cuba.web.gui.WebWindow$Editor.commitAndClose(WebWindow.java:1579)
	at com.haulmont.cuba.gui.components.AbstractEditor.commitAndClose(AbstractEditor.java:109)
	at com.haulmont.cuba.gui.components.EditorWindowDelegate$2.actionPerform(EditorWindowDelegate.java:101)
	at com.haulmont.cuba.web.gui.components.WebButton.performAction(WebButton.java:44)
	at com.haulmont.cuba.web.gui.components.WebButton.lambda$new$61446b05$1(WebButton.java:36)
	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 com.vaadin.event.ListenerMethod.receiveEvent(ListenerMethod.java:510)
	at com.vaadin.event.EventRouter.fireEvent(EventRouter.java:200)
	at com.vaadin.event.EventRouter.fireEvent(EventRouter.java:163)
	at com.vaadin.server.AbstractClientConnector.fireEvent(AbstractClientConnector.java:1037)
	at com.vaadin.ui.Button.fireClick(Button.java:377)
	at com.haulmont.cuba.web.toolkit.ui.CubaButton.fireClick(CubaButton.java:54)
	at com.vaadin.ui.Button$1.click(Button.java:54)
	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 com.vaadin.server.ServerRpcManager.applyInvocation(ServerRpcManager.java:158)
	at com.vaadin.server.ServerRpcManager.applyInvocation(ServerRpcManager.java:119)
	at com.vaadin.server.communication.ServerRpcHandler.handleInvocation(ServerRpcHandler.java:444)
	at com.vaadin.server.communication.ServerRpcHandler.handleInvocations(ServerRpcHandler.java:409)
	at com.vaadin.server.communication.ServerRpcHandler.handleRpc(ServerRpcHandler.java:274)
	at com.vaadin.server.communication.UidlRequestHandler.synchronizedHandleRequest(UidlRequestHandler.java:90)
	at com.vaadin.server.SynchronizedRequestHandler.handleRequest(SynchronizedRequestHandler.java:41)
	at com.vaadin.server.VaadinService.handleRequest(VaadinService.java:1422)
	at com.vaadin.server.VaadinServlet.service(VaadinServlet.java:385)
	at com.haulmont.cuba.web.sys.CubaApplicationServlet.serviceAppRequest(CubaApplicationServlet.java:278)
	at com.haulmont.cuba.web.sys.CubaApplicationServlet.service(CubaApplicationServlet.java:187)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:230)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165)
	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:192)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165)
	at com.haulmont.cuba.web.sys.CubaHttpFilter.handleNotFiltered(CubaHttpFilter.java:108)
	at com.haulmont.cuba.web.sys.CubaHttpFilter.doFilter(CubaHttpFilter.java:95)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:192)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:474)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
	at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:624)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:349)
	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:783)
	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
	at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:789)
	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1437)
	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
	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’ve solved it by changing the column type to Text for now.

The issue is fixed in the platform version 6.6.0.

Hi.
Thank you for reporting the problem. We have created a YouTrack issue. And maybe we will fix it in some of the future releases.

Regards.

:ticket: See the following issue in our bug tracker:

https://youtrack.cuba-platform.com/issue/PL-9293