Skip to content
This repository was archived by the owner on Dec 12, 2018. It is now read-only.
This repository was archived by the owner on Dec 12, 2018. It is now read-only.

PropertiesFilterProcessor implementation is not thread safe #114

Description

@lhazlewood

The DefaultDataStore implementation has two instances of PropertiesFilterProcessor. Both of these instances are modified during processing of a single request. The DefaultPropertiesFilterProcessor internal implementation uses two LinkedLists, which are essentially shared state that is modified across requests (not good).

The PropertiesFilterProcessor concept needs to be refactored to ensure that shared state is immutable across requests (and potentially new instances are created for each request).

This is a high priority issue as it impacts a production support customer.

java.lang.NullPointerException 
at java.util.LinkedList$ListItr.next(LinkedList.java:891) 
at com.stormpath.sdk.impl.ds.DefaultPropertiesFilterProcessor.process(DefaultPropertiesFilterProcessor.java:61) 
at com.stormpath.sdk.impl.ds.DefaultDataStore.getCachedValue(DefaultDataStore.java:768) 
at com.stormpath.sdk.impl.ds.DefaultDataStore.retrieveResponseValue(DefaultDataStore.java:285) 
at com.stormpath.sdk.impl.ds.DefaultDataStore.getResource(DefaultDataStore.java:200) 
at com.stormpath.sdk.impl.ds.DefaultDataStore.getResource(DefaultDataStore.java:174) 
at com.stormpath.sdk.impl.client.DefaultClient.getResource(DefaultClient.java:204) 
at sun.reflect.GeneratedMethodAccessor96.invoke(Unknown Source) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
at java.lang.reflect.Method.invoke(Method.java:606)

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions