Uploaded image for project: 'Infinispan'
  1. Infinispan
  2. ISPN-16473

Indexing is unable to parse ProtoStream message with map fields.

XMLWordPrintable

      Map of String does not contain a MessageDescriptor and the Indexing fails with the following exception

      [ispn-server] Caused by: java.lang.IllegalArgumentException: messageDescriptor cannot be null
      [ispn-server] 	at org.infinispan.protostream.MessageContext.<init>(MessageContext.java:43)
      [ispn-server] 	at org.infinispan.query.remote.impl.indexing.IndexingMessageContext.<init>(IndexingMessageContext.java:27)
      [ispn-server] 	at org.infinispan.query.remote.impl.indexing.IndexingTagHandler.pushContext(IndexingTagHandler.java:127)
      [ispn-server] 	at org.infinispan.query.remote.impl.indexing.IndexingTagHandler.onStartNested(IndexingTagHandler.java:85)
      [ispn-server] 	at org.infinispan.protostream.ProtobufParser.parseMessage(ProtobufParser.java:76)
      [ispn-server] 	at org.infinispan.protostream.ProtobufParser.parseInternal(ProtobufParser.java:58)
      [ispn-server] 	at org.infinispan.protostream.ProtobufParser.parse(ProtobufParser.java:45)
      [ispn-server] 	at org.infinispan.query.remote.impl.mapping.typebridge.ProtobufMessageBridge.write(ProtobufMessageBridge.java:32)
      [ispn-server] 	at org.infinispan.query.remote.impl.mapping.typebridge.ProtobufMessageBridge.write(ProtobufMessageBridge.java:15)
      [ispn-server] 	at org.hibernate.search.mapper.pojo.processing.impl.PojoIndexingProcessorTypeBridgeNode.process(PojoIndexingProcessorTypeBridgeNode.java:45)
      [ispn-server] 	at org.hibernate.search.mapper.pojo.processing.impl.PojoIndexingProcessorOriginalTypeNode.process(PojoIndexingProcessorOriginalTypeNode.java:63)
      [ispn-server] 	at org.hibernate.search.mapper.pojo.work.impl.PojoDocumentContributor.contribute(PojoDocumentContributor.java:55)
      [ispn-server] 	... 84 more
      
      

      Entity:

      /**
       * @Indexed
       * @TypeId(65607)
       */
      message RemoteAuthenticatedClientSessionEntity {
         
         /**
          * @Basic(projectable=true, sortable=true)
          */
         string clientId = 1;
         
         /**
          * @Basic
          */
         string userId = 2;
         
         /**
          * @Basic(projectable=true, sortable=true)
          */
         string userSessionId = 3;
         
         /**
          * @Basic
          */
         string realmId = 4;
      
         map<string, string> notes = 5;
         
         string action = 6;
         
         string protocol = 7;
         
         string redirectUri = 8;
         
         int32 timestamp = 9;
         
         int32 started = 10;
      }
      

      Entity source code: https://github.com/keycloak/keycloak/blob/07c92c85cbf685acd4bd521859df6c4e3e3fe0bb/model/infinispan/src/main/java/org/keycloak/models/sessions/infinispan/entities/RemoteAuthenticatedClientSessionEntity.java#L38

            fercoli@redhat.com Fabio Massimo Ercoli
            pruivo@redhat.com Pedro Ruivo
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated:
              Resolved: