Skip to content

Releases: couchbase/couchbase-lite-java-core

1.4.0

20 Mar 23:30
Compare
Choose a tag to compare

As part of this release we had 110 commits which resulted in 39 issues being closed.

Enhancements

  • #1087 LiteServ app for Java
  • #1543 Make CBLDatabaseChange.isDeletion public?
  • #1554 1.0.2d is being rejected by Google Play

Bugs

  • #911 Multiple duplicate replication change events sent in pull replication
  • #1334 Change tracker stopped during continuous replication error thrown when cookie expires
  • #1385 CBLReplicatorExecutor still exists after stopping the replicator
  • #1470 IOS pull replication from Android
  • #1471 Attachments failed to replicate when deleted and recreated
  • #1481 ConnectionError: ('Connection aborted.', error(54, 'Connection reset by peer'))
  • #1493 Test failure ViewsTest.failingTestAllDocumentsLiveQuery on Jenkins
  • #1495 Changes feed skipping changes on rapid long poll
  • #1498 Was not able to delete the database directory, Status: 500 (HTTP 500 Internal Server Error)
  • #1510 Mixing HashMap and TreeMap for properties in Document. HashMap allows to generate non-canonical JSON.
  • #1534 Push Replication Fails With createTarget Set
  • #1535 ForestDB Views Issue :Router: Router unable to route request to do_GET_DesignDocument(java.lang.NullPointerException)
  • #1539 Small load - ConnectionError: ('Connection aborted.', error(54, 'Connection reset by peer'))
  • #1540 _replicate REST API with one-shot returns immediately.
  • #1549 1.4-12 ConnectionError: ('Connection aborted.', error(54, 'Connection reset by peer')) during doc add
  • #1550 Test Failure: testAndroid2MLimit
  • #1551 Test failure: testMultipleLiveQueries
  • #1552 P2P fails between android and macosx
  • #1553 Test Failure: testGetDocumentWithLargeJSON
  • #1557 List not syncing during test fest (Need to reproduce).
  • #1558 Listener returning different error codes for negative tests 1.3.1 vs 1.4
  • #1563 Database deletion failing with 1.4-25
  • #1564 P2P sanity test failing
  • #1575 SSL with allowSelfSignedSSLCertificates() method
  • #1576 [Functional Test] Socket timeout when pushing docs to LiteServ
  • #1578 Image attachment not sync'ing from .NET to Android
  • #1581 Replication failures when running Sync Gateway in distributed index
  • #1585 ForestDB + Encryption - SIGSEGV during database deletion
  • #1588 Investigate test_verify_open_revs_with_revs_limit_push_conflict failure
  • #1589 Investigate possible push replication issue
  • #1590 Investigate failure at client.stop_replication()
  • #1592 Find root cause of ConnectionError: ('Connection aborted.', error(54, 'Connection reset by peer'))
  • #1593 Missing changes on changes feed (Mac <- Android) pull replication
  • #1595 Database error with peer-2-peer-sanity test
  • #1597 P2P - ForestDB Error: forceInsert()
  • #1599 Updates not propagating to SQLite Client

Where to get it

You can download this release from Couchbase.com

1.3.1

13 Sep 18:31
Compare
Choose a tag to compare

As part of this release we had 39 commits which resulted in 9 issues being closed.

Enhancements

  • #1376 Implement timeout parameter for _changes REST API
  • #1387 Support for _oidc_refresh response without ID token

Bugs

  • #1296 Cordova - After putting Android app in background mode for a few hours, CB lite is unresponsive
  • #1372 Router unable to route request to do_GET_DesignDocument (ForestDB)
  • #1375 Reduce intermittently returns wrong results for 1.3.0-45
  • #1379 MultipartDocumentReader: Attachment length cannot be parsed as Integer
  • #1386 POST _replicate not create replicators when altering props beside type, target/source
  • #1394 ViewsTest.testDeleteView() test failure
  • #1399 Longpoll _changes on Listener does not respect timeout property

Where to get it

You can download this release from Couchbase.com

1.3.0

02 Aug 19:56
Compare
Choose a tag to compare

As part of this release we had 157 commits which resulted in 63 issues being closed.

