#
5b780c4a |
| 16-Sep-2017 |
Damjan Jovanovic |
Locking and disposal cleanup. Firstly, add isDisposed() and checkDisposed() methods to main/javaunohelper's com.sun.star.lib.uno.helper.ComponentBase, so that Java components can eas
Locking and disposal cleanup. Firstly, add isDisposed() and checkDisposed() methods to main/javaunohelper's com.sun.star.lib.uno.helper.ComponentBase, so that Java components can easily test and assert their disposal state. Comment these for a clearer understanding of how disposal works, namely that locking against disposal must cover all access of that component, so that the component can't be disposed half-way through being used. These methods are stricter than before, where only bDisposed was checked, which allowed the component to be used during disposal (as postDisposing() runs before bDisposed is set)!! Fix and simplify locking in the PostgreSQL driver, first by using the new methods in ComponentBase instead of tracking disposal separately with our own variable, then expand locking to entire methods so components can't be disposed during a method's execution, and finally eliminate disposal tracking in components that purely wrap another component and modify data in transit, as all disposal management is done by the wrapped component and we don't have to worry as long as our postDispose() has nothing special to do and just delegates to the wrapped component. Also eliminate internal locks in objects, and use "this" as the lock for the non-container objects like Table / Column / Key, while using the parent's "this" as the lock for contain objects like Tables, Columns, Keys etc., as this further simplifies locking, allow using method-level locking instead of "synchronized (this)", reduces the number of fields, simplifies locking in subclasses, and theoretically allows callers to hold the lock across multiple method invocations. Other minor fixes, some exception cleanup, use of AtomicInteger to generate numbers in PropertySetAdapter, etc. Patch by: me git-svn-id: https://svn.apache.org/repos/asf/openoffice/trunk@1808517 13f79535-47bb-0310-9956-ffa450edef68
show more ...
|
#
cf02f0b1 |
| 08-Sep-2017 |
Damjan Jovanovic |
Fix a locking bug in our Java ComponentBase class, where after the transition to disposed, the relevant variables (bDisposed and bInDispose) are written to outside a synchronized block.
Fix a locking bug in our Java ComponentBase class, where after the transition to disposed, the relevant variables (bDisposed and bInDispose) are written to outside a synchronized block. The equivalent C++ implementation in main/cppuhelper/source/implbase.cxx, method WeakComponentImplHelperBase::dispose(), already does this. Patch by: me git-svn-id: https://svn.apache.org/repos/asf/openoffice/trunk@1807667 13f79535-47bb-0310-9956-ffa450edef68
show more ...
|
#
30acf5e8 |
| 22-May-2016 |
pfg |
Spelling, spelling ... Why worry about some sprinkled German when we haven't yet learned English. git-svn-id: https://svn.apache.org/repos/asf/openoffice/trunk@1745006 13f79535
Spelling, spelling ... Why worry about some sprinkled German when we haven't yet learned English. git-svn-id: https://svn.apache.org/repos/asf/openoffice/trunk@1745006 13f79535-47bb-0310-9956-ffa450edef68
show more ...
|