Skip to content

Cloning a project leads to "org.dependencytrack.model.Component:0" not found #4220

@otbe

Description

@otbe

Current Behavior

With #3357 a lot of issues were fixed that we had with BOM upload/prcoessing after cloning of a project (#3895). However after updating to 4.12.0 we encounter a new and slightly different issue. It seems to happen only during project cloning. This is the stacktrace we receive:

Cloning project for version <version>
Failed to clone project
javax.jdo.JDOObjectNotFoundException: Object with id "org.dependencytrack.model.Component:0" not found !
	at org.datanucleus.api.jdo.JDOAdapter.getJDOExceptionForNucleusException(JDOAdapter.java:637)
	at org.datanucleus.api.jdo.JDOPersistenceManager.getObjectById(JDOPersistenceManager.java:1726)
	at alpine.persistence.AbstractAlpineQueryManager.getObjectById(AbstractAlpineQueryManager.java:441)
	at org.dependencytrack.persistence.VulnerabilityQueryManager.contains(VulnerabilityQueryManager.java:285)
	at org.dependencytrack.persistence.VulnerabilityQueryManager.addVulnerability(VulnerabilityQueryManager.java:217)
	at org.dependencytrack.persistence.QueryManager.addVulnerability(QueryManager.java:845)
	at org.dependencytrack.persistence.ProjectQueryManager.lambda$clone$2(ProjectQueryManager.java:693)
	at alpine.persistence.Transaction.call(Transaction.java:139)
	at alpine.persistence.AbstractAlpineQueryManager.callInTransaction(AbstractAlpineQueryManager.java:542)
	at alpine.persistence.AbstractAlpineQueryManager.callInTransaction(AbstractAlpineQueryManager.java:553)
	at org.dependencytrack.persistence.ProjectQueryManager.clone(ProjectQueryManager.java:600)
	at org.dependencytrack.persistence.QueryManager.clone(QueryManager.java:511)
	at org.dependencytrack.tasks.CloneProjectTask.inform(CloneProjectTask.java:49)
	at alpine.event.framework.BaseEventService.lambda$publish$0(BaseEventService.java:110)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.base/java.lang.Thread.run(Unknown Source)
Caused by: org.datanucleus.exceptions.NucleusObjectNotFoundException: Object with id "org.dependencytrack.model.Component:0" not found !
	at org.datanucleus.store.rdbms.request.FetchRequest.execute(FetchRequest.java:492)
	at org.datanucleus.store.rdbms.RDBMSPersistenceHandler.fetchObject(RDBMSPersistenceHandler.java:427)
	at org.datanucleus.state.StateManagerImpl.loadFieldsFromDatastore(StateManagerImpl.java:1632)
	at org.datanucleus.state.StateManagerImpl.validate(StateManagerImpl.java:5597)
	at org.datanucleus.ExecutionContextImpl.findObject(ExecutionContextImpl.java:3538)
	at org.datanucleus.ExecutionContextImpl.findObject(ExecutionContextImpl.java:2999)
	at org.datanucleus.api.jdo.JDOPersistenceManager.getObjectById(JDOPersistenceManager.java:1721)
	... 15 common frames omitted

This time it happens across all projects and seems to be totally random.

Steps to Reproduce

  1. Clone an existing project (many times?). We currently use this clone config:
{
    project: <Id>,
    version: <newVersion>,
    includeComponents: true,
    includeAuditHistory: true,
  }

Expected Behavior

It would be nice if this just works :)

Dependency-Track Version

4.12.0

Dependency-Track Distribution

Container Image

Database Server

PostgreSQL

Database Server Version

15.7

Browser

Google Chrome

Checklist

Metadata

Metadata

Assignees

Labels

defectSomething isn't workingp2Non-critical bugs, and features that help organizations to identify and reduce risksize/SSmall effort

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions