| Summary: | [DB] CommitException: SELECT-statement already in cache | ||
|---|---|---|---|
| Product: | [Modeling] EMF | Reporter: | Stefan Winkler <stefan> |
| Component: | cdo.db | Assignee: | Eike Stepper <stepper> |
| Status: | CLOSED FIXED | QA Contact: | Eike Stepper <stepper> |
| Severity: | normal | ||
| Priority: | P3 | Flags: | stefan:
review?
(stepper) |
| Version: | 4.2 | ||
| Target Milestone: | --- | ||
| Hardware: | All | ||
| OS: | All | ||
| Whiteboard: | |||
|
Description
Stefan Winkler
The problem was caused by the recursive reading in cascading branches. If a list is modified in a sub-branch and the list values are not yet present in that branch, the list values have to be read from the base branch's revision via a recursive call. The problem was that the caller did not release its own SQL statement to the cache before doing the recursive call. Therefore, for each recursion the same SQL statement was created new (because the cache did not contain it as it was checked out). When checking in, the cache checks if the SQL is already contained in the cache and if so issues the error encountered above. The fix was to finish all reading operations and then release the statement to the cache before doing the recursive call. Test case and fix available in commit 06caef367e263da4cc302a6307841a7e95f0e2bc Author: Stefan Winkler <stefan@winklerweb.net> 2012-01-26 13:17:38 Committer: Stefan Winkler <stefan@winklerweb.net> 2012-01-30 12:11:47 Parent: 490d2d1752af8e5e8404549a498e335040d19bb1 (Add a missing if(TRACER.isEnabled()) line) Branches: bugs/370105, origin/bugs/370105 Stefan, please contact me on Skype (having Git issues...) Moving all open issues to 4.2. Open bugs can be ported to 4.1 maintenance after they've been fixed in master. commit cd7c758a5c0887ea43c769c4aa276a3157debe6a See also bug 364105. Available in R20130613-1157 (4.2) |