Opush
  1. Opush
  2. OP-123

T#10917 handle invalid ServerId in incoming requests

    Details

    • Type: Bug Bug
    • Status: Closed Closed
    • Priority: Normal Normal
    • Resolution: Fixed
    • Affects Version/s: 3.0.2
    • Fix Version/s: 3.0.4
    • Labels:
      None
    • Rank:
      6520

      Description

      Sometimes, incoming Sync requests come with some bad ServerId like :

      • 0
      • an arbitrary string
      • a ServerId that doesn't belong to the Sync CollectionId

      We should ignore entries if needed or return an appropriate answer.

        Issue Links

          Activity

          Matthieu EXT_BAECHLER made changes -
          Field Original Value New Value
          Status Open [ 1 ] In Progress [ 3 ]
          Matthieu EXT_BAECHLER made changes -
          Project OBM [ 10022 ] Opush [ 10550 ]
          Key OBMFULL-6177 OP-123
          Affects Version/s 3.0.2 [ 12410 ]
          Affects Version/s 3.0.1 [ 12307 ]
          Component/s opush [ 10056 ]
          Matthieu EXT_BAECHLER made changes -
          Fix Version/s 3.0.3 [ 12501 ]
          Stephane COLSON made changes -
          Fix Version/s 3.0.4 [ 12502 ]
          Fix Version/s 3.0.3 [ 12501 ]
          Matthieu EXT_BAECHLER made changes -
          Status In Progress [ 3 ] In Review [ 10001 ]
          Hide
          Matthieu EXT_BAECHLER added a comment -

          It changes details of Sync command handling.
          It means that it can break Sync on some devices : we must test synchronization with various phones with addition/modification/deletion.

          Show
          Matthieu EXT_BAECHLER added a comment - It changes details of Sync command handling. It means that it can break Sync on some devices : we must test synchronization with various phones with addition/modification/deletion.
          Matthieu EXT_BAECHLER made changes -
          Status In Review [ 10001 ] Ready To Merge [ 10002 ]
          Resolution Fixed [ 1 ]
          Matthieu EXT_BAECHLER made changes -
          Link This issue is cloned by OP-138 [ OP-138 ]
          Hide
          Thomas HILAIRE added a comment -

          Reopened no one command run successfully with an ipad :

          3:20:30.510 [ERROR] {o.o.p.h.SyncHandler$$EnhancerByGuice$$1fddff6b} [t337/cSync/r93/admin@c.lyon.lan] The type of the collection found:{EMAIL} is not the same than received in DataClass:{null}
          org.obm.push.exception.activesync.ServerErrorException: The type of the collection found:{EMAIL} is not the same than received in DataClass:{null}
                  at org.obm.push.protocol.data.SyncAnalyser.checkCollectionType(SyncAnalyser.java:180) ~[push-core-3.0.4-SNAPSHOT.jar:na]
                  at org.obm.push.protocol.data.SyncAnalyser.getCollection(SyncAnalyser.java:117) ~[push-core-3.0.4-SNAPSHOT.jar:na]
                  at org.obm.push.protocol.data.SyncAnalyser.analyseSync(SyncAnalyser.java:94) ~[push-core-3.0.4-SNAPSHOT.jar:na]
                  at org.obm.push.handler.SyncHandler.analyzeRequest(SyncHandler.java:220) ~[push-core-3.0.4-SNAPSHOT.jar:na]
                  at org.obm.push.handler.SyncHandler.process(SyncHandler.java:163) ~[push-core-3.0.4-SNAPSHOT.jar:na]
          
          Show
          Thomas HILAIRE added a comment - Reopened no one command run successfully with an ipad : 3:20:30.510 [ERROR] {o.o.p.h.SyncHandler$$EnhancerByGuice$$1fddff6b} [t337/cSync/r93/admin@c.lyon.lan] The type of the collection found:{EMAIL} is not the same than received in DataClass:{ null } org.obm.push.exception.activesync.ServerErrorException: The type of the collection found:{EMAIL} is not the same than received in DataClass:{ null } at org.obm.push.protocol.data.SyncAnalyser.checkCollectionType(SyncAnalyser.java:180) ~[push-core-3.0.4-SNAPSHOT.jar:na] at org.obm.push.protocol.data.SyncAnalyser.getCollection(SyncAnalyser.java:117) ~[push-core-3.0.4-SNAPSHOT.jar:na] at org.obm.push.protocol.data.SyncAnalyser.analyseSync(SyncAnalyser.java:94) ~[push-core-3.0.4-SNAPSHOT.jar:na] at org.obm.push.handler.SyncHandler.analyzeRequest(SyncHandler.java:220) ~[push-core-3.0.4-SNAPSHOT.jar:na] at org.obm.push.handler.SyncHandler.process(SyncHandler.java:163) ~[push-core-3.0.4-SNAPSHOT.jar:na]
          Thomas HILAIRE made changes -
          Status Ready To Merge [ 10002 ] Reopened [ 4 ]
          Matthieu EXT_BAECHLER made changes -
          Resolution Fixed [ 1 ]
          Status Reopened [ 4 ] In Progress [ 3 ]
          Matthieu EXT_BAECHLER made changes -
          Status In Progress [ 3 ] In Review [ 10001 ]
          Matthieu EXT_BAECHLER made changes -
          Status In Review [ 10001 ] Ready To Merge [ 10002 ]
          Resolution Fixed [ 1 ]
          Hide
          Jenkins Continuous Integration Server added a comment -

          SUCCESS: Integrated in opush-master-3.0 #16
          OP-123 refactor Sync client API to use a builder pattern (matthieu.baechler: c8a2fcf9bddf4bf67e0045ca8b3d1897efa00ad2)

          • integration-testing/opush/src/test/java/org/obm/opush/command/sync/SyncHandlerWithBackendTest.java
          • integration-testing/opush/src/test/java/org/obm/opush/MailBackendGetChangedTest.java
          • client/src/main/java/org/obm/sync/push/client/commands/SyncWithCommand.java
          • client/src/main/java/org/obm/sync/push/client/OPClient.java
          • integration-testing/opush/src/test/java/org/obm/opush/command/sync/SyncHandlerOnCalendarsTest.java
          • integration-testing/opush/src/test/java/org/obm/opush/command/sync/SyncHandlerTest.java
          • integration-testing/opush/src/test/java/org/obm/opush/command/sync/SyncHandlerOnContactsTest.java
          • client/src/main/java/org/obm/sync/push/client/commands/SyncWithDataCommand.java
            OP-123 remove code duplication (matthieu.baechler: da86558c6511e9bbef57a7b5f0ee8f16b992dd15)
          • client/src/main/java/org/obm/sync/push/client/commands/Sync.java
            OP-123 merge SyncWithCommand into Sync object (matthieu.baechler: d6fbcc0a7658dbaaa258ba9633e9884dcb35cd5d)
          • integration-testing/opush/src/test/java/org/obm/opush/command/sync/SyncHandlerOnContactsTest.java
          • integration-testing/opush/src/test/java/org/obm/opush/command/sync/SyncHandlerOnCalendarsTest.java
          • client/src/main/java/org/obm/sync/push/client/commands/Sync.java
          • client/src/main/java/org/obm/sync/push/client/commands/SyncWithCommand.java
          • integration-testing/opush/src/test/java/org/obm/opush/MailBackendGetChangedTest.java
          • integration-testing/opush/src/test/java/org/obm/opush/command/sync/SyncHandlerWithBackendTest.java
          • integration-testing/opush/src/test/java/org/obm/opush/command/sync/SyncHandlerTest.java
            OP-123 convert another OPClient.sync invocation into a Sync.Builder one (matthieu.baechler: 636bb930cb4ba26d003a70e778af5ff1ba03d128)
          • integration-testing/opush/src/test/java/org/obm/opush/command/sync/SyncHandlerWithBackendTest.java
          • client/src/main/java/org/obm/sync/push/client/OPClient.java
          • integration-testing/opush/src/test/java/org/obm/opush/command/sync/SyncHandlerOnCalendarsTest.java
          • client/src/main/java/org/obm/sync/push/client/commands/Sync.java
          • integration-testing/opush/src/test/java/org/obm/opush/command/sync/SyncHandlerOnContactsTest.java
            OP-123 remove use of xml template to have a more flexible Sync command (matthieu.baechler: 2d0d0bdcf6218854a4307b262be8c5076f59f668)
          • client/src/main/resources/data/SyncRequest.xml
          • client/src/main/java/org/obm/sync/push/client/commands/Sync.java
            OP-123 make use of opush protocol object SyncCollection (matthieu.baechler: d8dbf83d44d292d7f574c27bf6a23af2397640e7)
          • client/src/main/java/org/obm/sync/push/client/commands/Sync.java
            OP-123 make use of opush protocol object SyncCollection (step two) (matthieu.baechler: cf9b35e211de625675cd51abdf89b94e8bd2dd26)
          • integration-testing/opush/src/test/java/org/obm/opush/command/sync/SyncHandlerWithBackendTest.java
          • integration-testing/opush/src/test/java/org/obm/opush/command/sync/SyncHandlerOnContactsTest.java
          • integration-testing/opush/src/test/java/org/obm/opush/command/sync/SyncHandlerTest.java
          • client/src/main/java/org/obm/sync/push/client/commands/Sync.java
          • integration-testing/opush/src/test/java/org/obm/opush/command/sync/SyncHandlerOnCalendarsTest.java
          • integration-testing/opush/src/test/java/org/obm/opush/MailBackendGetChangedTest.java
            OP-123 remove SyncCollectionCommandDto (matthieu.baechler: 0e3f4e5bfd2fd729518f45871c772e79652df6fb)
          • protocol/src/main/java/org/obm/push/protocol/data/ContactEncoder.java
          • protocol/src/test/java/org/obm/push/protocol/bean/SyncCollectionTest.java
          • client/src/main/resources/data/EmailSyncRequest.xml
          • protocol/src/test/java/org/obm/push/BeansTest.java
          • integration-testing/opush/src/test/java/org/obm/opush/command/sync/SyncHandlerOnCalendarsTest.java
          • push-core/src/main/java/org/obm/push/protocol/data/SyncAnalyser.java
          • protocol/src/test/java/org/obm/push/protocol/data/SyncDecoderTest.java
          • protocol/src/main/java/org/obm/push/protocol/data/SyncEncoder.java
          • protocol/src/test/java/org/obm/push/protocol/SyncProtocolTest.java
          • push-core/src/test/java/org/obm/push/protocol/data/SyncAnalyserTest.java
          • integration-testing/opush/src/test/java/org/obm/opush/command/sync/SyncHandlerWithBackendTest.java
          • client/src/main/resources/data/EmailSyncRequestWithWait.xml
          • integration-testing/opush/src/test/java/org/obm/opush/MailBackendGetChangedTest.java
          • protocol/src/main/java/org/obm/push/protocol/SyncProtocol.java
          • client/src/main/java/org/obm/sync/push/client/commands/EmailSyncCommand.java
          • protocol/src/main/java/org/obm/push/protocol/data/SyncDecoder.java
          • protocol/src/main/java/org/obm/push/protocol/bean/SyncCollectionCommandDto.java
          • protocol/src/main/java/org/obm/push/protocol/data/ContactDecoder.java
          • integration-testing/opush/src/test/java/org/obm/opush/command/sync/SyncHandlerTest.java
          • client/src/main/resources/data/SyncWithCommandRequest.xml
          • push-bean/src/main/java/org/obm/push/bean/SyncCollectionCommands.java
          • integration-testing/opush/src/test/java/org/obm/opush/command/sync/SyncHandlerOnContactsTest.java
          • client/src/main/java/org/obm/sync/push/client/commands/Sync.java
          • client/src/main/resources/data/EmailDeleteSyncRequest.xml
          • client/src/main/java/org/obm/sync/push/client/commands/EmailSyncNoOptionsCommand.java
          • client/src/main/java/org/obm/sync/push/client/commands/EmailDeleteSyncRequest.java
          • protocol/src/main/java/org/obm/push/protocol/bean/SyncCollection.java
            OP-123 finally make Sync multi command and drop template based sync (matthieu.baechler: 410cc6cfe078f5d4ccc2005784728877391dbea4)
          • client/src/main/java/org/obm/sync/push/client/commands/Sync.java
          • protocol/src/test/java/org/obm/push/protocol/bean/SyncCollectionTest.java
          • integration-testing/opush/src/test/java/org/obm/opush/command/sync/SyncHandlerOnCalendarsTest.java
          • protocol/src/main/java/org/obm/push/protocol/bean/SyncCollection.java
          • integration-testing/opush/src/test/java/org/obm/opush/MailBackendGetChangedTest.java
          • integration-testing/opush/src/test/java/org/obm/opush/command/sync/SyncHandlerOnContactsTest.java
          • integration-testing/opush/src/test/java/org/obm/opush/command/sync/SyncHandlerWithBackendTest.java
          • integration-testing/opush/src/test/java/org/obm/opush/command/sync/SyncHandlerTest.java
          • protocol/src/test/java/org/obm/push/protocol/SyncProtocolTest.java
            OP-123 make various integrity checks on commands ServerId (matthieu.baechler: df3ff9b741ff7aa42c8ff503accd68db79fdaec2)
          • push-bean/src/main/java/org/obm/push/bean/ServerId.java
          • push-core/src/main/java/org/obm/push/protocol/data/SyncAnalyser.java
          • integration-testing/opush/src/test/java/org/obm/opush/command/sync/SyncHandlerTest.java
            OP-123 make empty string check on commands ServerId (matthieu.baechler: e8e0b45dd8eb301ec582930d750125a95a521675)
          • push-core/src/main/java/org/obm/push/protocol/data/SyncAnalyser.java
          • push-bean/src/main/java/org/obm/push/bean/change/SyncCommand.java
          • integration-testing/opush/src/test/java/org/obm/opush/command/sync/SyncHandlerTest.java
          • client/src/main/java/org/obm/sync/push/client/commands/Sync.java
            OP-123 remove inheritance with SyncCollectionCommands, use delegation (matthieu.baechler: c9ca7f5d7d76ec52559ff3c8e4f9f57273b593e3)
          • push-dao-cassandra/src/main/java/org/obm/push/json/JSONService.java
          • push-bean/src/test/java/org/obm/push/bean/SyncCollectionCommandsIndexTest.java
          • push-bean/src/main/java/org/obm/push/bean/SyncCollectionCommandsIndex.java
          • push-bean/src/main/java/org/obm/push/bean/SyncCollectionCommands.java
          • push-dao-cassandra/src/main/java/org/obm/push/json/mixin/SyncCollectionCommandsResponseMixIn.java
          • push-bean/src/main/java/org/obm/push/bean/SyncCollectionCommandsResponse.java
          • push-bean/src/test/java/org/obm/push/bean/SyncCollectionCommandsTest.java
          • push-bean/src/main/java/org/obm/push/bean/SyncCollectionResponsesResponse.java
          • push-bean/src/test/java/org/obm/push/bean/BeansTest.java
            OP-123 remove AbstractSyncCollection (matthieu.baechler: 61aa17d1da2064f5f3cde20a86a5edb69bee0388)
          • push-bean/src/main/java/org/obm/push/bean/AnalysedSyncCollection.java
          • push-dao-cassandra/src/main/java/org/obm/push/json/mixin/AbstractSyncCollectionMixIn.java
          • push-core/src/main/java/org/obm/push/SummaryLoggerService.java
          • push-bean/src/main/java/org/obm/push/bean/SyncCollectionCommandsResponse.java
          • protocol/src/main/java/org/obm/push/protocol/SyncProtocol.java
          • push-bean/src/main/java/org/obm/push/bean/SyncCollectionResponse.java
          • push-dao-cassandra/src/main/java/org/obm/push/json/mixin/SyncCollectionCommandsResponseMixIn.java
          • push-core/src/test/java/org/obm/push/protocol/data/SyncAnalyserTest.java
          • push-bean/src/test/java/org/obm/push/bean/AbstractSyncCollectionTest.java
          • protocol/src/main/java/org/obm/push/protocol/bean/SyncCollection.java
          • push-dao-cassandra/src/main/java/org/obm/push/json/mixin/AnalysedSyncCollectionMixIn.java
          • push-dao-cassandra/src/main/java/org/obm/push/json/JSONService.java
          • protocol/src/main/java/org/obm/push/protocol/PingProtocol.java
          • protocol/src/main/java/org/obm/push/protocol/data/SyncEncoder.java
          • protocol/src/test/java/org/obm/push/protocol/bean/SyncCollectionTest.java
          • client/src/main/java/org/obm/sync/push/client/commands/Sync.java
          • push-bean/src/main/java/org/obm/push/bean/SyncCollectionCommandsIndex.java
          • protocol/src/test/java/org/obm/push/protocol/GetItemEstimateProtocolTest.java
          • push-bean/src/main/java/org/obm/push/bean/PIMDataType.java
          • push-core/src/main/java/org/obm/push/handler/PingHandler.java
          • push-bean/src/main/java/org/obm/push/bean/AbstractSyncCollection.java
          • protocol/src/main/java/org/obm/push/protocol/GetItemEstimateProtocol.java
          • protocol/src/test/java/org/obm/push/protocol/data/SyncDecoderTest.java
            OP-123 AnalysedSyncCollection contains a SyncCollectionCommandsRequest instead of a ...Response (matthieu.baechler: e709cda2843032b6f5aca3552f5f5c0d00f1c477)
          • push-dao-cassandra/src/main/java/org/obm/push/json/mixin/SyncCollectionCommandsRequestMixIn.java
          • push-bean/src/main/java/org/obm/push/bean/SyncCollectionCommandsResponse.java
          • push-core/src/main/java/org/obm/push/protocol/data/SyncAnalyser.java
          • push-core/src/test/java/org/obm/push/protocol/data/SyncAnalyserTest.java
          • push-core/src/test/java/org/obm/push/handler/SyncHandlerTest.java
          • push-bean/src/main/java/org/obm/push/bean/AnalysedSyncCollection.java
          • push-bean/src/main/java/org/obm/push/bean/SyncCollectionCommandsRequest.java
          • push-dao-cassandra/src/main/java/org/obm/push/json/JSONService.java
          • push-core/src/test/java/org/obm/push/SummaryLoggerServiceTest.java
          • push-bean/src/test/java/org/obm/push/bean/AnalysedSyncCollectionTest.java
          • push-dao-cassandra/src/test/java/org/obm/push/json/JSONServiceTest.java
          • push-core/src/main/java/org/obm/push/handler/SyncHandler.java
            OP-123 duplicate SyncCollectionCommand into SyncCollectionCommandRequest and SyncCollectionCommandResponse (matthieu.baechler: 04ea90eace70a120876f33a69531a90b69ad572e)
          • push-core/src/test/java/org/obm/push/handler/SyncHandlerTest.java
          • protocol/src/test/java/org/obm/push/protocol/data/SyncDecoderTest.java
          • protocol/src/test/java/org/obm/push/protocol/SyncProtocolTest.java
          • push-bean/src/main/java/org/obm/push/bean/SyncCollectionCommandRequest.java
          • protocol/src/main/java/org/obm/push/protocol/bean/SyncCollection.java
          • integration-testing/opush/src/test/java/org/obm/opush/command/sync/SyncHandlerWithBackendTest.java
          • push-dao-cassandra/src/main/java/org/obm/push/json/JSONService.java
          • integration-testing/opush/src/test/java/org/obm/opush/command/sync/SyncHandlerTest.java
          • push-bean/src/test/java/org/obm/push/bean/SyncCollectionCommandsIndexTest.java
          • push-bean/src/test/java/org/obm/push/bean/BeansTest.java
          • push-bean/src/test/java/org/obm/push/bean/AnalysedSyncCollectionTest.java
          • push-core/src/main/java/org/obm/push/handler/ItemOperationsHandler.java
          • integration-testing/opush/src/test/java/org/obm/opush/MailBackendGetChangedTest.java
          • push-core/src/test/java/org/obm/push/SummaryLoggerServiceTest.java
          • push-bean/src/main/java/org/obm/push/bean/SyncCollectionCommandsResponse.java
          • push-dao-cassandra/src/main/java/org/obm/push/json/mixin/TypedCommandsMixIn.java
          • push-bean/src/main/java/org/obm/push/bean/SyncCollectionCommandsRequest.java
          • push-bean/src/main/java/org/obm/push/bean/SyncCollectionCommandsIndex.java
          • push-bean/src/test/java/org/obm/push/bean/TypedCommandsIndexTest.java
          • push-bean/src/main/java/org/obm/push/bean/SyncCollectionCommandResponse.java
          • push-core/src/main/java/org/obm/push/handler/SyncHandler.java
          • integration-testing/opush/src/test/java/org/obm/opush/command/sync/SyncHandlerOnContactsTest.java
          • push-core/src/main/java/org/obm/push/protocol/data/SyncAnalyser.java
          • push-core/src/main/java/org/obm/push/state/StateMachine.java
          • protocol/src/main/java/org/obm/push/protocol/SyncProtocol.java
          • push-bean/src/main/java/org/obm/push/bean/TypedCommandsIndex.java
          • push-bean/src/main/java/org/obm/push/bean/SyncCollectionResponsesResponse.java
          • push-bean/src/main/java/org/obm/push/bean/SyncCollectionCommand.java
          • push-bean/src/main/java/org/obm/push/bean/SyncCollectionResponse.java
          • push-dao-cassandra/src/main/java/org/obm/push/json/mixin/SyncCollectionCommandResponseMixIn.java
          • push-dao-cassandra/src/main/java/org/obm/push/json/mixin/SyncCollectionCommandsResponseMixIn.java
          • push-dao-cassandra/src/test/java/org/obm/push/json/JSONServiceTest.java
          • push-dao-cassandra/src/main/java/org/obm/push/json/mixin/SyncCollectionCommandsRequestMixIn.java
          • push-dao-cassandra/src/main/java/org/obm/push/json/mixin/SyncCollectionCommandMixIn.java
          • client/src/main/java/org/obm/sync/push/client/commands/Sync.java
          • protocol/src/main/java/org/obm/push/protocol/data/SyncDecoder.java
          • push-dao-cassandra/src/main/java/org/obm/push/json/mixin/SyncCollectionCommandRequestMixIn.java
          • protocol/src/test/java/org/obm/push/protocol/bean/SyncCollectionTest.java
          • push-dao-cassandra/src/test/java/org/obm/push/json/JSONServiceCompatibilityTest.java
          • integration-testing/opush/src/test/java/org/obm/opush/command/sync/SyncHandlerOnCalendarsTest.java
          • push-dao-cassandra/src/main/java/org/obm/push/json/mixin/SyncCollectionCommandsMixIn.java
          • push-bean/src/main/java/org/obm/push/bean/AnalysedSyncCollection.java
          • push-bean/src/main/java/org/obm/push/bean/TypedCommand.java
          • push-core/src/test/java/org/obm/push/state/StateMachineTest.java
          • push-bean/src/main/java/org/obm/push/bean/SyncCollectionCommands.java
          • protocol/src/main/java/org/obm/push/protocol/data/SyncEncoder.java
            OP-123 remove SyncCollectionCommandsRequest object (matthieu.baechler: 00bd171ac820fbc3055f78327baf499192a88ae0)
          • push-core/src/test/java/org/obm/push/SummaryLoggerServiceTest.java
          • push-bean/src/test/java/org/obm/push/bean/AnalysedSyncCollectionTest.java
          • push-dao-cassandra/src/main/java/org/obm/push/json/mixin/SyncCollectionCommandsRequestMixIn.java
          • push-core/src/test/java/org/obm/push/handler/SyncHandlerTest.java
          • push-core/src/main/java/org/obm/push/protocol/data/SyncAnalyser.java
          • push-core/src/main/java/org/obm/push/SummaryLoggerService.java
          • push-bean/src/main/java/org/obm/push/bean/TypedCommandsIndex.java
          • push-dao-cassandra/src/test/java/org/obm/push/json/JSONServiceTest.java
          • push-bean/src/test/java/org/obm/push/bean/BeansTest.java
          • push-core/src/test/java/org/obm/push/protocol/data/SyncAnalyserTest.java
          • push-bean/src/main/java/org/obm/push/bean/AnalysedSyncCollection.java
          • push-core/src/main/java/org/obm/push/handler/SyncHandler.java
          • push-bean/src/main/java/org/obm/push/bean/SyncCollectionCommandsRequest.java
          • push-dao-cassandra/src/main/java/org/obm/push/json/JSONService.java
            OP-123 add EncodedApplicationData to postpone data decoding after collection type resolution (matthieu.baechler: 065c547141645d947c1c6ee3e562922ca1ce9486)
          • push-core/src/main/java/org/obm/push/protocol/data/SyncAnalyser.java
          • protocol/src/main/java/org/obm/push/protocol/SyncProtocol.java
          • integration-testing/opush/src/test/java/org/obm/opush/command/sync/SyncHandlerTest.java
          • protocol/src/main/java/org/obm/push/protocol/data/SyncEncoder.java
          • push-bean/src/main/java/org/obm/push/bean/EncodedApplicationData.java
          • protocol/src/test/java/org/obm/push/protocol/SyncProtocolTest.java
          • protocol/src/main/java/org/obm/push/protocol/bean/SyncRequest.java
          • protocol/src/main/java/org/obm/push/protocol/AsymetricActiveSyncProtocol.java
          • push-bean/src/main/java/org/obm/push/bean/EncodedSyncCollectionCommandRequest.java
          • protocol/src/test/java/org/obm/push/protocol/data/SyncDecoderTest.java
          • protocol/src/test/java/org/obm/push/protocol/bean/SyncCollectionTest.java
          • integration-testing/opush/src/test/java/org/obm/opush/command/sync/SyncHandlerOnContactsTest.java
          • protocol/src/main/java/org/obm/push/protocol/data/SyncDecoder.java
          • client/src/main/java/org/obm/sync/push/client/commands/Sync.java
          • integration-testing/opush/src/test/java/org/obm/opush/command/sync/SyncHandlerWithBackendTest.java
          • protocol/src/main/java/org/obm/push/protocol/data/ContactEncoder.java
          • push-dao-cassandra/src/main/java/org/obm/push/json/mixin/AnalysedSyncCollectionMixIn.java
          • integration-testing/opush/src/test/java/org/obm/opush/MailBackendGetChangedTest.java
          • protocol/src/main/java/org/obm/push/protocol/bean/ClientSyncRequest.java
          • protocol/src/main/java/org/obm/push/protocol/bean/SyncCollection.java
          • push-dao-cassandra/src/test/java/org/obm/push/json/JSONServiceTest.java
          • integration-testing/opush/src/test/java/org/obm/opush/command/sync/SyncHandlerOnCalendarsTest.java
          • protocol/src/main/java/org/obm/push/protocol/ActiveSyncProtocol.java
          • push-bean/src/main/java/org/obm/push/bean/SyncCollectionCommandRequest.java
          Show
          Jenkins Continuous Integration Server added a comment - SUCCESS: Integrated in opush-master-3.0 #16 OP-123 refactor Sync client API to use a builder pattern (matthieu.baechler: c8a2fcf9bddf4bf67e0045ca8b3d1897efa00ad2 ) integration-testing/opush/src/test/java/org/obm/opush/command/sync/SyncHandlerWithBackendTest.java integration-testing/opush/src/test/java/org/obm/opush/MailBackendGetChangedTest.java client/src/main/java/org/obm/sync/push/client/commands/SyncWithCommand.java client/src/main/java/org/obm/sync/push/client/OPClient.java integration-testing/opush/src/test/java/org/obm/opush/command/sync/SyncHandlerOnCalendarsTest.java integration-testing/opush/src/test/java/org/obm/opush/command/sync/SyncHandlerTest.java integration-testing/opush/src/test/java/org/obm/opush/command/sync/SyncHandlerOnContactsTest.java client/src/main/java/org/obm/sync/push/client/commands/SyncWithDataCommand.java OP-123 remove code duplication (matthieu.baechler: da86558c6511e9bbef57a7b5f0ee8f16b992dd15 ) client/src/main/java/org/obm/sync/push/client/commands/Sync.java OP-123 merge SyncWithCommand into Sync object (matthieu.baechler: d6fbcc0a7658dbaaa258ba9633e9884dcb35cd5d ) integration-testing/opush/src/test/java/org/obm/opush/command/sync/SyncHandlerOnContactsTest.java integration-testing/opush/src/test/java/org/obm/opush/command/sync/SyncHandlerOnCalendarsTest.java client/src/main/java/org/obm/sync/push/client/commands/Sync.java client/src/main/java/org/obm/sync/push/client/commands/SyncWithCommand.java integration-testing/opush/src/test/java/org/obm/opush/MailBackendGetChangedTest.java integration-testing/opush/src/test/java/org/obm/opush/command/sync/SyncHandlerWithBackendTest.java integration-testing/opush/src/test/java/org/obm/opush/command/sync/SyncHandlerTest.java OP-123 convert another OPClient.sync invocation into a Sync.Builder one (matthieu.baechler: 636bb930cb4ba26d003a70e778af5ff1ba03d128 ) integration-testing/opush/src/test/java/org/obm/opush/command/sync/SyncHandlerWithBackendTest.java client/src/main/java/org/obm/sync/push/client/OPClient.java integration-testing/opush/src/test/java/org/obm/opush/command/sync/SyncHandlerOnCalendarsTest.java client/src/main/java/org/obm/sync/push/client/commands/Sync.java integration-testing/opush/src/test/java/org/obm/opush/command/sync/SyncHandlerOnContactsTest.java OP-123 remove use of xml template to have a more flexible Sync command (matthieu.baechler: 2d0d0bdcf6218854a4307b262be8c5076f59f668 ) client/src/main/resources/data/SyncRequest.xml client/src/main/java/org/obm/sync/push/client/commands/Sync.java OP-123 make use of opush protocol object SyncCollection (matthieu.baechler: d8dbf83d44d292d7f574c27bf6a23af2397640e7 ) client/src/main/java/org/obm/sync/push/client/commands/Sync.java OP-123 make use of opush protocol object SyncCollection (step two) (matthieu.baechler: cf9b35e211de625675cd51abdf89b94e8bd2dd26 ) integration-testing/opush/src/test/java/org/obm/opush/command/sync/SyncHandlerWithBackendTest.java integration-testing/opush/src/test/java/org/obm/opush/command/sync/SyncHandlerOnContactsTest.java integration-testing/opush/src/test/java/org/obm/opush/command/sync/SyncHandlerTest.java client/src/main/java/org/obm/sync/push/client/commands/Sync.java integration-testing/opush/src/test/java/org/obm/opush/command/sync/SyncHandlerOnCalendarsTest.java integration-testing/opush/src/test/java/org/obm/opush/MailBackendGetChangedTest.java OP-123 remove SyncCollectionCommandDto (matthieu.baechler: 0e3f4e5bfd2fd729518f45871c772e79652df6fb ) protocol/src/main/java/org/obm/push/protocol/data/ContactEncoder.java protocol/src/test/java/org/obm/push/protocol/bean/SyncCollectionTest.java client/src/main/resources/data/EmailSyncRequest.xml protocol/src/test/java/org/obm/push/BeansTest.java integration-testing/opush/src/test/java/org/obm/opush/command/sync/SyncHandlerOnCalendarsTest.java push-core/src/main/java/org/obm/push/protocol/data/SyncAnalyser.java protocol/src/test/java/org/obm/push/protocol/data/SyncDecoderTest.java protocol/src/main/java/org/obm/push/protocol/data/SyncEncoder.java protocol/src/test/java/org/obm/push/protocol/SyncProtocolTest.java push-core/src/test/java/org/obm/push/protocol/data/SyncAnalyserTest.java integration-testing/opush/src/test/java/org/obm/opush/command/sync/SyncHandlerWithBackendTest.java client/src/main/resources/data/EmailSyncRequestWithWait.xml integration-testing/opush/src/test/java/org/obm/opush/MailBackendGetChangedTest.java protocol/src/main/java/org/obm/push/protocol/SyncProtocol.java client/src/main/java/org/obm/sync/push/client/commands/EmailSyncCommand.java protocol/src/main/java/org/obm/push/protocol/data/SyncDecoder.java protocol/src/main/java/org/obm/push/protocol/bean/SyncCollectionCommandDto.java protocol/src/main/java/org/obm/push/protocol/data/ContactDecoder.java integration-testing/opush/src/test/java/org/obm/opush/command/sync/SyncHandlerTest.java client/src/main/resources/data/SyncWithCommandRequest.xml push-bean/src/main/java/org/obm/push/bean/SyncCollectionCommands.java integration-testing/opush/src/test/java/org/obm/opush/command/sync/SyncHandlerOnContactsTest.java client/src/main/java/org/obm/sync/push/client/commands/Sync.java client/src/main/resources/data/EmailDeleteSyncRequest.xml client/src/main/java/org/obm/sync/push/client/commands/EmailSyncNoOptionsCommand.java client/src/main/java/org/obm/sync/push/client/commands/EmailDeleteSyncRequest.java protocol/src/main/java/org/obm/push/protocol/bean/SyncCollection.java OP-123 finally make Sync multi command and drop template based sync (matthieu.baechler: 410cc6cfe078f5d4ccc2005784728877391dbea4 ) client/src/main/java/org/obm/sync/push/client/commands/Sync.java protocol/src/test/java/org/obm/push/protocol/bean/SyncCollectionTest.java integration-testing/opush/src/test/java/org/obm/opush/command/sync/SyncHandlerOnCalendarsTest.java protocol/src/main/java/org/obm/push/protocol/bean/SyncCollection.java integration-testing/opush/src/test/java/org/obm/opush/MailBackendGetChangedTest.java integration-testing/opush/src/test/java/org/obm/opush/command/sync/SyncHandlerOnContactsTest.java integration-testing/opush/src/test/java/org/obm/opush/command/sync/SyncHandlerWithBackendTest.java integration-testing/opush/src/test/java/org/obm/opush/command/sync/SyncHandlerTest.java protocol/src/test/java/org/obm/push/protocol/SyncProtocolTest.java OP-123 make various integrity checks on commands ServerId (matthieu.baechler: df3ff9b741ff7aa42c8ff503accd68db79fdaec2 ) push-bean/src/main/java/org/obm/push/bean/ServerId.java push-core/src/main/java/org/obm/push/protocol/data/SyncAnalyser.java integration-testing/opush/src/test/java/org/obm/opush/command/sync/SyncHandlerTest.java OP-123 make empty string check on commands ServerId (matthieu.baechler: e8e0b45dd8eb301ec582930d750125a95a521675 ) push-core/src/main/java/org/obm/push/protocol/data/SyncAnalyser.java push-bean/src/main/java/org/obm/push/bean/change/SyncCommand.java integration-testing/opush/src/test/java/org/obm/opush/command/sync/SyncHandlerTest.java client/src/main/java/org/obm/sync/push/client/commands/Sync.java OP-123 remove inheritance with SyncCollectionCommands, use delegation (matthieu.baechler: c9ca7f5d7d76ec52559ff3c8e4f9f57273b593e3 ) push-dao-cassandra/src/main/java/org/obm/push/json/JSONService.java push-bean/src/test/java/org/obm/push/bean/SyncCollectionCommandsIndexTest.java push-bean/src/main/java/org/obm/push/bean/SyncCollectionCommandsIndex.java push-bean/src/main/java/org/obm/push/bean/SyncCollectionCommands.java push-dao-cassandra/src/main/java/org/obm/push/json/mixin/SyncCollectionCommandsResponseMixIn.java push-bean/src/main/java/org/obm/push/bean/SyncCollectionCommandsResponse.java push-bean/src/test/java/org/obm/push/bean/SyncCollectionCommandsTest.java push-bean/src/main/java/org/obm/push/bean/SyncCollectionResponsesResponse.java push-bean/src/test/java/org/obm/push/bean/BeansTest.java OP-123 remove AbstractSyncCollection (matthieu.baechler: 61aa17d1da2064f5f3cde20a86a5edb69bee0388 ) push-bean/src/main/java/org/obm/push/bean/AnalysedSyncCollection.java push-dao-cassandra/src/main/java/org/obm/push/json/mixin/AbstractSyncCollectionMixIn.java push-core/src/main/java/org/obm/push/SummaryLoggerService.java push-bean/src/main/java/org/obm/push/bean/SyncCollectionCommandsResponse.java protocol/src/main/java/org/obm/push/protocol/SyncProtocol.java push-bean/src/main/java/org/obm/push/bean/SyncCollectionResponse.java push-dao-cassandra/src/main/java/org/obm/push/json/mixin/SyncCollectionCommandsResponseMixIn.java push-core/src/test/java/org/obm/push/protocol/data/SyncAnalyserTest.java push-bean/src/test/java/org/obm/push/bean/AbstractSyncCollectionTest.java protocol/src/main/java/org/obm/push/protocol/bean/SyncCollection.java push-dao-cassandra/src/main/java/org/obm/push/json/mixin/AnalysedSyncCollectionMixIn.java push-dao-cassandra/src/main/java/org/obm/push/json/JSONService.java protocol/src/main/java/org/obm/push/protocol/PingProtocol.java protocol/src/main/java/org/obm/push/protocol/data/SyncEncoder.java protocol/src/test/java/org/obm/push/protocol/bean/SyncCollectionTest.java client/src/main/java/org/obm/sync/push/client/commands/Sync.java push-bean/src/main/java/org/obm/push/bean/SyncCollectionCommandsIndex.java protocol/src/test/java/org/obm/push/protocol/GetItemEstimateProtocolTest.java push-bean/src/main/java/org/obm/push/bean/PIMDataType.java push-core/src/main/java/org/obm/push/handler/PingHandler.java push-bean/src/main/java/org/obm/push/bean/AbstractSyncCollection.java protocol/src/main/java/org/obm/push/protocol/GetItemEstimateProtocol.java protocol/src/test/java/org/obm/push/protocol/data/SyncDecoderTest.java OP-123 AnalysedSyncCollection contains a SyncCollectionCommandsRequest instead of a ...Response (matthieu.baechler: e709cda2843032b6f5aca3552f5f5c0d00f1c477 ) push-dao-cassandra/src/main/java/org/obm/push/json/mixin/SyncCollectionCommandsRequestMixIn.java push-bean/src/main/java/org/obm/push/bean/SyncCollectionCommandsResponse.java push-core/src/main/java/org/obm/push/protocol/data/SyncAnalyser.java push-core/src/test/java/org/obm/push/protocol/data/SyncAnalyserTest.java push-core/src/test/java/org/obm/push/handler/SyncHandlerTest.java push-bean/src/main/java/org/obm/push/bean/AnalysedSyncCollection.java push-bean/src/main/java/org/obm/push/bean/SyncCollectionCommandsRequest.java push-dao-cassandra/src/main/java/org/obm/push/json/JSONService.java push-core/src/test/java/org/obm/push/SummaryLoggerServiceTest.java push-bean/src/test/java/org/obm/push/bean/AnalysedSyncCollectionTest.java push-dao-cassandra/src/test/java/org/obm/push/json/JSONServiceTest.java push-core/src/main/java/org/obm/push/handler/SyncHandler.java OP-123 duplicate SyncCollectionCommand into SyncCollectionCommandRequest and SyncCollectionCommandResponse (matthieu.baechler: 04ea90eace70a120876f33a69531a90b69ad572e ) push-core/src/test/java/org/obm/push/handler/SyncHandlerTest.java protocol/src/test/java/org/obm/push/protocol/data/SyncDecoderTest.java protocol/src/test/java/org/obm/push/protocol/SyncProtocolTest.java push-bean/src/main/java/org/obm/push/bean/SyncCollectionCommandRequest.java protocol/src/main/java/org/obm/push/protocol/bean/SyncCollection.java integration-testing/opush/src/test/java/org/obm/opush/command/sync/SyncHandlerWithBackendTest.java push-dao-cassandra/src/main/java/org/obm/push/json/JSONService.java integration-testing/opush/src/test/java/org/obm/opush/command/sync/SyncHandlerTest.java push-bean/src/test/java/org/obm/push/bean/SyncCollectionCommandsIndexTest.java push-bean/src/test/java/org/obm/push/bean/BeansTest.java push-bean/src/test/java/org/obm/push/bean/AnalysedSyncCollectionTest.java push-core/src/main/java/org/obm/push/handler/ItemOperationsHandler.java integration-testing/opush/src/test/java/org/obm/opush/MailBackendGetChangedTest.java push-core/src/test/java/org/obm/push/SummaryLoggerServiceTest.java push-bean/src/main/java/org/obm/push/bean/SyncCollectionCommandsResponse.java push-dao-cassandra/src/main/java/org/obm/push/json/mixin/TypedCommandsMixIn.java push-bean/src/main/java/org/obm/push/bean/SyncCollectionCommandsRequest.java push-bean/src/main/java/org/obm/push/bean/SyncCollectionCommandsIndex.java push-bean/src/test/java/org/obm/push/bean/TypedCommandsIndexTest.java push-bean/src/main/java/org/obm/push/bean/SyncCollectionCommandResponse.java push-core/src/main/java/org/obm/push/handler/SyncHandler.java integration-testing/opush/src/test/java/org/obm/opush/command/sync/SyncHandlerOnContactsTest.java push-core/src/main/java/org/obm/push/protocol/data/SyncAnalyser.java push-core/src/main/java/org/obm/push/state/StateMachine.java protocol/src/main/java/org/obm/push/protocol/SyncProtocol.java push-bean/src/main/java/org/obm/push/bean/TypedCommandsIndex.java push-bean/src/main/java/org/obm/push/bean/SyncCollectionResponsesResponse.java push-bean/src/main/java/org/obm/push/bean/SyncCollectionCommand.java push-bean/src/main/java/org/obm/push/bean/SyncCollectionResponse.java push-dao-cassandra/src/main/java/org/obm/push/json/mixin/SyncCollectionCommandResponseMixIn.java push-dao-cassandra/src/main/java/org/obm/push/json/mixin/SyncCollectionCommandsResponseMixIn.java push-dao-cassandra/src/test/java/org/obm/push/json/JSONServiceTest.java push-dao-cassandra/src/main/java/org/obm/push/json/mixin/SyncCollectionCommandsRequestMixIn.java push-dao-cassandra/src/main/java/org/obm/push/json/mixin/SyncCollectionCommandMixIn.java client/src/main/java/org/obm/sync/push/client/commands/Sync.java protocol/src/main/java/org/obm/push/protocol/data/SyncDecoder.java push-dao-cassandra/src/main/java/org/obm/push/json/mixin/SyncCollectionCommandRequestMixIn.java protocol/src/test/java/org/obm/push/protocol/bean/SyncCollectionTest.java push-dao-cassandra/src/test/java/org/obm/push/json/JSONServiceCompatibilityTest.java integration-testing/opush/src/test/java/org/obm/opush/command/sync/SyncHandlerOnCalendarsTest.java push-dao-cassandra/src/main/java/org/obm/push/json/mixin/SyncCollectionCommandsMixIn.java push-bean/src/main/java/org/obm/push/bean/AnalysedSyncCollection.java push-bean/src/main/java/org/obm/push/bean/TypedCommand.java push-core/src/test/java/org/obm/push/state/StateMachineTest.java push-bean/src/main/java/org/obm/push/bean/SyncCollectionCommands.java protocol/src/main/java/org/obm/push/protocol/data/SyncEncoder.java OP-123 remove SyncCollectionCommandsRequest object (matthieu.baechler: 00bd171ac820fbc3055f78327baf499192a88ae0 ) push-core/src/test/java/org/obm/push/SummaryLoggerServiceTest.java push-bean/src/test/java/org/obm/push/bean/AnalysedSyncCollectionTest.java push-dao-cassandra/src/main/java/org/obm/push/json/mixin/SyncCollectionCommandsRequestMixIn.java push-core/src/test/java/org/obm/push/handler/SyncHandlerTest.java push-core/src/main/java/org/obm/push/protocol/data/SyncAnalyser.java push-core/src/main/java/org/obm/push/SummaryLoggerService.java push-bean/src/main/java/org/obm/push/bean/TypedCommandsIndex.java push-dao-cassandra/src/test/java/org/obm/push/json/JSONServiceTest.java push-bean/src/test/java/org/obm/push/bean/BeansTest.java push-core/src/test/java/org/obm/push/protocol/data/SyncAnalyserTest.java push-bean/src/main/java/org/obm/push/bean/AnalysedSyncCollection.java push-core/src/main/java/org/obm/push/handler/SyncHandler.java push-bean/src/main/java/org/obm/push/bean/SyncCollectionCommandsRequest.java push-dao-cassandra/src/main/java/org/obm/push/json/JSONService.java OP-123 add EncodedApplicationData to postpone data decoding after collection type resolution (matthieu.baechler: 065c547141645d947c1c6ee3e562922ca1ce9486 ) push-core/src/main/java/org/obm/push/protocol/data/SyncAnalyser.java protocol/src/main/java/org/obm/push/protocol/SyncProtocol.java integration-testing/opush/src/test/java/org/obm/opush/command/sync/SyncHandlerTest.java protocol/src/main/java/org/obm/push/protocol/data/SyncEncoder.java push-bean/src/main/java/org/obm/push/bean/EncodedApplicationData.java protocol/src/test/java/org/obm/push/protocol/SyncProtocolTest.java protocol/src/main/java/org/obm/push/protocol/bean/SyncRequest.java protocol/src/main/java/org/obm/push/protocol/AsymetricActiveSyncProtocol.java push-bean/src/main/java/org/obm/push/bean/EncodedSyncCollectionCommandRequest.java protocol/src/test/java/org/obm/push/protocol/data/SyncDecoderTest.java protocol/src/test/java/org/obm/push/protocol/bean/SyncCollectionTest.java integration-testing/opush/src/test/java/org/obm/opush/command/sync/SyncHandlerOnContactsTest.java protocol/src/main/java/org/obm/push/protocol/data/SyncDecoder.java client/src/main/java/org/obm/sync/push/client/commands/Sync.java integration-testing/opush/src/test/java/org/obm/opush/command/sync/SyncHandlerWithBackendTest.java protocol/src/main/java/org/obm/push/protocol/data/ContactEncoder.java push-dao-cassandra/src/main/java/org/obm/push/json/mixin/AnalysedSyncCollectionMixIn.java integration-testing/opush/src/test/java/org/obm/opush/MailBackendGetChangedTest.java protocol/src/main/java/org/obm/push/protocol/bean/ClientSyncRequest.java protocol/src/main/java/org/obm/push/protocol/bean/SyncCollection.java push-dao-cassandra/src/test/java/org/obm/push/json/JSONServiceTest.java integration-testing/opush/src/test/java/org/obm/opush/command/sync/SyncHandlerOnCalendarsTest.java protocol/src/main/java/org/obm/push/protocol/ActiveSyncProtocol.java push-bean/src/main/java/org/obm/push/bean/SyncCollectionCommandRequest.java
          Thomas HILAIRE made changes -
          Status Ready To Merge [ 10002 ] Resolved [ 5 ]
          Stephane COLSON made changes -
          Comment [ Tests done with Ipad (iOS 8.1.2), iphone (iOS 7.1.2); Fairphone FP1 (Android 4.2.2) and Windows Phone Nokia Lumia 920. New contact created, modified then deleted. New event created, modified the deleted. Email received.
          {color:green}OK{color} with Opush 3.0.4 with OBM 3.0.0 on CentOS

          More tests will be done with OP-146, but this version is also used for a while by beta testers on Lng prod. ]
          Hide
          Stephane COLSON added a comment -

          Tests done with Ipad (iOS 8.1.2), iphone (iOS 7.1.2); Fairphone FP1 (Android 4.2.2) and Windows Phone Nokia Lumia 920. New contact created, modified then deleted. New event created, modified the deleted. Email received.
          OK with Opush 3.0.4 with OBM 3.0.0 on CentOS

          More tests will be done with OP-146, but this version is also used for a while by beta testers on Lng prod.

          Show
          Stephane COLSON added a comment - Tests done with Ipad (iOS 8.1.2), iphone (iOS 7.1.2); Fairphone FP1 (Android 4.2.2) and Windows Phone Nokia Lumia 920. New contact created, modified then deleted. New event created, modified the deleted. Email received. OK with Opush 3.0.4 with OBM 3.0.0 on CentOS More tests will be done with OP-146 , but this version is also used for a while by beta testers on Lng prod.
          Stephane COLSON made changes -
          Status Resolved [ 5 ] Closed [ 6 ]
          Hide
          Thomas HILAIRE added a comment -

          Reproduction steps: One way to produce this issue, with a Nexus 4 (Android 5.0.1) :
          usera with its Nexus4, is configured to synchronize each 10 minutes

          1. usera with its Nexus4, receive en email in its INBOX
          2. usera with its Nexus4, read this email and return to the INBOX view
          3. usera with its Nexus4, he select the read email and drop it with the "bin" button
          4. usera with its Nexus4, force the synchronization

          Bad behavior:
          the device does not want to synchronize its INBOX anymore

          Expected behavior:
          the device is able to synchronize its INBOX anymore

          Show
          Thomas HILAIRE added a comment - Reproduction steps : One way to produce this issue, with a Nexus 4 (Android 5.0.1) : #  usera with its Nexus4, is configured to synchronize each 10 minutes usera with its Nexus4, receive en email in its INBOX usera with its Nexus4, read this email and return to the INBOX view usera with its Nexus4, he select the read email and drop it with the "bin" button usera with its Nexus4, force the synchronization Bad behavior : the device does not want to synchronize its INBOX anymore Expected behavior : the device is able to synchronize its INBOX anymore

            People

            • Assignee:
              Matthieu EXT_BAECHLER
              Reporter:
              Matthieu EXT_BAECHLER
            • Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: