CMDBuild Forum

Problemi quando Description finisce con riga vuota

Sto usando la 2.1.3 e noto problemi (che c'erano anche nella 2.1 e nella 2.1.2) quando si imposta un campo Reference relativo ad una relazione 1:N e la scheda relata ha una Description che finisce con una riga vuota. Non mi sembra si verifichino in tutti i casi, comunque riesco a riprodurlo in modo consistente in questo modo:

Ho una classe Site ed una class location,  con dominio SiteLocation da Site a Location del tipo 1:N, nella Location c'e' il campo Reference chiamato "InSite".

Ho due schede Site, una funziona e l'altra no, nel senso che se modifico una scheda Location e provo ad impostare il campo InSite alla scheda Site che non funziona, ottengo il traceback:

<pre>

Call: services/json/management/modcard/updatecard
--------------------------------------------------
Error: java.lang.NumberFormatException: For input string: "Site che non funziona"
	at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
	at java.lang.Long.parseLong(Long.java:438)
	at java.lang.Long.parseLong(Long.java:478)
	at org.cmdbuild.dao.entrytype.attributetype.AbstractReferenceAttributeType.convertNotNullValue(AbstractReferenceAttributeType.java:16)
	at org.cmdbuild.dao.entrytype.attributetype.AbstractReferenceAttributeType.convertNotNullValue(AbstractReferenceAttributeType.java:5)
	at org.cmdbuild.dao.entrytype.attributetype.AbstractAttributeType.convertValue(AbstractAttributeType.java:17)
	at org.cmdbuild.dao.entry.DBEntry.toNative(DBEntry.java:124)
	at org.cmdbuild.dao.entry.DBEntry.setOnly(DBEntry.java:119)
	at org.cmdbuild.dao.entry.DBCard.set(DBCard.java:17)
	at org.cmdbuild.dao.entry.DBCard.set(DBCard.java:7)
	at org.cmdbuild.data.store.DataViewStore.fillCard(DataViewStore.java:288)
	at org.cmdbuild.data.store.DataViewStore.update(DataViewStore.java:228)
	at org.cmdbuild.logic.data.access.DefaultDataAccessLogic.updateCard(DefaultDataAccessLogic.java:538)
	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:616)
	at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:309)
	at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:196)
	at sun.proxy.$Proxy155.updateCard(Unknown Source)
	at org.cmdbuild.servlets.json.management.ModCard.updateCard(ModCard.java:289)
	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:616)
	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:641)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at org.apache.catalina.filters.ExpiresFilter.doFilter(ExpiresFilter.java:1179)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at org.cmdbuild.filters.AuthFilter.doFilter(AuthFilter.java:142)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at org.cmdbuild.filters.PatchManagerFilter.doFilter(PatchManagerFilter.java:33)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at org.cmdbuild.filters.ConfCheckFilter.doFilter(ConfCheckFilter.java:31)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at org.cmdbuild.filters.TranslationFilter.doFilter(TranslationFilter.java:39)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
	at org.apache.coyote.ajp.AjpProcessor.process(AjpProcessor.java:200)
	at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:579)
	at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:307)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1146)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
	at java.lang.Thread.run(Thread.java:679)

</pre>

Il Site che non funziona, visto da psql con \x e' il seguente:

<pre>

cmdbDEV=# \x

Expanded display is on.

cmdbDEV=# select * from "Site" where "Code"='Site che non funziona' and "Status"='A';

-[ RECORD 1 ]---+----------------------------

Id              | 353

IdClass         | "Site"

Code            | Site che non funziona

Description     | Site che non funziona

                |

Status          | A

User            | admin

BeginDate       | 2013-06-25 13:33:34.349569

Notes           |

Address1        | Piazza Garibaldi, 1

Address2        | Palazzo Garibaldi, piano 14

ProvinceOrState | Bologna

PostalCode      | 40131

Country         | 137

OwnedBy         | 350

</pre>

Notate che la Description finisce con una riga vuota. In questi casi anche la visualizzazione della Storia della scheda presenta delle anomalie, che non vi descrivo dettagliatamente se non vi serve per ulteriore troubleshooting.