[infinispan-issues] [JBoss JIRA] (ISPN-7405) DMR operation register-proto-schemas fails with NPE if the proto file has syntax errors

Dan Berindei (JIRA) issues at jboss.org
Fri Jan 27 11:40:00 EST 2017


    [ https://issues.jboss.org/browse/ISPN-7405?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13354467#comment-13354467 ] 

Dan Berindei commented on ISPN-7405:
------------------------------------

[~anistor] the problem is that {{ProtobufMetadataInterceptor}} tries to store the {{name.proto.errors}} entry with a {{null}} metadata. This works when the cache doesn't have persistence, but it triggers a {{NullPointerException}} when {{CacheWriterInterceptor}} tries to create an {{InternalCacheEntry}} from the context entry. 

I see {{InternalEntryFactoryImpl}} has some checks to deal with {{null}} metadata, but it's probably not incomplete writes from {{Cache}} methods always use a non-null metadata. Ideally I think we should check that the metadata is not null in {{CommandFactoryImpl}} and {{ProtobufMetadataInterceptor}} should use the main entry's metadata.

> DMR operation register-proto-schemas fails with NPE if the proto file has syntax errors
> ---------------------------------------------------------------------------------------
>
>                 Key: ISPN-7405
>                 URL: https://issues.jboss.org/browse/ISPN-7405
>             Project: Infinispan
>          Issue Type: Bug
>          Components: Remote Querying, Server
>    Affects Versions: 9.0.0.Beta2
>            Reporter: Adrian Nistor
>            Priority: Blocker
>             Fix For: 9.0.0.CR1
>
>         Attachments: error.log
>
>
> Start an infinispan server and run the following CLI command:
> ./bin/ispn-cli.sh -c '/subsystem=datagrid-infinispan/cache-container=local:register-proto-schemas(file-names=[myFileWithSyntaxErrors.proto], file-contents=[kaboom])'
> since the file has syntax errors it should still be placed in the ___protobuf_metadata cache and a myFileWithSyntaxErrors.proto.errors key should also be created. No exception should be thrown. Currently no key is written in cache and the NPE from the attached log happens.
> When registering a proper file without syntax errors this works correctly.
> The problem disappears if I disable global state persistence, so the cachestore seems to play a role in this.



--
This message was sent by Atlassian JIRA
(v7.2.3#72005)


More information about the infinispan-issues mailing list