This is a feature release, with a focus on performance. Noteworthy changes:

  • Support for OpenID Connect authentication, so you can log into Sync Gateway using a 3rd-party identity like a Google or Yahoo ID.
  • Timed expiration of documents can help keep your database from growing indefinitely.
  • Better performance with docs that have many revisions. Replication is faster, and older revisions are now automatically cleaned up in SQLite storage.
  • Eliminate HttpClient library, and replace with OkHttp
  • And of course many smaller optimizations, and lots of bug fixes.

Enhancements

  • #708 Apache HTTP Client Removal/Deprecated in Android M.
  • #820 Filter out _removed revision from push replication
  • #1054 Support POST /_changes in Listener
  • #1057 Cbforest master branch version fails with many unit test (1.2.0-java -> master)
  • #1097 After purging a doc, its rows are left behind in view indexes
  • #1099 Docs in SQLite dbs never get pruned until entire db is compacted
  • #1194 Fallback to GET when POST is not allowed to _changes
  • #1207 TTL support
  • #1222 Make SQLite one writer and one/multiple reader modes to avoid waiting connection.
  • #1247 Add public API to add an existing revision (AKA new_edits=false, or -forceInsert:)
  • #1255 Authenticator for OpenID Connect

Bugs

  • #310 Post on doc without data returns 404 instead of 405
  • #667 Using PipedInputStream and PipedOutputStream in URLConnection can cause deadlock (see issue 57 in couchbase-lite-java-listener)
  • #880 Query for view with map-reduce function and startkey doesn't work properly
  • #891 Fix failing tests (on Jenkins/VM)
  • #952 Views broken with concurrent update and delete
  • #1015 NPE Attempt to invoke virtual method int com.couchbase.lite.Database.findMissingRevisions on a null object reference
  • #1026 Change tracker stopping during replication exception
  • #1037 Proxy setting on Android blocks access to Listener
  • #1073 ForestDB CBL 1.2 random crash.
  • #1090 Android API 10: java.lang.UnsatisfiedLinkError: nativeOpen
  • #1091 ReplicationTest > testPusherBatching FAILED with CBL Java
  • #1095 CBL 1.2 ForestDB random crash.
  • #1098 Querying local CBLite via REST API returns all doc revisions (not just current rev)
  • #1161 CBL - 1.2.0 upgrade from 1.1.0 clears device db
  • #1176 ForestDB CBL 1.2 crash in endTransaction()
  • #1177 ForestDB CBL 1.2 crash.
  • #1193 Return 405 (Method Not Allowed) instead of 404 if Router does not support requested REST API
  • #1196 Crash in ForestDB (filemgr_is_fully_resident)
  • #1201 GrocerySync crashes with ForestDB
  • #1210 Listener ?attachments=true to return attachment in base64
  • #1211 Supports only_conflicts and include_conflicts query parameters for _all_docs REST API
  • #1222 Make SQLite one writer and one/multiple reader modes to avoid waiting connection.
  • #1227 Port: Crash when saving, conflict generated and infinite replication loop
  • #1232 ManagerTest.testClose() failed with latest master branch
  • #1235 BackFillTest.testPullReplWithRevsAndAtts() fails
  • #1236 PullReplWithRevsAndAttsTest.testPullReplWithRevsAndAtts() fails
  • #1241 Couchbase-lite-java-forestdb is not build-able on Windows
  • #1243 Push replication from Android LiteServ and sync_gateway not pushing all deleted documents
  • #1245 CBL Java/Android can not handle complex Accept: header value
  • #1249 Purge does not update view on ForestDB Mobile
  • #1263 Deleting a db takes over 1 min.
  • #1264 Querying a design document view returns deleted documents too REST API
  • #1270 Forestdb Handle is being used by another thread (Note: ForestDB error code = -39)
  • #1272 400 Missing data of attachment while pushing attachments
  • #1275 Very slow doc PUT's with lots of garbage collection.
  • #1276 ForestDB CBL crash.
  • #1285 OkHttp ConnectionPool thread leaking
  • #1289 SecureTokenStore does not work with Android M/N and there is encrypting data size limitation for API 18 - 22
  • #1297 590 Database error (Note: ForestDB error code = -39)
  • #1299 Get just attachment with header 'Accept: applicatio/json' should return {"status" : 406, "error" : "not_acceptable"}
  • #1300 Compaction doesn't work with ForestDb
  • #1301 ForestDB throws exception from native call (Note: ForestDB error code = -39)
  • #1308 Encrypted attachments fail to sync
  • #1315 Replicator shouldn't go to IDLE state if the authenticating is not done
  • #1319 Autopruning failing on pull replication
  • #1324 OIDC shouldn't clear refresh token after refreshing the token
  • #1332 Cancelling a replication does not return a response.
  • #1333 OIDC: Obtaining username with refresh-token might have issue
  • #1339 Make lower initial heartbeat value for /_changes REST API
  • #1342 Unit Test Failures on Jenkins
  • #1355 Listener does not return response for PUT /db
  • #1356 Listener does not return response for DELETE /db
  • #1367 Live Query Seems broken with ForestDB

Where to get it

You can download this release from [Couchbase.com](http://www.couchba...

Read more

1.2.1

17 May 22:41
Compare
Choose a tag to compare

As part of this release we had 232 commits which resulted in 59 issues being closed.
This is a patch release.

Performance Improvements

  • #987 URL.equals blocks on DNS lookup
  • #990 Unnecessary boxing/unboxing when parsing Long column in SQLiteViewStore
  • #992 Unnecessary synchronization due to using StringBuffer local variables
  • #994 Repeated byte array conversion of a string constant in SQLiteStore documentPropertiesFromJSON
  • #1001 Refactor out duplicate method call in ReplicationInternal.transformRevision
  • #1018 Static Analyze: Performance issues - part 1

Enhancements

  • #1008 External property on database change event
  • #1013 Static Analyze: Verbose or redundant code constructs
  • #1064 Apply pause logic to queued changes in beginReplicating()
  • #1074 Enhance logging information of replicator thread

Bugs

  • #976 Pull replication not working when device goes offline and back online
  • #985 Missing 'throw' keywords when attempting to re-throw an exception
  • #1009 Static Analyze: XML issues
  • #1020 Static Analyze: Imports issues
  • #1022 Static Analyze: Performance - static method
  • #1024 Static Analyze: Remove Unused java class
  • #1028 Improve logging for local check point conflicted error
  • #1030 Requests to Listener in pending state
  • #1033 Requests pending with POST _bulk_docs
  • #1036 DELETE /db causing the Listener to hang
  • #1041 Custom property with the name 'type' results in an exception
  • #1043 Listener exception in remote database of a replication
  • #1047 Push replication skipped 20 documents
  • #1050 Implement non-problematic flow control logic for push replicator
  • #1052 Connection in Router.change(ChangeEvent) is critical section
  • #1061 NullPointerException in Implementation of Validator
  • #1068 Pull replication skipped documents
  • #1069 Deleting database and stopping replications at the same time
  • #1076 Batcher inbox.size() == 0 is not good enough to check if Batcher is empty.
  • #1082 Impossible to get non-reduced view from CBL Listener
  • #1092 Push replicator might skip some documents under unstable network connectivity
  • #1093 Listener does not accept new connection
  • #1104 Push replicator stops unexpectedly with CBL Listener
  • #1106 DuplicatedChangeTrackers
  • #1108 Too many open files error on push replication
  • #1110 PUT with Content-Type other than application/json succeeds
  • #1112 Multiple ChangeTrackers are started (Scenario 2)
  • #1114 Thread stuck in RemoteRequestRetry.get
  • #1116 Multiple ChangeTrackers are started (Scenario 3)
  • #1122 Pull and Push replicator stops during replication
  • #1124 Test: Unit Test failure on jenkins
  • #1129 [Scenario 1] Pusher missing docs: Potential race condition when calling PusherInternal.removePending()
  • #1130 Current implementation of shouldRetryDownload() could cause missing document without restart replicator
  • #1131 UnitTest, ReplicatoinTest.testStartReplicationClosedDb(), fails with recent commit.
  • #1135 [Scenario 2] Pusher missing docs: Last sequence jump during replication retry
  • #1136 Push Replicator causes dead-lock in case of setting RemoteRequestExecutor thread-pool size 1
  • #1141 Thread-waitForPendingFutures is leaking
  • #1143 Sequence number is not set in RevisionInternal when Changes are pull replicated
  • #1147 [Scenario 4] Missing changes in Database Change Notification
  • #1149 Push replicator keeps postponing the retry with error if Database.changed() events are fired continuously.
  • #1151 Pull replicator keeps postponing the retry with error if ChangeTracker receives changes continuously.
  • #1153 Listener returns incorrect version string for dev builds
  • #1154 Should not call parentReplication.isPull() from ReplicatonInternal
  • #1157 Replication.stop() sometimes fails to stop pull replication
  • #1158 ReplicationInternal.stop() never executed.
  • #1163 Replicator sends duplicated Replicator state.
  • #1173 Zip file contains duplicated jar and aar files
  • #1174 Document's changeListeners list should be thread safe
  • #1180 Router: PUT /{db}/{doc} If-Match header is not supported

Where to get it

You can download this release from Couchbase.com

1.2.0

04 Feb 06:55
Compare
Choose a tag to compare

As part of this release we had 207 commits which resulted in 109 issues being closed.

Performance Improvements

  • #704 ForestDB storage Performance improvement
  • #749 Slow when creating a BlobStore with a secure random generated key
  • #801 Replace JNI-based JSON collation with ICUC

Enhancements

  • #321 Test CBForest storage engine
  • #417 Add API to tell which documents haven't been pushed to the server
  • #435 One shot replicator sends STOPPING state immediately after started replication
  • #535 The replicator's setDocIds method doesn't filter the documents to push
  • #573 Port Replication.stop() method from iOS
  • #576 Changetracker does not automatically login again after expired session
  • #628 Catch up latest (v1.1) SQLite table schema and SQL queries
  • #644 Implement pluggable storage engine
  • #663 Make available on JCenter
  • #681 Catch up latest (v1.1) View.updateIndex() implementation
  • #682 Add "_conflicts" property to doc in map function when doc is in conflict
  • #683 [Request] Make Attachment.getContentURL() api public for android.
  • #688 Expose CBLView.totalRows to public
  • #691 Add BySequence to AllDocsOptions
  • #695 Add replicator support for remote dbs with varying URLs
  • #697 Complete CBForest-Java Implmentation and Test
  • #702 Add support for SQLCipher
  • #703 Implement ForestDB Storage Engine
  • #704 ForestDB storage Performance improvement
  • #710 Encrypt file attachments
  • #719 Support SQLite encryption rekey feature
  • #720 Support attachment encryption rekey
  • #722 Migrating SQLite db to ForestDB
  • #733 Enhance forestdb storage performance
  • #736 Add retry queue for failed revisions in a bulk get
  • #760 Sync iOS key derivation and encryption algorithm with iOS
  • #763 Enable HTTP compression for _changes feed requests (non-continuous)
  • #801 Replace JNI-based JSON collation with ICUC
  • #804 Add official openDatabase API for encryption/storage options
  • #811 Support encryption in ForestDB storage engine
  • #812 Support unicode comparison with ICU for java
  • #813 Support unicode comparison with ICU for AndroidSQLCipherStorageEngine
  • #816 REST API /_changes with include_docs=true option does not handle the conflicted document
  • #819 Support multiple sqlite configurations
  • #827 Support encryption in ForestDBStore
  • #894 Replication.docIds API discrepency
  • #939 Optimize first-time sync

Bugs

  • #301 [Memory] compacting large database memory leak
  • #643 Add conflict check in PullerInternal.processChangeTrackerChange()
  • #652 Refactor Batcher class (Port latest codes from iOS)
  • #655 Unique constraint violation in sqlite
  • #661 BasicAuth with empty password causes ArrayIndexOutOfBoundsException
  • #664 Creating authenticator with empty password throws ArrayIndexOutOfBoundsException
  • #670 LiteServ crashed with Fatal signal 11 (SIGSEGV) when run cbl-large-revisions localy
  • #677 Pulling attachments fail if document got a deleted revision in history
  • #689 CBL Java build (unit test) failure on Jenkins
  • #696 Support for CBLReplication.pendingDocumentIds
  • #699 Inserting multiple attachments fails when push replication is active.
  • #700 Build failure with CBL Java on jenkins
  • #706 ClassCastException if a view uses an array as value
  • #707 PullerInternal processInbox Issue
  • #709 View update skips winning revisions
  • #712 ReplicationTest.testAllLeafRevisionsArePushed() unit test failure with forestdb strage engine
  • #713 BatcherTest.testBatcherWaitsForProcessorDelay2() fails
  • #717 TestContinuousPushReplicationGoesIdleTooSoon causes native crash if unit test run from command line on OSX
  • #718 Android-database-sqlcipher doesn't provide 64 bit binary
  • #723 401 status from server not being propagated to CBLReplication.lastError
  • #724 Android build on Jenkins fails
  • #728 Replicator should not stop by missing revisions
  • #729 ApiTest:testViewWithLinkedDocs hangs when running unit tests with couchbase-lite-java
  • #731 ForestDB storage cause native crush during push replication performance test with 200 docs
  • #735 ApiTest.testConflict() test failure
  • #748 Java doesn't support generating 256 bits key
  • #749 Slow when creating a BlobStore with a secure random generated key
  • #750 ReplicationTest.testPusherBatching() causes native crash with forestdb storage on ARM emulator API 19 (4.4.4)
  • #765 ApiTest.testDatabaseCompaction passed with ForestDB Errors
  • #771 BloblStoreTest failed on Windows
  • #780 Closing database doesn't clear document cache
  • #791 Invalid MIME body after starting pull replication
  • #809 Jenkins: testMockPullBulkDocsSyncGw fails on Jenkins
  • [#816](...
Read more

1.1.0

02 Feb 02:36
Compare
Choose a tag to compare

Couchbase Lite Android/Java v1.1.0 is major release since v1.0.0 released about a year ago. It has several enhancements including:

  1. Has significant performance improvement in replication and view indexing.
  2. Has significant memory usage reduction in processing many documents.
  3. Contain several bug fixes and enhancements.

As part of this release we had 730 combined commits which resulted in 40 combined issues being closed. This includes totals across couchbase-lite-java, couchbase-lite-android, couchbase-lite-java-core, and couchbase-lite-java-native.

Performance

  • #400 Querying without updating the view
  • #376 Pull replication slow

Enhancements

  • #590 Add in replication optimization from iOS version
  • #360 REST API need a way to setCookie
  • #343 Control EXECUTOR_THREAD_POOL_SIZE
  • #328 Excessive checkpointing during push replication
  • #81 HttpMime library source code integration in couchbase breaks existing code

Bugs

  • #654 "Window is Full" during View.updateIndex()
  • #636 Exel: Push replication "losing" documents created when disconnected
  • #635 Jackson deserialization exception
  • #614 Push a small doc with an attachment failed
  • #600 Push replication to rcouch fails on rev with attachments
  • #596 Handle SQL 'attach' table incompatibility in CBL 1.1
  • #587 Starting an AsyncTask right after Document.putProperties(), does not call the doInBackround() method?
  • #585 toLiveQuery() forgets PrefixMatchLevel
  • #583 getAllDocumentsQuery() ignores PrefixMatchLevel
  • #575 restart of a replication shouldn't hang if the replication is already stopped.
  • #563 Updating a document in a transaction block twice using Document.DocumentUpdater results in an infinite loop
  • #560 Using deleteIndex() on an unregistered View makes the View unusable
  • #497 Crash while building/rebuiding View
  • #472 Potenial race condition in Document.update
  • #452 Error after close DB client
  • #427 P2P - SQLiteReadOnlyDatabaseException error
  • #413 NullPointerException in query with setGroupLevel() without reduce function and no data
  • #397 PushReplicator tries to push new document even though replicator is offline
  • #383 Pull replication not going back into IDLE state
  • #371 Android,replication algorithm 1.0.3 stalls before replicating all documents
  • #361 RemoteRequestCompletionBlock java.util.ConcurrentModificationException
  • #356 Replication restart problem
  • #353 Don't persist cookie without max-age or expires property
  • #352 Get session and checkpoint when retrying replications
  • #342 Changes performed offline don't sync when going online.
  • #296 NPE thrown when running ApiTest.testLiveQueryRun
  • #285 Null pointer exception because of failing to rebuild view
  • #61 Make / db names work in windows

Where to get it

You can download this release by downloading Couchbase Lite for Android or Couchbase Lite for Java from Couchbase.com

Or you can install Couchbase Lite from Couchbase hosted maven repository. Please refer Adding Couchbase Lite to your Gradle project.

System Requirements

  • Android 2.3 Gingerbread (API level 9) and above.

Support Statement

Couchbase Lite Java Core is not supported standalone. Support is only provided indirectly, via its inclusion into Couchbase Lite for Android and Couchbase Lite for Java.