You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@usergrid.apache.org by gr...@apache.org on 2016/04/08 22:20:51 UTC

[04/36] usergrid git commit: Another cherry pick with another issue with collection resource it and nothing else.

Another cherry pick with another issue with collection resource it and nothing else.


Project: http://git-wip-us.apache.org/repos/asf/usergrid/repo
Commit: http://git-wip-us.apache.org/repos/asf/usergrid/commit/aa7f776e
Tree: http://git-wip-us.apache.org/repos/asf/usergrid/tree/aa7f776e
Diff: http://git-wip-us.apache.org/repos/asf/usergrid/diff/aa7f776e

Branch: refs/heads/release-2.1.1
Commit: aa7f776edae7f9a2cb4c1577b6c86e1c028f082a
Parents: 99c75cc
Author: George Reyes <gr...@apache.org>
Authored: Fri Mar 11 15:19:52 2016 -0800
Committer: George Reyes <gr...@apache.org>
Committed: Thu Mar 24 09:08:05 2016 -0700

----------------------------------------------------------------------
 .../corepersistence/CpEntityManager.java        | 11 ---
 .../corepersistence/CpRelationManager.java      | 54 ++++++++++++
 .../asyncevents/EventBuilderImpl.java           |  2 +-
 .../corepersistence/index/IndexServiceImpl.java | 73 ++++++++++++++--
 .../impl/EntityCollectionManagerImpl.java       |  2 +-
 .../index/impl/EsEntityIndexBatchImpl.java      |  9 +-
 .../collection/CollectionsResourceIT.java       | 87 +++++++++++++++++++-
 .../services/AbstractCollectionService.java     |  1 -
 8 files changed, 215 insertions(+), 24 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/usergrid/blob/aa7f776e/stack/core/src/main/java/org/apache/usergrid/corepersistence/CpEntityManager.java
----------------------------------------------------------------------
diff --git a/stack/core/src/main/java/org/apache/usergrid/corepersistence/CpEntityManager.java b/stack/core/src/main/java/org/apache/usergrid/corepersistence/CpEntityManager.java
index d5ba946..1fbacbe 100644
--- a/stack/core/src/main/java/org/apache/usergrid/corepersistence/CpEntityManager.java
+++ b/stack/core/src/main/java/org/apache/usergrid/corepersistence/CpEntityManager.java
@@ -1770,17 +1770,6 @@ public class CpEntityManager implements EntityManager {
         return obj;
     }
 
