Anonymisation : erreurs dans les logs

Request description

Bonjour,

Quand on utilise la fonctionnalité d’anonymisation on a beaucoup d’erreurs qui sont présentes dans les logs.

Steps to reproduce

Sur une instance Simplicité vierge et avec le module de Demo :

  1. Se connecter avec le compte designer.
  2. Ouvrir le formulaire de l’utilisateur qui a pour login “user_fra”.
  3. Dans le burger menu cliquer sur “Anonymiser l’utilisateur”.

  1. Dans la pop-up laisser les 4 options sur “Oui” et cliquer sur “Confirmer”.

  1. Dans l’IHM on a un message qui nous dit que tout s’est bien passé :

  1. Par contre dans les logs on a plusieurs erreurs comme celle-ci sur différentes tables :

image

log_anonymisation.txt (50.3 KB)

Technical information

Instance /health

[Platform]
Status=OK
Version=6.3.7
Variant=full
BuiltOn=2026-04-03 09:42
Git=6.3/3f01baa9ac25b9b349f607f8d913f3984ec7c924
Encoding=UTF-8
EndpointIP=
EndpointURL=http://b72d869c96f1:8080
TimeZone=Europe/Paris
SystemDate=2026-04-24 16:34:27

[Application]
ApplicationVersion=1.0.0
ContextPath=
ContextURL=http://localhost:8182
ActiveSessions=0
TotalUsers=7
EnabledUsers=5
LastLoginDate=2026-04-24 16:27:31

[Server]
ServerInfo=Apache Tomcat/9.0.117
ServerType=WEB
ServerDevMode=true
ServerCompiler=true
ServerActiveSessions=1
ServerSessionTimeout=30
CronStarted=true

[OS]
Name=Linux
Architecture=amd64
Version=6.12.54-linuxkit
DockerImageName=almalinux9
SystemEncoding=UTF-8

[JavaVM]
Version=21.0.10
Vendor=Eclipse Adoptium
VMName=OpenJDK 64-Bit Server VM
VMVersion=21.0.10+7-LTS
ScriptEngine=rhino
ScriptEngineVersion=Rhino 1.7.13 2020 09 02
HeapFree=89190
HeapSize=228352
HeapMaxSize=503808
TotalFreeSize=364646

[Cache]
ObjectCache=14
ObjectCacheMax=10000
ObjectCacheRatio=0
ProcessCache=1
ProcessCacheMax=10000
ProcessCacheRatio=0
APIGrantCache=0
APIGrantCacheMax=1000
APIGrantRatio=0

[Database]
Vendor=3
VendorName=postgresql
ProductName=PostgreSQL
ProductVersion=15.4 (Debian 15.4-2.pgdg120+1)
DriverName=PostgreSQL JDBC Driver
DriverVersion=42.7.10
DBDate=2026-04-24 16:34:27
DBDateOffset=0
DBPatchLevel=6;P03;ec60a897be456b54a0334ce46619a1a4;7
UsingBLOBs=true

[Healthcheck]
Date=2026-04-24 16:34:27
ElapsedTime=61

Bonjour,

Merci pour ton retour, il y a effectivement une erreur sur les colonnes à anonymiser pour les objets qui ne font que ramener par jointure les attributs du User.

On va corriger dans le prochaine V6.3.

Merci François, par contre il semble rester une erreur.
De mon côté j’ai celle-ci quand je lance l’anonymisation sur un utilisateur en laissant la configuration par défaut :

