Author: [email protected]
Date: Wed Sep 28 17:21:50 2011
New Revision: 1421

Log:
[AMDATUCASSANDRA-99] Fixed the problem by adding null checks in the Cassandra 
storage implementations. But more investigation is needed for the reason of the 
hector exceptions stated in the JIRA issue

Added:
   
trunk/amdatu-cassandra/test-integration/tests/src/test/java/org/amdatu/cassandra/test/integration/tests/TokenStoreTest.java
Modified:
   
trunk/amdatu-cassandra/cassandra-store-token/src/main/java/org/amdatu/cassandra/store/token/service/CassandraTokenStorageProviderImpl.java
   
trunk/amdatu-cassandra/cassandra-store-token/src/test/java/org/amdatu/cassandra/test/unit/CassandraTokenStoreTest.java
   
trunk/amdatu-cassandra/test-integration/tests/src/test/java/org/amdatu/cassandra/test/integration/tests/framework/CassandraTest.java
   
trunk/amdatu-cassandra/test-integration/tests/src/test/java/org/amdatu/cassandra/test/integration/tests/framework/CassandraTestBase.java

Modified: 
trunk/amdatu-cassandra/cassandra-store-token/src/main/java/org/amdatu/cassandra/store/token/service/CassandraTokenStorageProviderImpl.java
==============================================================================
--- 
trunk/amdatu-cassandra/cassandra-store-token/src/main/java/org/amdatu/cassandra/store/token/service/CassandraTokenStorageProviderImpl.java
  (original)
+++ 
trunk/amdatu-cassandra/cassandra-store-token/src/main/java/org/amdatu/cassandra/store/token/service/CassandraTokenStorageProviderImpl.java
  Wed Sep 28 17:21:50 2011
@@ -107,6 +107,9 @@
     }
 
     public boolean hasToken(final String token) {
+        if (token == null) {
+            return false;
+        }
         String value = m_pm.getValue(CF_TOKEN, token, null, C_TIMESTAMP, 
String.class);
         return value != null;
     }
@@ -116,6 +119,9 @@
     }
 
     public Token getToken(String token) {
+        if (token == null) {
+            return null;
+        }
         List<HColumn<String, String>> columns = m_pm.getColumns(CF_TOKEN, 
token, String.class);
         String secret = null;
         long timestamp = 0L;

Modified: 
trunk/amdatu-cassandra/cassandra-store-token/src/test/java/org/amdatu/cassandra/test/unit/CassandraTokenStoreTest.java
==============================================================================
--- 
trunk/amdatu-cassandra/cassandra-store-token/src/test/java/org/amdatu/cassandra/test/unit/CassandraTokenStoreTest.java
      (original)
+++ 
trunk/amdatu-cassandra/cassandra-store-token/src/test/java/org/amdatu/cassandra/test/unit/CassandraTokenStoreTest.java
      Wed Sep 28 17:21:50 2011
@@ -28,7 +28,7 @@
 public class CassandraTokenStoreTest {
     @Test
     public void test() throws Exception {
-     // Create the mock objects
+        // Create the mock objects
         LogServiceMock logService = new LogServiceMock();
         CassandraPersistenceManagerMock<String, String, Object> pm = new 
CassandraPersistenceManagerMock<String, String, Object>("Default");
         ColumnFamilyDefinition[] colDefs = new 
TokenColumnFamilyProvider().getColumnFamilies();

Added: 
trunk/amdatu-cassandra/test-integration/tests/src/test/java/org/amdatu/cassandra/test/integration/tests/TokenStoreTest.java
==============================================================================
--- (empty file)
+++ 
trunk/amdatu-cassandra/test-integration/tests/src/test/java/org/amdatu/cassandra/test/integration/tests/TokenStoreTest.java
 Wed Sep 28 17:21:50 2011
@@ -0,0 +1,40 @@
+/*
+ * Copyright (c) 2010, 2011 The Amdatu Foundation
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.amdatu.cassandra.test.integration.tests;
+
+import org.amdatu.auth.tokenprovider.Token;
+import org.amdatu.cassandra.test.integration.tests.framework.CassandraTestBase;
+
+public class TokenStoreTest extends CassandraTestBase {
+
+    @Override
+    public void execute() throws Exception {
+        String key = "i_am_the_token";
+        String secret = "i_am_the_secret";
+        Token token = new Token(key, secret, System.currentTimeMillis());
+
+        // Try add/remove token
+        assertFalse(m_tokenStore.hasToken(key));
+        m_tokenStore.addToken(token);
+        assertTrue(m_tokenStore.hasToken(key));
+        m_tokenStore.removeToken(token);
+        assertFalse(m_tokenStore.hasToken(key));
+
+        // Verify that getToken and hasToken return null when the provided 
token is null
+        assertFalse(m_tokenStore.hasToken(null));
+        assertNull(m_tokenStore.getToken(null));
+    }
+}

Modified: 
trunk/amdatu-cassandra/test-integration/tests/src/test/java/org/amdatu/cassandra/test/integration/tests/framework/CassandraTest.java
==============================================================================
--- 
trunk/amdatu-cassandra/test-integration/tests/src/test/java/org/amdatu/cassandra/test/integration/tests/framework/CassandraTest.java
        (original)
+++ 
trunk/amdatu-cassandra/test-integration/tests/src/test/java/org/amdatu/cassandra/test/integration/tests/framework/CassandraTest.java
        Wed Sep 28 17:21:50 2011
@@ -24,6 +24,7 @@
 
 import org.amdatu.auth.oauth.consumerregistry.OAuthServiceConsumerRegistry;
 import org.amdatu.auth.oauth.server.OAuthNonceStorageProvider;
+import org.amdatu.auth.tokenprovider.TokenStorageProvider;
 import org.amdatu.cassandra.application.CassandraConfigurationService;
 import org.amdatu.cassandra.application.CassandraDaemonService;
 import 
org.amdatu.cassandra.persistencemanager.CassandraPersistenceManagerFactory;
@@ -34,6 +35,7 @@
 import org.amdatu.cassandra.test.integration.tests.NonceStoreTest;
 import 
org.amdatu.cassandra.test.integration.tests.OAuthServiceConsumerRESTTest;
 import org.amdatu.cassandra.test.integration.tests.OAuthServiceConsumerTest;
+import org.amdatu.cassandra.test.integration.tests.TokenStoreTest;
 import org.amdatu.cassandra.test.integration.tests.UserAdminStoreTest;
 import org.amdatu.core.itest.base.CoreFixture;
 import org.amdatu.core.itest.base.TestContext;
@@ -70,6 +72,7 @@
     private UserAdmin m_userAdmin;
     private OAuthServiceConsumerRegistry m_consumerRegistry;
     private OAuthNonceStorageProvider m_nonceStore;
+    private TokenStorageProvider m_tokenStore;
    
     @Configuration
     public Option[] config() {
@@ -115,11 +118,13 @@
         m_userAdmin = assertAvailable(m_testContext, UserAdmin.class);
         m_consumerRegistry = assertAvailable(m_testContext, 
OAuthServiceConsumerRegistry.class);
         m_nonceStore = assertAvailable(m_testContext, 
OAuthNonceStorageProvider.class);
+        m_tokenStore = assertAvailable(m_testContext, 
TokenStorageProvider.class);
       
         // Create the dependency manager
         m_dependencyManager = new 
DependencyManager(m_testContext.getBundleContext());
         
-        // Execute the tests        
+        // Execute the tests    
+        test(TokenStoreTest.class);
         test(CassandraDaemonTest.class);
         test(CassandraPersistenceManagerTest.class);
         test(UserAdminStoreTest.class);
@@ -150,5 +155,6 @@
         test.setUserAdmin(m_userAdmin);
         test.setOAuthConsumerRegistry(m_consumerRegistry);
         test.setOAuthNonceStore(m_nonceStore);
+        test.setTokenStore(m_tokenStore);
     }
 }

Modified: 
trunk/amdatu-cassandra/test-integration/tests/src/test/java/org/amdatu/cassandra/test/integration/tests/framework/CassandraTestBase.java
==============================================================================
--- 
trunk/amdatu-cassandra/test-integration/tests/src/test/java/org/amdatu/cassandra/test/integration/tests/framework/CassandraTestBase.java
    (original)
+++ 
trunk/amdatu-cassandra/test-integration/tests/src/test/java/org/amdatu/cassandra/test/integration/tests/framework/CassandraTestBase.java
    Wed Sep 28 17:21:50 2011
@@ -19,6 +19,7 @@
 
 import org.amdatu.auth.oauth.consumerregistry.OAuthServiceConsumerRegistry;
 import org.amdatu.auth.oauth.server.OAuthNonceStorageProvider;
+import org.amdatu.auth.tokenprovider.TokenStorageProvider;
 import org.amdatu.cassandra.application.CassandraDaemonService;
 import 
org.amdatu.cassandra.persistencemanager.CassandraPersistenceManagerFactory;
 import org.amdatu.core.itest.base.TestContext;
@@ -37,6 +38,7 @@
     protected volatile UserAdmin m_userAdmin;
     protected volatile OAuthServiceConsumerRegistry m_OAuthConsumerRegistry;
     protected volatile OAuthNonceStorageProvider m_OAuthNonceStore;
+    protected volatile TokenStorageProvider m_tokenStore;
     
     public abstract void execute() throws Exception;
     
@@ -76,6 +78,10 @@
         m_OAuthNonceStore = store;
     }
     
+    public void setTokenStore(TokenStorageProvider tokenStore) {
+        m_tokenStore = tokenStore;
+    }
+    
     protected void assertFalse(boolean check) {
         Assert.assertFalse(getStackTrace(), check);
     }
@@ -88,6 +94,10 @@
         Assert.assertNotNull(getStackTrace(), object);
     }
     
+    protected void assertNull(Object object) {
+        Assert.assertNull(getStackTrace(), object);
+    }
+    
     protected String getStackTrace() {
         String eol = System.getProperty("line.separator");
         String stackTrace = "Assertion failed." + eol + "Stacktrace:" + eol;
_______________________________________________
Amdatu-commits mailing list
[email protected]
http://lists.amdatu.org/mailman/listinfo/amdatu-commits

Reply via email to