DependencyTrack / DependencyTrack/dependency-track

can't delete a version of a project

Open
#1,598 0 comments 0 reactions 0 assignees View on GitHub
in triage
Dominant language
Java
Stars
4.2k
Forks
811
Avg merge
8h 39m
Merged PRs (30d)
237

Description

The defect may already be reported! Please search for the defect before creating one.

### Current Behavior:
can't delete a version of a project even though the original project was deleted and another version was deleted too.

### Steps to Reproduce:

-create a project.
- add version.
- access the new version.
- add another version.

i was able to delete the original and the second version. but the one in the middle gives me this error:

2022-05-10 08:35:48,644 INFO [ProjectResource] Project rfer : frerf deletion request by admin

2022-05-10 08:35:48,674 ERROR [GlobalExceptionHandler] Uncaught internal server error

javax.jdo.JDODataStoreException: Exception thrown flushing changes to datastore

at org.datanucleus.api.jdo.NucleusJDOHelper.getJDOExceptionForNucleusException(NucleusJDOHelper.java:542)

at org.datanucleus.api.jdo.JDOTransaction.commit(JDOTransaction.java:162)

at alpine.persistence.AbstractAlpineQueryManager.delete(AbstractAlpineQueryManager.java:464)

at org.dependencytrack.persistence.ProjectQueryManager.recursivelyDelete(ProjectQueryManager.java:567)

at org.dependencytrack.persistence.QueryManager.recursivelyDelete(QueryManager.java:325)

at org.dependencytrack.resources.v1.ProjectResource.deleteProject(ProjectResource.java:295)

at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)

at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

at java.base/java.lang.reflect.Method.invoke(Unknown Source)

at org.glassfish.jersey.server.model.internal.ResourceMethodInvocationHandlerFactory.lambda$static$0(ResourceMethodInvocationHandlerFactory.java:52)

at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher$1.run(AbstractJavaResourceMethodDispatcher.java:124)

at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.invoke(AbstractJavaResourceMethodDispatcher.java:167)

at org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$ResponseOutInvoker.doDispatch(JavaResourceMethodDispatcherProvider.java:176)

at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.dispatch(AbstractJavaResourceMethodDispatcher.java:79)

at org.glassfish.jersey.server.model.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:475)

at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:397)

at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:81)

at org.glassfish.jersey.server.ServerRuntime$1.run(ServerRuntime.java:255)

at org.glassfish.jersey.internal.Errors$1.call(Errors.java:248)

at org.glassfish.jersey.internal.Errors$1.call(Errors.java:244)

at org.glassfish.jersey.internal.Errors.process(Errors.java:292)

at org.glassfish.jersey.internal.Errors.process(Errors.java:274)

at org.glassfish.jersey.internal.Errors.process(Errors.java:244)

at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:265)

at org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:234)

at org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:684)

at org.glassfish.jersey.servlet.WebComponent.serviceImpl(WebComponent.java:394)

at org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:346)

at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:366)

at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:319)

at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:205)

at org.eclipse.jetty.servlet.ServletHolder$NotAsync.service(ServletHolder.java:1419)

at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:764)

at org.eclipse.jetty.servlet.ServletHandler$ChainEnd.doFilter(ServletHandler.java:1624)

at alpine.filters.ContentSecurityPolicyFilter.doFilter(ContentSecurityPolicyFilter.java:224)

at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:202)

at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1594)

at alpine.filters.ClickjackingFilter.doFilter(ClickjackingFilter.java:92)

at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:202)

at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1594)

at alpine.filters.WhitelistUrlFilter.doFilter(WhitelistUrlFilter.java:165)

at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:210)

at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1594)

at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:506)

at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:131)

at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:578)

at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122)

at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:223)

at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1571)

at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:221)

at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1378)

at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:176)

at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:463)

at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1544)

at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:174)

at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1300)

at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:129)

at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122)

at org.eclipse.jetty.server.Server.handle(Server.java:562)

at org.eclipse.jetty.server.HttpChannel.lambda$handle$0(HttpChannel.java:505)

at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:762)

at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:497)

at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:282)

at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:319)

at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:100)

at org.eclipse.jetty.io.SelectableChannelEndPoint$1.run(SelectableChannelEndPoint.java:53)

at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:894)

at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1038)

at java.base/java.lang.Thread.run(Unknown Source)

Caused by: org.h2.jdbc.JdbcBatchUpdateException: Referential integrity constraint violation: "FINDINGATTRIBUTION_FK2: PUBLIC.FINDINGATTRIBUTION FOREIGN KEY(PROJECT_ID) REFERENCES PUBLIC.PROJECT(ID) (98)"; SQL statement:

DELETE FROM PROJECT WHERE ID=? [23503-200]

at org.h2.jdbc.JdbcPreparedStatement.executeBatch(JdbcPreparedStatement.java:1235)

at com.zaxxer.hikari.pool.ProxyStatement.executeBatch(ProxyStatement.java:127)

at com.zaxxer.hikari.pool.HikariProxyPreparedStatement.executeBatch(HikariProxyPreparedStatement.java)

at org.datanucleus.store.rdbms.ParamLoggingPreparedStatement.executeBatch(ParamLoggingPreparedStatement.java:366)

at org.datanucleus.store.rdbms.SQLController.processConnectionStatement(SQLController.java:675)

at org.datanucleus.store.rdbms.SQLController.processStatementsForConnection(SQLController.java:643)

at org.datanucleus.store.rdbms.SQLController$1.transactionFlushed(SQLController.java:729)

at org.datanucleus.store.connection.AbstractManagedConnection.transactionFlushed(AbstractManagedConnection.java:95)

at org.datanucleus.store.connection.ConnectionManagerImpl$2.transactionFlushed(ConnectionManagerImpl.java:528)

at org.datanucleus.TransactionImpl.flush(TransactionImpl.java:222)

at org.datanucleus.TransactionImpl.commit(TransactionImpl.java:286)

at org.datanucleus.api.jdo.JDOTransaction.commit(JDOTransaction.java:99)

... 68 common frames omitted

### Expected Behavior:

### Environment:

- Dependency-Track Version: 4.4.2
- Distribution: [ Docker ]
- BOM Format & Version: Cyclonedx
- Database Server: [ H2 ]
- Browser: edge

### Additional Details:
i tried to access the H2 database directly but it kept asking for username/password, tried admin admin, the credentials of the admin, nothing works

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.