-//    @Override
-//    public Entity createCollectionSchema( String collectionName ){
-//        MapManager mm = getMapManagerForTypes();
-//        String jsonMap = mm.getString( collectionName );
-//
-//        Object obj = JsonUtils.parse( jsonMap );
-//
-//        return null;
-//    }
-
-
         @Override
     public void grantRolePermission( String roleName, String permission ) throws Exception {
         roleName = roleName.toLowerCase();

http://git-wip-us.apache.org/repos/asf/usergrid/blob/aa7f776e/stack/core/src/main/java/org/apache/usergrid/corepersistence/CpRelationManager.java
----------------------------------------------------------------------
diff --git a/stack/core/src/main/java/org/apache/usergrid/corepersistence/CpRelationManager.java b/stack/core/src/main/java/org/apache/usergrid/corepersistence/CpRelationManager.java
index cfb8dfa..faffbba 100644
--- a/stack/core/src/main/java/org/apache/usergrid/corepersistence/CpRelationManager.java
+++ b/stack/core/src/main/java/org/apache/usergrid/corepersistence/CpRelationManager.java
@@ -18,6 +18,7 @@ package org.apache.usergrid.corepersistence;
 
 
 import java.util.ArrayList;
+import java.util.Collection;
 import java.util.HashSet;
 import java.util.Iterator;
 import java.util.LinkedHashMap;
@@ -69,10 +70,15 @@ import org.apache.usergrid.persistence.index.EntityIndex;
 import org.apache.usergrid.persistence.index.EntityIndexBatch;
 import org.apache.usergrid.persistence.index.SearchEdge;
 import org.apache.usergrid.persistence.index.query.Identifier;
+import org.apache.usergrid.persistence.map.MapManager;
+import org.apache.usergrid.persistence.map.MapScope;
 import org.apache.usergrid.persistence.model.entity.Id;
 import org.apache.usergrid.persistence.model.entity.SimpleId;
+import org.apache.usergrid.persistence.model.field.Field;
+import org.apache.usergrid.persistence.model.field.NullField;
 import org.apache.usergrid.persistence.schema.CollectionInfo;
 import org.apache.usergrid.utils.InflectionUtils;
+import org.apache.usergrid.utils.JsonUtils;
 import org.apache.usergrid.utils.MapUtils;
 
 import com.google.common.base.Optional;
@@ -90,6 +96,7 @@ import static org.apache.usergrid.persistence.Schema.COLLECTION_ROLES;
 import static org.apache.usergrid.persistence.Schema.PROPERTY_INACTIVITY;
 import static org.apache.usergrid.persistence.Schema.PROPERTY_NAME;
 import static org.apache.usergrid.persistence.Schema.PROPERTY_TITLE;
+import static org.apache.usergrid.persistence.Schema.TYPE_APPLICATION;
 import static org.apache.usergrid.persistence.Schema.TYPE_ENTITY;
 import static org.apache.usergrid.persistence.Schema.TYPE_ROLE;
 import static org.apache.usergrid.persistence.Schema.getDefaultSchema;
@@ -349,6 +356,15 @@ public class CpRelationManager implements RelationManager {
     @Override
     public Entity addToCollection( String collectionName, EntityRef itemRef ) throws Exception {
 
+        /**
+         * Get the map manager for uuid mapping
+         */
+        Id mapOwner = new SimpleId( applicationId, TYPE_APPLICATION );
+
+        final MapScope ms = CpNamingUtils.getEntityTypeMapScope(mapOwner );
+
+        MapManager mm = managerCache.getMapManager( ms );
+
         Preconditions.checkNotNull( itemRef, "itemref is null" );
         CollectionInfo collection = getDefaultSchema().getCollection( headEntity.getType(), collectionName );
         if ( ( collection != null && collection.getType() != null ) && !collection.getType()
@@ -392,6 +408,44 @@ public class CpRelationManager implements RelationManager {
 
         GraphManager gm = managerCache.getGraphManager( applicationScope );
 
+//        //do logic here
+//        String jsonMap = mm.getString( collectionName );
+//
+//        Set<String> defaultProperties = null;
+//
+//        if(jsonMap != null) {
+//
+//            Map jsonMapData = ( Map ) JsonUtils.parse( jsonMap );
+//            Schema schema = Schema.getDefaultSchema();
+//            defaultProperties = schema.getRequiredProperties( collectionName );
+//            //TODO: additional logic to
+//            ArrayList fieldsToKeep = ( ArrayList ) jsonMapData.get( "fields" );
+//            defaultProperties.addAll( fieldsToKeep );
+//
+//        }
+//
+//        Collection<String> trimmedFields = null;
+//        if(defaultProperties!=null){
+//           // if(cpHeadEntity.getFields())
+//            final Set<String> finalDefaultProperties = defaultProperties;
+//            trimmedFields = memberEntity.getFieldMap().keySet();
+//            Iterator collectionIterator = trimmedFields.iterator();
+//            while(collectionIterator.hasNext()){
+//                if(!finalDefaultProperties.contains( collectionIterator.next() )){
+//                    collectionIterator.remove();
+//                }
+//            }
+
+
+//            trimmedFields.forEach( element -> {
+//                if(!finalDefaultProperties.contains( element )){
+//                    memberEntity.removeField( element );
+//                }
+//            });
+
+//        }
+
+
         gm.writeEdge( edge ).doOnNext( writtenEdge -> {
             if ( logger.isDebugEnabled() ) {
                 logger.debug( "Wrote edge {}", writtenEdge );

http://git-wip-us.apache.org/repos/asf/usergrid/blob/aa7f776e/stack/core/src/main/java/org/apache/usergrid/corepersistence/asyncevents/EventBuilderImpl.java
----------------------------------------------------------------------
diff --git a/stack/core/src/main/java/org/apache/usergrid/corepersistence/asyncevents/EventBuilderImpl.java b/stack/core/src/main/java/org/apache/usergrid/corepersistence/asyncevents/EventBuilderImpl.java
index 2edc668..f2a8ff3 100644
--- a/stack/core/src/main/java/org/apache/usergrid/corepersistence/asyncevents/EventBuilderImpl.java
+++ b/stack/core/src/main/java/org/apache/usergrid/corepersistence/asyncevents/EventBuilderImpl.java
@@ -141,7 +141,7 @@ public class EventBuilderImpl implements EventBuilder {
         return new EntityDeleteResults( deIndexObservable, ecmDeleteObservable, graphCompactObservable );
     }
 
-
+    //TODO: have the map manager here and filter out the entities that are going to be loaded.
     @Override
     public Observable<IndexOperationMessage> buildEntityIndex( final EntityIndexOperation entityIndexOperation ) {
 

http://git-wip-us.apache.org/repos/asf/usergrid/blob/aa7f776e/stack/core/src/main/java/org/apache/usergrid/corepersistence/index/IndexServiceImpl.java
----------------------------------------------------------------------
diff --git a/stack/core/src/main/java/org/apache/usergrid/corepersistence/index/IndexServiceImpl.java b/stack/core/src/main/java/org/apache/usergrid/corepersistence/index/IndexServiceImpl.java
index 6c07212..01bc516 100644
--- a/stack/core/src/main/java/org/apache/usergrid/corepersistence/index/IndexServiceImpl.java
+++ b/stack/core/src/main/java/org/apache/usergrid/corepersistence/index/IndexServiceImpl.java
@@ -20,11 +20,22 @@
 package org.apache.usergrid.corepersistence.index;
 
 
+import java.util.ArrayList;
+import java.util.Collection;
 import java.util.Iterator;
+import java.util.Map;
+import java.util.Set;
 import java.util.UUID;
 import java.util.concurrent.TimeUnit;
 
+import org.apache.usergrid.persistence.Schema;
 import org.apache.usergrid.persistence.index.*;
+import org.apache.usergrid.persistence.map.MapManager;
+import org.apache.usergrid.persistence.map.MapManagerFactory;
+import org.apache.usergrid.persistence.map.MapScope;
+import org.apache.usergrid.persistence.model.entity.SimpleId;
+import org.apache.usergrid.persistence.model.field.Field;
+import org.apache.usergrid.utils.JsonUtils;
 import org.apache.usergrid.utils.UUIDUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -52,6 +63,7 @@ import rx.Observable;
 import static org.apache.usergrid.corepersistence.util.CpNamingUtils.createSearchEdgeFromSource;
 import static org.apache.usergrid.corepersistence.util.CpNamingUtils.generateScopeFromSource;
 import static org.apache.usergrid.corepersistence.util.CpNamingUtils.generateScopeFromTarget;
+import static org.apache.usergrid.persistence.Schema.TYPE_APPLICATION;
 import static org.apache.usergrid.persistence.Schema.getDefaultSchema;
 
 
@@ -66,6 +78,7 @@ public class IndexServiceImpl implements IndexService {
 
     private final GraphManagerFactory graphManagerFactory;
     private final EntityIndexFactory entityIndexFactory;
+    private final MapManagerFactory mapManagerFactory;
     private final EdgesObservable edgesObservable;
     private final IndexFig indexFig;
     private final IndexLocationStrategyFactory indexLocationStrategyFactory;
@@ -75,9 +88,13 @@ public class IndexServiceImpl implements IndexService {
 
     @Inject
     public IndexServiceImpl( final GraphManagerFactory graphManagerFactory, final EntityIndexFactory entityIndexFactory,
-                             final EdgesObservable edgesObservable, final IndexFig indexFig, final IndexLocationStrategyFactory indexLocationStrategyFactory, final MetricsFactory metricsFactory ) {
+                             final MapManagerFactory mapManagerFactory,
+                             final EdgesObservable edgesObservable, final IndexFig indexFig,
+                             final IndexLocationStrategyFactory indexLocationStrategyFactory,
+                             final MetricsFactory metricsFactory ) {
         this.graphManagerFactory = graphManagerFactory;
         this.entityIndexFactory = entityIndexFactory;
+        this.mapManagerFactory = mapManagerFactory;
         this.edgesObservable = edgesObservable;
         this.indexFig = indexFig;
         this.indexLocationStrategyFactory = indexLocationStrategyFactory;
@@ -93,7 +110,6 @@ public class IndexServiceImpl implements IndexService {
         final GraphManager gm = graphManagerFactory.createEdgeManager( applicationScope );
         final EntityIndex ei = entityIndexFactory.createEntityIndex(indexLocationStrategyFactory.getIndexLocationStrategy(applicationScope));
 
-
         final Id entityId = entity.getId();
 
 
@@ -142,11 +158,58 @@ public class IndexServiceImpl implements IndexService {
 
             final EntityIndexBatch batch = ei.createBatch();
 
-            if (logger.isDebugEnabled()) {
+           // if (logger.isDebugEnabled()) {
                 logger.debug("adding edge {} to batch for entity {}", indexEdge, entity);
-            }
+           // }
+
+
+                indexEdge.getNodeId().getUuid();
+
+                //System.out.println("hello");
+
+                Id mapOwner = new SimpleId( indexEdge.getNodeId().getUuid(), TYPE_APPLICATION );
+
+                final MapScope ms = CpNamingUtils.getEntityTypeMapScope(mapOwner );
+
+                MapManager mm = mapManagerFactory.createMapManager( ms );
+
+
+
+                String jsonMap = mm.getString( indexEdge.getEdgeName().split( "\\|" )[1] );
+
+                Set<String> defaultProperties = null;
+
+                if(jsonMap != null) {
+
+                    Map jsonMapData = ( Map ) JsonUtils.parse( jsonMap );
+                    Schema schema = Schema.getDefaultSchema();
+                    defaultProperties = schema.getRequiredProperties( indexEdge.getEdgeName().split( "\\|" )[1]);
+                    //TODO: additional logic to
+                    ArrayList fieldsToKeep = ( ArrayList ) jsonMapData.get( "fields" );
+                    defaultProperties.addAll( fieldsToKeep );
+
+                }
+
+            Entity filteredEntity = new Entity( entity.getId(),entity.getVersion() );
+            filteredEntity.setFieldMap( entity.getFieldMap() );
+
+                Collection<String> trimmedFields = null;
+                if(defaultProperties!=null) {
+                    // if(cpHeadEntity.getFields())
+                    final Set<String> finalDefaultProperties = defaultProperties;
+                    trimmedFields = entity.getFieldMap().keySet();
+                    Iterator collectionIterator = trimmedFields.iterator();
+                    while ( collectionIterator.hasNext() ) {
+                        String fieldName = ( String ) collectionIterator.next();
+                        if ( !finalDefaultProperties.contains( fieldName ) ) {
+                            //collectionIterator.remove();
+                            filteredEntity.removeField( fieldName );
+                        }
+                    }
+                }
+
 
-            batch.index( indexEdge, entity );
+            batch.index( indexEdge, filteredEntity );
 
             return batch.build();
         } );

http://git-wip-us.apache.org/repos/asf/usergrid/blob/aa7f776e/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/impl/EntityCollectionManagerImpl.java
----------------------------------------------------------------------
diff --git a/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/impl/EntityCollectionManagerImpl.java b/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/impl/EntityCollectionManagerImpl.java
index 06025d3..e71e6bb 100644
--- a/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/impl/EntityCollectionManagerImpl.java
+++ b/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/impl/EntityCollectionManagerImpl.java
@@ -184,7 +184,7 @@ public class EntityCollectionManagerImpl implements EntityCollectionManager {
         // create our observable and start the write
         final CollectionIoEvent<Entity> writeData = new CollectionIoEvent<Entity>( applicationScope, entity );
 
-        Observable<CollectionIoEvent<MvccEntity>> observable = stageRunner( writeData, writeStart );
+        Observable<CollectionIoEvent<MvccEntity>> observable =  stageRunner( writeData, writeStart );
 
 
         final Observable<Entity> write = observable.map( writeCommit )

http://git-wip-us.apache.org/repos/asf/usergrid/blob/aa7f776e/stack/corepersistence/queryindex/src/main/java/org/apache/usergrid/persistence/index/impl/EsEntityIndexBatchImpl.java
----------------------------------------------------------------------
diff --git a/stack/corepersistence/queryindex/src/main/java/org/apache/usergrid/persistence/index/impl/EsEntityIndexBatchImpl.java b/stack/corepersistence/queryindex/src/main/java/org/apache/usergrid/persistence/index/impl/EsEntityIndexBatchImpl.java
index 9427be1..f703e32 100644
--- a/stack/corepersistence/queryindex/src/main/java/org/apache/usergrid/persistence/index/impl/EsEntityIndexBatchImpl.java
+++ b/stack/corepersistence/queryindex/src/main/java/org/apache/usergrid/persistence/index/impl/EsEntityIndexBatchImpl.java
@@ -28,6 +28,7 @@ import org.slf4j.LoggerFactory;
 import org.apache.usergrid.persistence.core.scope.ApplicationScope;
 import org.apache.usergrid.persistence.core.util.ValidationUtils;
 import org.apache.usergrid.persistence.index.utils.IndexValidationUtils;
+import org.apache.usergrid.persistence.map.MapManager;
 import org.apache.usergrid.persistence.model.entity.Entity;
 import org.apache.usergrid.persistence.model.entity.Id;
 
@@ -68,10 +69,10 @@ public class EsEntityIndexBatchImpl implements EntityIndexBatch {
 
         final String writeAlias = alias.getWriteAlias();
 
-        if ( logger.isDebugEnabled() ) {
-            logger.debug( "Indexing to alias {} with scope {} on edge {} with entity data {}",
-                    writeAlias, applicationScope, indexEdge, entity );
-        }
+        //if ( logger.isDebugEnabled() ) {
+            logger.info( "Indexing to alias {} with scope {} on edge {} with entity data {}",
+                    writeAlias, applicationScope, indexEdge, entity.getFieldMap().keySet() );
+        //}
 
         //add app id for indexing
         container.addIndexRequest(new IndexOperation(writeAlias, applicationScope, indexEdge, entity));

http://git-wip-us.apache.org/repos/asf/usergrid/blob/aa7f776e/stack/rest/src/test/java/org/apache/usergrid/rest/applications/collection/CollectionsResourceIT.java
----------------------------------------------------------------------
diff --git a/stack/rest/src/test/java/org/apache/usergrid/rest/applications/collection/CollectionsResourceIT.java b/stack/rest/src/test/java/org/apache/usergrid/rest/applications/collection/CollectionsResourceIT.java
index cea9d5e..1aa91d1 100644
--- a/stack/rest/src/test/java/org/apache/usergrid/rest/applications/collection/CollectionsResourceIT.java
+++ b/stack/rest/src/test/java/org/apache/usergrid/rest/applications/collection/CollectionsResourceIT.java
@@ -21,12 +21,14 @@ import com.fasterxml.jackson.databind.JsonNode;
 
 import org.apache.usergrid.persistence.Schema;
 import org.apache.usergrid.persistence.entities.Application;
+
 import org.apache.usergrid.rest.test.resource.AbstractRestIT;
 import org.apache.usergrid.rest.test.resource.model.ApiResponse;
 import org.apache.usergrid.rest.test.resource.model.Collection;
 import org.apache.usergrid.rest.test.resource.model.Entity;
 import org.apache.usergrid.rest.test.resource.model.QueryParameters;
 import org.apache.usergrid.rest.test.resource.model.Token;
+
 import org.junit.Ignore;
 import org.junit.Test;
 import org.slf4j.Logger;
@@ -123,7 +125,7 @@ public class CollectionsResourceIT extends AbstractRestIT {
      * @throws Exception
      */
     @Test
-    public void postToReservedField() throws Exception {
+    public void postToCollectionSchemaUpdateExistingCollection() throws Exception {
 
         //Create test collection with test entity that is full text indexed.
         Entity testEntity = new Entity();
@@ -163,6 +165,7 @@ public class CollectionsResourceIT extends AbstractRestIT {
         assertEquals( ( thing ).get( "lastUpdateBy" ),testCollectionSchema.get( "lastUpdateBy" ) );
         assertEquals( ( thing ).get( "lastReindexed" ),testCollectionSchema.get( "lastReindexed" ) );
 
+        //TODO: this test doesn't check to see if create checks the schema. Only that the reindex removes whats already there.
         ArrayList<String> schema = ( ArrayList<String> ) testCollectionSchema.get( "fields" );
         assertEquals( "one",schema.get( 0 ) );
 
@@ -179,6 +182,88 @@ public class CollectionsResourceIT extends AbstractRestIT {
     }
 
     /**
+     * Create test collection
+     * Give collection an indexing schema
+     * Give collection a new entity and ensure it only indexes wht is in the schema
+     * Reindex and make sure old entity with full text indexing is reindexed with the schema.
+     *
+     * @throws Exception
+     */
+    @Test
+    public void postToCollectionSchemaWithSchemaFirst() throws Exception {
+
+
+
+        //Creating schema.
+        //this could be changed to a hashmap.
+        ArrayList<String> indexingArray = new ArrayList<>(  );
+        indexingArray.add( "one" );
+        indexingArray.add( "name" );
+
+        //TODO: add indexing array to the backend/test once you finish the regular selective indexing.
+        //indexingArray.add( "field.three.index.array" );
+
+        //field "fields" is required.
+        Entity payload = new Entity();
+        payload.put( "fields", indexingArray);
+
+        //Post index to the collection metadata
+       // Entity thing = this.app().collection( "testCollection" ).collection( "_indexes" ).post( payload );
+        refreshIndex();
+
+        //Create test collection with test entity that is full text indexed.
+        Entity testEntity = new Entity();
+        //testEntity.put( "name", "tester");
+        testEntity.put( "one", "helper" );
+        //this field shouldn't persist after reindexing.
+        testEntity.put( "two","query" );
+
+        //TODO: add arrays to the indexing test
+        //testEntity.put("array","array stuff here");
+
+        Entity returnedEntity = this.app().collection( "testCollection" ).post( testEntity );
+        refreshIndex();
+        //testEntity.put( "three","notthree" );
+        //ApiResponse updatedEntity = this.app().collection( "testCollection" ).put( null,testEntity );
+
+        //Below is what needs to be implemented along with the index call above
+
+//        //Get the collection schema and verify that it contains the same schema as posted above.
+//        Collection collection = this.app().collection( "testCollection" ).collection( "_index" ).get();
+//
+//        LinkedHashMap testCollectionSchema = (LinkedHashMap)collection.getResponse().getData();
+//        //TODO: the below will have to be replaced by the values that I deem correct.
+//        assertEquals( ( thing ).get( "lastUpdated" ), testCollectionSchema.get( "lastUpdated" ));
+//        assertEquals( ( thing ).get( "lastUpdateBy" ),testCollectionSchema.get( "lastUpdateBy" ) );
+//        assertEquals( ( thing ).get( "lastReindexed" ),testCollectionSchema.get( "lastReindexed" ) );
+
+//        //TODO: this test doesn't check to see if create checks the schema. Only that the reindex removes whats already there.
+//        ArrayList<String> schema = ( ArrayList<String> ) testCollectionSchema.get( "fields" );
+//        assertEquals( "one",schema.get( 0 ) );
+
+        //Reindex and verify that the entity only has field one index.
+//        this.app().collection( "testCollection" ).collection( "_reindex" ).post();
+//
+//        refreshIndex();
+
+        //this needs to be a query. not a graph. This should still return the full entity.
+
+        String query = "two ='query'";
+        QueryParameters queryParameters = new QueryParameters().setQuery(query);
+
+//having a name breaks it. Need to get rid of the stack trace and also
+        Collection tempEntity = this.app().collection( "testCollection" ).get(queryParameters,true);
+
+
+        Entity reindexedEntity = tempEntity.getResponse().getEntity(); //this.app().collection( "testCollection" ).entity( returnedEntity.getUuid() ).get();
+        assertEquals( "helper",reindexedEntity.get( "one" ) );
+        assertNull( reindexedEntity.get( "two" ) );
+        //not sure if this should have some kind of sleep here because this reindex will be heavily throttled.
+
+    }
+
+
+    /**
      * Test posts with a user level token on a path with permissions
      */
     //TODO: App level permissions aren't functioning.

http://git-wip-us.apache.org/repos/asf/usergrid/blob/aa7f776e/stack/services/src/main/java/org/apache/usergrid/services/AbstractCollectionService.java
----------------------------------------------------------------------
diff --git a/stack/services/src/main/java/org/apache/usergrid/services/AbstractCollectionService.java b/stack/services/src/main/java/org/apache/usergrid/services/AbstractCollectionService.java
index 4d73fa5..8b23e7a 100644
--- a/stack/services/src/main/java/org/apache/usergrid/services/AbstractCollectionService.java
+++ b/stack/services/src/main/java/org/apache/usergrid/services/AbstractCollectionService.java
@@ -333,7 +333,6 @@ public class AbstractCollectionService extends AbstractService {
         setServiceManager( serviceRequest.getServices() );
         ServiceContext context = serviceRequest.getAppContext();
 
-        context.setAction( ServiceAction.POST );
         checkPermissionsForCollection( context );
         Subject currentUser = SubjectUtils.getSubject();
         Object currentUser2 =currentUser.getPrincipal();