CMDBuild Forum

ERRORE: Cancellazione attributi di una classe

Buongiorno a tutti,

sto cercando di cancellare un attributo (di tipo "reference") da una classe ("Server"), ma ottengo il seguente errore:

 

ERROR 2011-11-23 14:17:26 [jsonrpc ] A org.cmdbuild.exception.ORMException occurred calling method class org.cmdbuild.servlets.json.schema.ModClass.deleteAttribute: ORM_CONTAINS_DATA

 

L'errore spiega chiaramente che non mi è possibile cancellare l'attributo di una classe che contiene dei dati.

In realtà dal pannello di gestioni dati l'attributo in questione non contiene alcun dato.

 

Ho provato a guardare dentro le tabelle del DB ed in effetti all'interno della tabella "Server" c'erano dei campi valorizzati in corrispondenza dell'attributo che non riuscivo a rimuovere.

Ho cancellato a mano i valori ed ho riprovato ad eliminare l'attributo dal modulo di amministrazione.

L'attributo è stato eliminato ma, nei log ho riscontrato un altro errore:

 

ERROR 2011-11-23 14:28:46 [persist ] Errors finding attributes in table: Server
org.cmdbuild.exception.NotFoundException: LOOKUP_NOTFOUND sm-sw1000-1
        at org.cmdbuild.exception.NotFoundException$NotFoundExceptionType.createException(NotFoundException.java:24)
        at org.cmdbuild.dao.backend.postgresql.PGCMBackend.getLookupTypeOrDie(PGCMBackend.java:1477)
        at org.cmdbuild.elements.AttributeImpl.setLookupType(AttributeImpl.java:577)
        at org.cmdbuild.elements.AttributeImpl$AttributeDataDefinitionMeta$9.setValueNotNull(AttributeImpl.java:124)
        at org.cmdbuild.elements.AttributeImpl$AttributeDataDefinitionMeta.setValue(AttributeImpl.java:280)
        at org.cmdbuild.elements.AttributeImpl.readDataDefinitionMeta(AttributeImpl.java:363)
        at org.cmdbuild.elements.AttributeImpl.<init>(AttributeImpl.java:333)
        at org.cmdbuild.dao.attribute.LookupAttribute.<init>(LookupAttribute.java:13)
        at org.cmdbuild.elements.interfaces.IAttribute$AttributeType$12.createAttribute(IAttribute.java:73)
        at org.cmdbuild.elements.AttributeImpl.create(AttributeImpl.java:314)
        at org.cmdbuild.dao.backend.postgresql.PGCMBackend.findAttributes(PGCMBackend.java:548)
        at org.cmdbuild.elements.BaseSchemaImpl.loadAttributes(BaseSchemaImpl.java:83)
        at org.cmdbuild.elements.BaseSchemaImpl.getAttributes(BaseSchemaImpl.java:77)
        at org.cmdbuild.elements.proxy.TableForwarder.getAttributes(TableForwarder.java:43)
        at org.cmdbuild.elements.proxy.TableProxy.getAttributes(TableProxy.java:69)
        at org.cmdbuild.servlets.json.serializers.Serializer.serializeAttributeList(Serializer.java:569)
        at org.cmdbuild.servlets.json.schema.ModClass.getAttributeList(ModClass.java:185)
        at sun.reflect.GeneratedMethodAccessor50.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.cmdbuild.servlets.JSONDispatcher.dispatch(JSONDispatcher.java:94)
        at org.cmdbuild.servlets.JSONDispatcher.doGet(JSONDispatcher.java:60)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
        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:54)
        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:28)
        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:37)
        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:291)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
        at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:602)
        at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
        at java.lang.Thread.run(Thread.java:662)

 

Qualche suggerimento?

Grazie!

Previously Davide wrote:

L'errore spiega chiaramente che non mi è possibile cancellare l'attributo di una classe che contiene dei dati.

In realtà dal pannello di gestioni dati l'attributo in questione non contiene alcun dato.

Il modulo di gestione non mostra alcuna card per quella classe ma probabilmente ce ne sono state, per cui la storia esiste ancora. Siccome una caratteristica di CMDBuild è quella di mantenere la storia di tutti i cambiamenti, quell'attributo potrà essere solamente disabilitato.

Paolo