Willkommen, Gast
Home › Foren › Nuclos Konfiguration › Vorgänge und Objekte › Entitätenwizard streikt
Hallo,
ich habe da ein Problem mit dem Entitätenwizard, der bei einer Entität partout rumzickt und nichts mehr ändern mag. Es handelt sich um eine Entität mit Statusmodell. Ansonsten gibt es nichts besonderes an dieser Entität. Man kann die Entität über das zugehörige Layout ganz normal bedienen, aber eben über den Entitätenwizard nichts mehr daran ändern.
Kann mir jemand sagen, wo ich hinschauen muss?
Die Meldung im Logfile ist nicht aussagekräftiger, deshalb hier die Errormeldung aus dem Errordialog.
In der Tabelle t_md_entity_field gibt es keine NULL-Werte in der Spalte strfield. In der Tabelle t_md_entity_subnodes gibt es keine Einträge. Mehr Tabellen konnte ich mit der Sache nicht in Verbindung bringen.
org.nuclos.common2.exception.CommonFatalException: ERROR: null value in column "strfield" violates not-null constraint
at org.nuclos.client.masterdata.MetaDataDelegate.createOrModifyEntity(MetaDataDelegate.java:160)
at org.nuclos.client.wizard.steps.NuclosEntitySQLLayoutStep.createOrModifyEntity(NuclosEntitySQLLayoutStep.java:711)
at org.nuclos.client.wizard.steps.NuclosEntitySQLLayoutStep.applyState(NuclosEntitySQLLayoutStep.java:432)
at org.nuclos.client.wizard.NuclosWizardButtonBar$1$1.run(NuclosWizardButtonBar.java:87)
at java.lang.Thread.run(Thread.java:636)
Caused by: org.nuclos.common2.exception.CommonFatalException: ERROR: null value in column "strfield" violates not-null constraint
at org.nuclos.server.masterdata.ejb3.MetaDataFacadeBean.createOrModifyEntity(MetaDataFacadeBean.java:775)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:309)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:67)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:110)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
at $Proxy20.createOrModifyEntity(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:309)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
at org.nuclos.server.common.NuclosRemoteRollbackInterceptor.invoke(NuclosRemoteRollbackInterceptor.java:56)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
at $Proxy67.createOrModifyEntity(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.springframework.remoting.support.RemoteInvocation.invoke(RemoteInvocation.java:205)
at org.nuclos.server.common.NuclosRemoteInvocationExecutor.invoke(NuclosRemoteInvocationExecutor.java:30)
at org.springframework.remoting.support.RemoteInvocationBasedExporter.invoke(RemoteInvocationBasedExporter.java:78)
at org.springframework.remoting.support.RemoteInvocationBasedExporter.invokeAndCreateResult(RemoteInvocationBasedExporter.java:114)
at org.springframework.remoting.httpinvoker.HttpInvokerServiceExporter.handleRequest(HttpInvokerServiceExporter.java:73)
at org.springframework.web.servlet.mvc.HttpRequestHandlerAdapter.handle(HttpRequestHandlerAdapter.java:49)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:790)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:719)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:644)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:560)
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:304)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:366)
at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:109)
at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:378)
at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:97)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:378)
at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:100)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:378)
at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:78)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:378)
at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:54)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:378)
at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:35)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:378)
at org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilter(BasicAuthenticationFilter.java:177)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:378)
at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:79)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:378)
at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:167)
at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:237)
at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)
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:240)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:164)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:462)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:563)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:399)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:317)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:204)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:311)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)
at org.springframework.remoting.support.RemoteInvocationUtils.fillInClientStackTraceIfPossible(RemoteInvocationUtils.java:47)
at org.springframework.remoting.support.RemoteInvocationResult.recreate(RemoteInvocationResult.java:115)
at org.springframework.remoting.support.RemoteInvocationBasedAccessor.recreateRemoteInvocationResult(RemoteInvocationBasedAccessor.java:85)
at org.springframework.remoting.httpinvoker.HttpInvokerClientInterceptor.invoke(HttpInvokerClientInterceptor.java:148)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
at $Proxy8.createOrModifyEntity(Unknown Source)
at org.nuclos.client.masterdata.MetaDataDelegate.createOrModifyEntity(MetaDataDelegate.java:157)
... 4 more
Caused by: org.nuclos.server.dblayer.DbException: ERROR: null value in column "strfield" violates not-null constraint
at org.nuclos.server.dblayer.impl.standard.StandardSqlDBAccess.wrapSQLException(StandardSqlDBAccess.java:491)
at org.nuclos.server.dblayer.DbAccess$1.wrapSQLException(DbAccess.java:86)
at org.nuclos.server.dblayer.impl.DataSourceExecutor.execute(DataSourceExecutor.java:61)
at org.nuclos.server.dblayer.impl.postgresql.PostgreSQLDBAccess$PostgreSQLStatementVisitor.executePreparedStatement(PostgreSQLDBAccess.java:295)
at org.nuclos.server.dblayer.impl.standard.StandardSqlDBAccess$StatementVisitor.executePreparedStatements(StandardSqlDBAccess.java:715)
at org.nuclos.server.dblayer.impl.standard.StandardSqlDBAccess$StatementVisitor.visitInsert(StandardSqlDBAccess.java:678)
at org.nuclos.server.dblayer.impl.standard.StandardSqlDBAccess$StatementVisitor.visitInsert(StandardSqlDBAccess.java:674)
at org.nuclos.server.dblayer.statements.DbInsertStatement.accept(DbInsertStatement.java:40)
at org.nuclos.server.dblayer.impl.standard.StandardSqlDBAccess.execute(StandardSqlDBAccess.java:123)
at org.nuclos.server.dblayer.DbAccess.execute(DbAccess.java:164)
at org.nuclos.server.masterdata.ejb3.MetaDataFacadeBean.createOrModifyEntity(MetaDataFacadeBean.java:768)
... 91 more
Caused by: java.sql.SQLException: ERROR: null value in column "strfield" violates not-null constraint
at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2102)
at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1835)
at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:257)
at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:500)
at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:388)
at org.postgresql.jdbc2.AbstractJdbc2Statement.executeUpdate(AbstractJdbc2Statement.java:334)
at org.apache.commons.dbcp.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:105)
at org.apache.commons.dbcp.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:105)
at org.nuclos.server.dblayer.impl.postgresql.PostgreSQLDBAccess$PostgreSQLStatementVisitor$1.performImpl(PostgreSQLDBAccess.java:326)
at org.nuclos.server.dblayer.impl.postgresql.PostgreSQLDBAccess$PostgreSQLStatementVisitor$1.perform(PostgreSQLDBAccess.java:308)
at org.nuclos.server.dblayer.impl.postgresql.PostgreSQLDBAccess$PostgreSQLStatementVisitor$1.perform(PostgreSQLDBAccess.java:295)
at org.nuclos.server.dblayer.impl.DataSourceExecutor.execute(DataSourceExecutor.java:55)
... 99 more
Hallo,
wenn es möglich ist posten sie bitte einmal die Ausgabe von folgendem SQL Statement:
select * from t_md_entity_field where intid_t_md_entity = ( select intid from t_md_entity where strentity = '<name der kaputten Entität')
Dann kann ich mir einen Überblick machen was dort nicht passt.
So spontan kann ich dazu nichts sagen…
Hmm… Als csv geht es wohl nicht… Vielleicht gepackt:
Hmm… Also ich sehe da nichts was nicht passt. Sieht alles richtig aus…
Der Fehler tritt auch in genau dieser Entität auf, oder allgemein?
Kommt bei der Abfrage
select * from t_md_entity_field where strfield is null;
etwas heraus? Oder liefert sie keine Datensätze zurück?
Hallo,
der Fehler tritt nur bei dieser Entität auf und die Abfrage auf null-Values liefert keine Ergebnisse.
MfG,
Hoeppi
Hallo,
um welche Version handelt es sich bei der Nuclosinstanz?
Habe mal nachgefragt ob jemand mit dem Fehler was anfangen kann und es scheint in einer Version ein solcher Fehler zu sein.
Hallo,
das ist Version 3.0.10!
Gibt es einen Workaround?
MfG,
Hoeppi
> In der Tabelle t_md_entity_field gibt es keine NULL-Werte in der Spalte strfield.
Das kann ja auch nicht sein, denn der Constraint, der den Fehler wirft, lässt ja genau das nicht zu.
Offensichtlich versucht erst der Entitätenwizard beim Speichern (der Fehler tritt beim letzten Schritt auf?) bei irgendeinem (oder bei allen) Attributen den Feldnamen des Attributes auf NULL zu setzen (was er wegen des Constraints aber nicht darf).
Fehlt in der Attributliste irgendwo in der letzten Spalte ein Eintrag? Vielleicht können Sie die entsprechenden Screenshots aus Ihrer Entität posten.
Oder ist vielleicht bei der Ansicht eines einzelnen Attributes irgendetwas auffällig, sei es der Feldname im ersten Screenshot ganz oben oder eine der Übersetzungen?
Bisher ist uns dieses Phänomen noch nicht begegnet.
Welche Änderung wollten Sie denn an der Entität vornehmen? Tritt der Fehler auch auf, wenn Sie einfach durch den Entitätenwizard durchklicken, ohne eine Änderung an der Entität vorzunehmen?
Ja, der Fehler tritt auch auf, wenn ich den Entitätenwizard einfach durchklicke, ohne etwas zu ändern. Und zwar erst beim allerletzten Schritt, also dem Klick auf den „Fertig“-Button. Ich schaue nochmal alles durch nach Auffälligkeiten.
Also alle Übersetzungen sind vorhanden und alle Feldnamen ebenfalls. Bei den DB-Spaltennamen scheint nichts auffällig. Sie folgen alle dem gleichen Muster. Ich habe schon überlegt, ob es an „StraßePostfach“ liegen kann… Aber dann hätte ich die Entität ja gar nicht erst anlegen können?!
Der Screenshot fehlt vermutlich, weil er die Grössenbeschränkung von ich glaube 50K überschreitet. Ggf. nochmal kleiner machen…
Jetzt aber…
Können Sie uns ggf. einen Dump (mit anonymisierten Testdaten o.ä.) zur Verfügung stellen, damit wir das Problem nachvollziehen können?
Tut mir Leid, dass ich mich so lange nicht gemeldet habe.
Das mit den Testdaten ist, glaube ich, nicht nötig, da der Fehler auch auftritt, wenn keinerlei Daten in den abhängigen Tabellen vorhanden sind.
Vielleicht kann sich das ja auch jemand über remote anschauen, wenn es nicht anders geht…
Du musst angemeldet sein, um auf dieses Thema antworten zu können.