> On Feb. 6, 2018, 4:15 p.m., András Piros wrote: > > core/src/main/java/org/apache/oozie/util/db/ThreadVariables.java > > Lines 23-37 (patched) > > <https://reviews.apache.org/r/65481/diff/2/?file=1953367#file1953367line23> > > > > I don't see calling `setDbPredicate()` or `unsetDbPredicate()` from > > anywhere else than test code. > > > > When using `ThreadLocal` we have to be very careful to unset after > > every use to avoid resource / memory leaks. > > > > Generally, I think it would be a better idea to inject a new DB > > predicate by other means - I would only go for `ThreadLocal` usage when > > most of the time I need different `dbPredicate` to every `Thread` - which > > is not the case here. > > > > Let's think a bit more on `Predicate` injecting scenarios apart from > > using `ThreadLocal`.
My next ideea is what Peti suggested: a helper class with a static field. Is not a very elegant solution. Do you have some better ideeas? - Kinga ----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/65481/#review196897 ----------------------------------------------------------- On Feb. 6, 2018, 2:43 p.m., Kinga Marton wrote: > > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > https://reviews.apache.org/r/65481/ > ----------------------------------------------------------- > > (Updated Feb. 6, 2018, 2:43 p.m.) > > > Review request for oozie, András Piros and Attila Sasvari. > > > Repository: oozie-git > > > Description > ------- > > Upon SLACalculatorMemory.addRegistration, Oozie puts an entry into an > in-memory concurrent hashmap ("slaMap"), and later persists it in the Oozie > database. > However, if there is a failure during the database operation, a > JPAExecutorException is thrown, and the entry is not removed from the SLA map. > It may introduce inconsistency between the Oozie database and the SLA map. > To prevent this, a rollback mechanism (with proper logging) should be > implemented. It would also make sense to do more sanity/consistency check in > the Oozie server. > > > Diffs > ----- > > core/src/main/java/org/apache/oozie/sla/SLACalculatorMemory.java ef019e73 > > core/src/main/java/org/apache/oozie/util/db/AlwaysFailingHSQLDriverMapper.java > PRE-CREATION > core/src/main/java/org/apache/oozie/util/db/FailingConnectionWrapper.java > 0e310253 > core/src/main/java/org/apache/oozie/util/db/FailingHSQLDBDriverWrapper.java > fe9f08b1 > core/src/main/java/org/apache/oozie/util/db/FailingMySQLDriverWrapper.java > f0e2b181 > core/src/main/java/org/apache/oozie/util/db/ThreadVariables.java > PRE-CREATION > core/src/test/java/org/apache/oozie/sla/TestSLACalculatorMemory.java > ee906f45 > > > Diff: https://reviews.apache.org/r/65481/diff/2/ > > > Testing > ------- > > > Thanks, > > Kinga Marton > >