2026-05-11 11:43:16,613|SIMPLICITE|ERROR||http://f4f0676bd498:8080||ECOREDB001|system|com.simplicite.util.engine.GrantManager|query||Error SQL query: select distinct r.obj_name, f.fld_name, l.obf_cascad from m_object o, m_objfield l, m_object r, m_field f where o.row_id=l.obf_object_id and r.row_id=l.obf_ref_object_id and l.obf_ref_field_id is null and f.fld_dbname is not null and o.obj_dbname='m_user' and l.obf_anon='1'
    
    org.postgresql.util.PSQLException: ERROR: column o.obj_dbname does not exist
     Hint: Perhaps you meant to reference the column "o.obj_name".
     Position: 235
     at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2904)
     at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2589)
     at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:431)
     at org.postgresql.jdbc.PgStatement.executeInternal(PgStatement.java:534)
     at org.postgresql.jdbc.PgStatement.execute(PgStatement.java:437)
     at org.postgresql.jdbc.PgPreparedStatement.executeWithFlags(PgPreparedStatement.java:196)
     at org.postgresql.jdbc.PgPreparedStatement.executeQuery(PgPreparedStatement.java:139)
     at org.apache.tomcat.dbcp.dbcp2.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:123)
     at org.apache.tomcat.dbcp.dbcp2.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:123)
     at com.simplicite.util.engine.DBAccess.query(DBAccess.java:704)
     at com.simplicite.util.engine.DBAccess.query(DBAccess.java:519)
     at com.simplicite.util.engine.GrantDirect.query(GrantDirect.java:90)
     at com.simplicite.util.Grant.query(Grant.java:891)
     at com.simplicite.util.Grant.query(Grant.java:844)
     at com.simplicite.util.engine.CoreCache.getAnonLinks(CoreCache.java:7322)
     at com.simplicite.util.tools.SystemTool.anonymizeUser(SystemTool.java:3835)
     at com.simplicite.util.engine.PlatformHooksInterface.anonymizeUser(PlatformHooksInterface.java:271)
     at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
     at java.base/java.lang.reflect.Method.invoke(Method.java:580)
     at com.simplicite.util.PlatformHooks.callMethod(PlatformHooks.java:164)
     at com.simplicite.util.PlatformHooks.anonymizeUser(PlatformHooks.java:453)
     at com.simplicite.objects.System.SimpleUser.anonymize(SimpleUser.java:631)
     at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
     at java.base/java.lang.reflect.Method.invoke(Method.java:580)
     at com.simplicite.util.engine.ObjectManager.lambda$invokeActionSync$2(ObjectManager.java:4702)
     at com.simplicite.util.ObjectHooks$Wrapper.method(ObjectHooks.java:167)
     at com.simplicite.util.engine.ObjectManager.invokeActionSync(ObjectManager.java:4700)
     at com.simplicite.util.engine.ObjectManager.invokeAction(ObjectManager.java:4631)
     at com.simplicite.util.engine.ObjectDirect.invokeAction(ObjectDirect.java:646)
     at com.simplicite.util.ObjectDB.invokeAction(ObjectDB.java:2280)
     at com.simplicite.util.ObjectDB.invokeAction(ObjectDB.java:2245)
     at com.simplicite.webapp.tools.JSONServletTool.action(JSONServletTool.java:2186)
     at com.simplicite.webapp.ObjectJson.action(ObjectJson.java:1219)
     at com.simplicite.webapp.tools.JSONServletTool.businessObjectService(JSONServletTool.java:623)
     at com.simplicite.webapp.servlets.AbstractJSONServlet.process(AbstractJSONServlet.java:155)
     at com.simplicite.webapp.servlets.AbstractJSONServlet.service(AbstractJSONServlet.java:129)
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)
     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:197)
     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:142)
     at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:166)
     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:142)
     at com.simplicite.webapp.filters.HTTPHeadersFilter.doFilter(HTTPHeadersFilter.java:39)
     at com.simplicite.webapp.filters.AbstractFilter.doFilter(AbstractFilter.java:49)
     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:166)
     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:142)
     at com.simplicite.webapp.filters.AuthMethodFilter.doFilter(AuthMethodFilter.java:221)
     at com.simplicite.webapp.filters.AbstractFilter.doFilter(AbstractFilter.java:49)
     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:166)
     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:142)
     at com.simplicite.webapp.filters.RewriteFilter.doFilter(RewriteFilter.java:72)
     at com.simplicite.webapp.filters.AbstractFilter.doFilter(AbstractFilter.java:49)
     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:166)
     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:142)
     at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:154)
     at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:88)
     at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:491)
     at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:83)
     at org.apache.catalina.valves.RemoteIpValve.invoke(RemoteIpValve.java:763)
     at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
     at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:83)
     at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:643)
     at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:72)
     at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:344)
     at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:398)
     at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)
     at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:939)
     at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1854)
     at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)
     at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:973)
     at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:491)
     at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63)
     at java.base/java.lang.Thread.run(Thread.java:1583)