Use the new ToadletContext.checkFullAccess() instead of isAllowedFullAccess()+sendUnauthorizedPage()
Russian translation.
Clone Date objects to make sure that we don't re-use db4o-stored objects. Arguably Date is a db4o-native class so its not necessary but I'd like to have it this way as the Date stuff is probably less well-tested than the other native classes such as String (which we don't clone).
Merge branch 'master' of https://github.com/freenet/plugin-WoT-staging
Documentation.
Documentation.
Implement function for searching for database object leaks:
- This implements bug 0005861
Add Debugging.txt to developer documentation:
- It explains which functions should be used periodically by developers to check for bugs. Those are functions which cannot be run during normal WOT operation. An example is checkForDatabaseLeaks() - it deletes everything in the database so we cannot use it as an automatic self test.
Mention DEBUG logging in Debugging.txt
Fix mismatch of variable name and the one mentioned in the thrown Exception
Deprecate deleteIdentity(Identity identity) and explain why in the JavaDoc
Remove unused wrapper around deprecated function
Don't use the deprecated deleteIdentity() in the FCP interface:
- It is very unlikely that a RuntimeException happens there. If it does, it would be acceptable for the identity not to be deleted there.
- Also, upgrade the TODO related to the modified code to a FIXME
Add FIXME similar to the one in deleteOwnIdentity since restoreOwnIdentity is similar
Document locking order of class IdentityFetcher:
- We always lock the WOT first because its objects (Identity, Trust, Score) are the base objects for everything else.
- The order between IntroductionPuzzleStore and IdentityFetcher is defined by the current code in class IntroductionServer. Its onSuccess() first locks the puzzlestore and then uses XMLTransformer.importIntroduction() which locks the IdentityFetcher
- The database can always be locked last when we actually start modifying stuff.
Document (acceptable) lack of IntroductionPuzzleStore/IdentityFetcher synchronization in upgradeDB():
- This is to ensure that nobody moves the function to a place where it would be needed.
Add proper synchronization of IdentityFetcher/IntroductionPuzzleStore to checkForDatabaseLeaks()
Add proper synchronization of IdentityFetcher/IntroductionPuzzleStore to deleteDuplicateObjects()
Fix synchronization documentation of deleteWithoutCommit(Identity identity)
Add proper synchronization of IdentityFetcher to deleteIdentity(Identity identity)