ignite-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From voze...@apache.org
Subject ignite git commit: Simplified prototype.
Date Thu, 08 Sep 2016 14:57:04 GMT
Repository: ignite
Updated Branches:
  refs/heads/ignite-3199-1 8359c220f -> 4f552f2cf


Simplified prototype.


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

Branch: refs/heads/ignite-3199-1
Commit: 4f552f2cf8968dfe3f3bcf0e41f787dfb8613939
Parents: 8359c22
Author: vozerov-gridgain <vozerov@gridgain.com>
Authored: Thu Sep 8 17:56:59 2016 +0300
Committer: vozerov-gridgain <vozerov@gridgain.com>
Committed: Thu Sep 8 17:56:59 2016 +0300

----------------------------------------------------------------------
 .../ignite/internal/binary/BinaryContext.java   |  12 +-
 .../platform/cache/PlatformCacheInvoker.java    |  44 ++--
 .../KeyValueDirtyTrackedCollection.java         |  98 ---------
 .../platform/websession/LockEntryProcessor.java |  61 ------
 .../websession/PlatformDotnetSessionData.java   | 204 ++++++++++++++++++
 .../PlatformDotnetSessionLockProcessor.java     |  73 +++++++
 .../PlatformDotnetSessionLockResult.java        | 100 +++++++++
 ...tformDotnetSessionSetAndUnlockProcessor.java |   6 +-
 .../platform/websession/SessionStateData.java   | 208 -------------------
 .../websession/SessionStateLockInfo.java        |  87 --------
 .../websession/SessionStateLockResult.java      | 100 ---------
 .../websession/SetAndUnlockEntryProcessor.java  |  64 ------
 .../websession/UnlockEntryProcessor.java        |  63 ------
 13 files changed, 409 insertions(+), 711 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/4f552f2c/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryContext.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryContext.java
b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryContext.java
index 4e7fb7e..a87d95b 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryContext.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryContext.java
@@ -76,10 +76,8 @@ import org.apache.ignite.internal.processors.igfs.meta.IgfsMetaFileUnlockProcess
 import org.apache.ignite.internal.processors.igfs.meta.IgfsMetaUpdatePropertiesProcessor;
 import org.apache.ignite.internal.processors.igfs.meta.IgfsMetaUpdateTimesProcessor;
 import org.apache.ignite.internal.processors.platform.PlatformJavaObjectFactoryProxy;
-import org.apache.ignite.internal.processors.platform.websession.KeyValueDirtyTrackedCollection;
-import org.apache.ignite.internal.processors.platform.websession.SessionStateLockInfo;
-import org.apache.ignite.internal.processors.platform.websession.SessionStateData;
-import org.apache.ignite.internal.processors.platform.websession.SessionStateLockResult;
+import org.apache.ignite.internal.processors.platform.websession.PlatformDotnetSessionData;
+import org.apache.ignite.internal.processors.platform.websession.PlatformDotnetSessionLockResult;
 import org.apache.ignite.internal.util.lang.GridMapEntry;
 import org.apache.ignite.internal.util.typedef.F;
 import org.apache.ignite.internal.util.typedef.T2;
@@ -322,10 +320,8 @@ public class BinaryContext {
         registerPredefinedType(BinaryMetadata.class, 0);
         registerPredefinedType(BinaryEnumObjectImpl.class, 0);
 
-        registerPredefinedType(SessionStateData.class, 0);
-        registerPredefinedType(SessionStateLockInfo.class, 0);
-        registerPredefinedType(SessionStateLockResult.class, 0);
-        registerPredefinedType(KeyValueDirtyTrackedCollection.class, 0);
+        registerPredefinedType(PlatformDotnetSessionData.class, 0);
+        registerPredefinedType(PlatformDotnetSessionLockResult.class, 0);
 
         // IDs range [200..1000] is used by Ignite internal APIs.
     }

http://git-wip-us.apache.org/repos/asf/ignite/blob/4f552f2c/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/cache/PlatformCacheInvoker.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/cache/PlatformCacheInvoker.java
b/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/cache/PlatformCacheInvoker.java
index 8586770..3d99f0d 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/cache/PlatformCacheInvoker.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/cache/PlatformCacheInvoker.java
@@ -19,11 +19,12 @@ package org.apache.ignite.internal.processors.platform.cache;
 
 import org.apache.ignite.IgniteCache;
 import org.apache.ignite.internal.binary.BinaryRawReaderEx;
-import org.apache.ignite.internal.processors.platform.websession.LockEntryProcessor;
-import org.apache.ignite.internal.processors.platform.websession.SessionStateData;
-import org.apache.ignite.internal.processors.platform.websession.SessionStateLockInfo;
-import org.apache.ignite.internal.processors.platform.websession.SetAndUnlockEntryProcessor;
-import org.apache.ignite.internal.processors.platform.websession.UnlockEntryProcessor;
+import org.apache.ignite.internal.processors.platform.websession.PlatformDotnetSessionLockProcessor;
+import org.apache.ignite.internal.processors.platform.websession.PlatformDotnetSessionSetAndUnlockProcessor;
+
+import java.sql.Timestamp;
+import java.util.Map;
+import java.util.UUID;
 
 /**
  * Custom entry processor invoker.
@@ -33,10 +34,7 @@ public class PlatformCacheInvoker {
     public static final int OP_SESSION_LOCK = 1;
 
     /** */
-    public static final int OP_SESSION_UNLOCK = 2;
-
-    /** */
-    public static final int OP_SESSION_SET_AND_UNLOCK = 3;
+    public static final int OP_SESSION_SET_AND_UNLOCK = 2;
 
     /**
      * Invokes the custom processor.
@@ -56,25 +54,33 @@ public class PlatformCacheInvoker {
 
         switch (opCode) {
             case OP_SESSION_LOCK: {
-                SessionStateLockInfo lockInfo = reader.readObject();
+                UUID lockNodeId = reader.readUuid();
+                long lockId = reader.readLong();
+                Timestamp lockTime = reader.readTimestamp();
 
-                res = cache.invoke(key, new LockEntryProcessor(), lockInfo);
+                res = cache.invoke(key, new PlatformDotnetSessionLockProcessor(lockNodeId,
lockId, lockTime));
 
                 break;
             }
 
-            case OP_SESSION_UNLOCK: {
-                SessionStateLockInfo lockInfo = reader.readObject();
+            case OP_SESSION_SET_AND_UNLOCK:
+                UUID lockNodeId = reader.readUuid();
+                long lockId = reader.readLong();
+
+                PlatformDotnetSessionSetAndUnlockProcessor proc;
 
-                cache.invoke(key, new UnlockEntryProcessor(), lockInfo);
+                if (reader.readBoolean()) {
 
-                break;
-            }
+                    Map<String, byte[]> items = null; // TODO: Read sorted map.
+                    byte[] staticData = reader.readByteArray();
+                    int timeout = reader.readInt();
 
-            case OP_SESSION_SET_AND_UNLOCK:
-                SessionStateData data = reader.readObject();
+                    proc = new PlatformDotnetSessionSetAndUnlockProcessor(lockNodeId, lockId,
items, staticData, timeout);
+                }
+                else
+                    proc = new PlatformDotnetSessionSetAndUnlockProcessor(lockNodeId, lockId);
 
-                cache.invoke(key, new SetAndUnlockEntryProcessor(), data);
+                cache.invoke(key, proc);
 
                 break;
         }

http://git-wip-us.apache.org/repos/asf/ignite/blob/4f552f2c/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/websession/KeyValueDirtyTrackedCollection.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/websession/KeyValueDirtyTrackedCollection.java
b/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/websession/KeyValueDirtyTrackedCollection.java
deleted file mode 100644
index 2a89164..0000000
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/websession/KeyValueDirtyTrackedCollection.java
+++ /dev/null
@@ -1,98 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You 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.apache.ignite.internal.processors.platform.websession;
-
-import org.apache.ignite.binary.BinaryObjectException;
-import org.apache.ignite.binary.BinaryRawReader;
-import org.apache.ignite.binary.BinaryRawWriter;
-import org.apache.ignite.binary.BinaryReader;
-import org.apache.ignite.binary.BinaryWriter;
-import org.apache.ignite.binary.Binarylizable;
-import org.apache.ignite.internal.util.typedef.internal.S;
-
-import java.util.Map;
-import java.util.SortedMap;
-import java.util.TreeMap;
-
-/**
- * Web session lock info.
- */
-public class KeyValueDirtyTrackedCollection implements Binarylizable {
-    /** Entry order is important. */
-    private SortedMap<String, byte[]> entries;
-
-    /** Whether this is a diff. */
-    private boolean isDiff;
-
-    /**
-     * Apply changes from another instance.
-     *
-     * @param other Items.
-     */
-    public void applyChanges(KeyValueDirtyTrackedCollection other) {
-        assert other != null;
-
-        if (!other.isDiff) {
-            // Not a diff: remove all
-            entries.clear();
-        }
-
-        for (Map.Entry<String, byte[]> e : other.entries.entrySet()) {
-            String key = e.getKey();
-            byte[] value = e.getValue();
-
-            if (value != null)
-                entries.put(key, value);
-            else
-                entries.remove(key);   // Null value indicates removed key.
-        }
-    }
-
-    /** {@inheritDoc} */
-    @Override public void writeBinary(BinaryWriter writer) throws BinaryObjectException {
-        BinaryRawWriter raw = writer.rawWriter();
-
-        raw.writeBoolean(!isDiff);
-
-        raw.writeInt(entries.size());
-
-        for (Map.Entry<String, byte[]> e : entries.entrySet()) {
-            raw.writeString(e.getKey());
-            raw.writeByteArray(e.getValue());
-        }
-    }
-
-    /** {@inheritDoc} */
-    @Override public void readBinary(BinaryReader reader) throws BinaryObjectException {
-        BinaryRawReader raw = reader.rawReader();
-
-        isDiff = !raw.readBoolean();
-
-        int count = raw.readInt();
-
-        entries = new TreeMap<>();
-
-        for (int i = 0; i < count; i++)
-            entries.put(raw.readString(), raw.readByteArray());
-    }
-
-    /** {@inheritDoc} */
-    @Override public String toString() {
-        return S.toString(KeyValueDirtyTrackedCollection.class, this);
-    }
-}

http://git-wip-us.apache.org/repos/asf/ignite/blob/4f552f2c/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/websession/LockEntryProcessor.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/websession/LockEntryProcessor.java
b/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/websession/LockEntryProcessor.java
deleted file mode 100644
index 78148b0..0000000
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/websession/LockEntryProcessor.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You 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.apache.ignite.internal.processors.platform.websession;
-
-import org.apache.ignite.cache.CacheEntryProcessor;
-import org.apache.ignite.internal.util.typedef.internal.S;
-
-import javax.cache.processor.EntryProcessorException;
-import javax.cache.processor.MutableEntry;
-
-/**
- * Entry processor that locks web session data.
- */
-public class LockEntryProcessor implements CacheEntryProcessor<String, SessionStateData,
Object> {
-    /** */
-    private static final long serialVersionUID = 0L;
-
-    /** {@inheritDoc} */
-    @Override public Object process(MutableEntry<String, SessionStateData> entry, Object...
args)
-        throws EntryProcessorException {
-        if (!entry.exists())
-            return null;
-
-        SessionStateData data = entry.getValue();
-
-        assert data != null;
-
-        if (data.isLocked())
-            return new SessionStateLockResult(false, null, data.lockTime());
-
-        SessionStateLockInfo lockInfo = (SessionStateLockInfo)args[0];
-
-        // Not locked: lock and return result
-        data = data.lock(lockInfo);
-
-        // Apply.
-        entry.setValue(data);
-
-        return new SessionStateLockResult(true, data, null);
-    }
-
-    /** {@inheritDoc */
-    @Override public String toString() {
-        return S.toString(LockEntryProcessor.class, this);
-    }
-}

http://git-wip-us.apache.org/repos/asf/ignite/blob/4f552f2c/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/websession/PlatformDotnetSessionData.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/websession/PlatformDotnetSessionData.java
b/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/websession/PlatformDotnetSessionData.java
new file mode 100644
index 0000000..b1dca1f
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/websession/PlatformDotnetSessionData.java
@@ -0,0 +1,204 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You 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.apache.ignite.internal.processors.platform.websession;
+
+import org.apache.ignite.binary.BinaryObjectException;
+import org.apache.ignite.binary.BinaryRawReader;
+import org.apache.ignite.binary.BinaryRawWriter;
+import org.apache.ignite.binary.BinaryReader;
+import org.apache.ignite.binary.BinaryWriter;
+import org.apache.ignite.binary.Binarylizable;
+import org.apache.ignite.internal.util.tostring.GridToStringExclude;
+import org.apache.ignite.internal.util.typedef.internal.S;
+
+import java.sql.Timestamp;
+import java.util.Map;
+import java.util.UUID;
+
+/**
+ * Web session state data.
+ */
+@SuppressWarnings({"ReturnOfDateField", "AssignmentToDateFieldFromParameter"})
+public class PlatformDotnetSessionData implements Binarylizable {
+    /** Items. */
+    private Map<String, byte[]> items;
+
+    /** Static objects. */
+    @GridToStringExclude
+    private byte[] staticObjects;
+
+    /** Timeout. */
+    private int timeout;
+
+    /** Lock ID. */
+    private long lockId;
+
+    /** Lock node ID. */
+    private UUID lockNodeId;
+
+    /** Lock time. */
+    private Timestamp lockTime;
+
+    /**
+     * @return Items.
+     */
+    public Map<String, byte[]> items() {
+        return items;
+    }
+
+    /**
+     * @return Static objects.
+     */
+    public byte[] staticObjects() {
+        return staticObjects;
+    }
+
+    /**
+     * @return Timeout.
+     */
+    public int timeout() {
+        return timeout;
+    }
+
+    /**
+     * @return Lock ID.
+     */
+    public long lockId() {
+        return lockId;
+    }
+
+    /**
+     * @return Lock node ID.
+     */
+    public UUID lockNodeId() {
+        return lockNodeId;
+    }
+
+    /**
+     * @return Lock time.
+     */
+    public Timestamp lockTime() {
+        return lockTime;
+    }
+
+    /**
+     * @return {@code True} if locked.
+     */
+    public boolean isLocked() {
+        return lockTime != null;
+    }
+
+    public PlatformDotnetSessionData lock(UUID lockNodeId, long lockId, Timestamp lockTime)
{
+        assert !isLocked();
+
+        PlatformDotnetSessionData res = copyWithoutLockInfo();
+
+        res.lockId = lockId;
+        res.lockNodeId = lockNodeId;
+        res.lockTime = lockTime;
+
+        return res;
+    }
+
+    /**
+     * Unlock session state data.
+     *
+     * @param lockNodeId Lock node ID.
+     * @param lockId Lock ID.
+     * @return Unlocked data.
+     */
+    public PlatformDotnetSessionData unlock(UUID lockNodeId, long lockId) {
+        assert isLocked();
+
+        if (!this.lockNodeId.equals(lockNodeId))
+            throw new IllegalStateException("Can not unlock session data: lock node id check
failed.");
+
+        if (this.lockId != lockId)
+            throw new IllegalStateException("Can not unlock session data: lock id check failed.");
+
+        return copyWithoutLockInfo();
+    }
+
+    /**
+     * Update session state and release the lock.
+     *
+     * @param lockNodeId Lock node ID.
+     * @param lockId Lock ID.
+     * @param items Items.
+     * @param staticObjects Static objects.
+     * @param timeout Timeout.
+     * @return Result.
+     */
+    public PlatformDotnetSessionData updateAndUnlock(UUID lockNodeId, long lockId, Map<String,
byte[]> items,
+        byte[] staticObjects, int timeout) {
+        assert items != null;
+
+        PlatformDotnetSessionData res = unlock(lockNodeId, lockId);
+
+        // TODO: Process new items. May be additional flag to clear all data will be required.
+
+        res.staticObjects = staticObjects;
+        res.timeout = timeout;
+
+        return res;
+    }
+
+    /**
+     * Gets a copy of this instance with non-lock properties set.
+     *
+     * @return Copied state data.
+     */
+    private PlatformDotnetSessionData copyWithoutLockInfo() {
+        PlatformDotnetSessionData res = new PlatformDotnetSessionData();
+
+        res.staticObjects = staticObjects;
+        res.items = items;
+        res.timeout = timeout;
+
+        return res;
+    }
+
+    /** {@inheritDoc} */
+    @Override public void writeBinary(BinaryWriter writer) throws BinaryObjectException {
+        BinaryRawWriter raw = writer.rawWriter();
+
+        raw.writeInt(timeout);
+        raw.writeUuid(lockNodeId);
+        raw.writeLong(lockId);
+        raw.writeTimestamp(lockTime);
+        raw.writeObject(items);
+        raw.writeByteArray(staticObjects);
+    }
+
+    /** {@inheritDoc} */
+    @Override public void readBinary(BinaryReader reader) throws BinaryObjectException {
+        BinaryRawReader raw = reader.rawReader();
+
+        timeout = raw.readInt();
+        lockNodeId = raw.readUuid();
+        lockId = raw.readLong();
+        lockTime = raw.readTimestamp();
+        items = raw.readObject();
+        staticObjects = raw.readByteArray();
+    }
+
+    /** {@inheritDoc} */
+    @Override public String toString() {
+        return S.toString(PlatformDotnetSessionData.class, this);
+    }
+}

http://git-wip-us.apache.org/repos/asf/ignite/blob/4f552f2c/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/websession/PlatformDotnetSessionLockProcessor.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/websession/PlatformDotnetSessionLockProcessor.java
b/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/websession/PlatformDotnetSessionLockProcessor.java
new file mode 100644
index 0000000..c7d8150
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/websession/PlatformDotnetSessionLockProcessor.java
@@ -0,0 +1,73 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You 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.apache.ignite.internal.processors.platform.websession;
+
+import org.apache.ignite.cache.CacheEntryProcessor;
+import org.apache.ignite.internal.util.typedef.internal.S;
+
+import javax.cache.processor.EntryProcessorException;
+import javax.cache.processor.MutableEntry;
+import java.sql.Timestamp;
+import java.util.UUID;
+
+/**
+ * Entry processor that locks web session data.
+ */
+public class PlatformDotnetSessionLockProcessor implements CacheEntryProcessor<String,
PlatformDotnetSessionData, Object> {
+    /** */
+    private static final long serialVersionUID = 0L;
+
+    UUID lockNodeId;
+
+    long lockId;
+
+    Timestamp lockTime;
+
+    public PlatformDotnetSessionLockProcessor(UUID lockNodeId, long lockId, Timestamp lockTime)
{
+        this.lockNodeId = lockNodeId;
+        this.lockId = lockId;
+        this.lockTime = lockTime;
+    }
+
+    /** {@inheritDoc} */
+    @Override public Object process(MutableEntry<String, PlatformDotnetSessionData>
entry, Object... args)
+        throws EntryProcessorException {
+        if (!entry.exists())
+            return null;
+
+        PlatformDotnetSessionData data = entry.getValue();
+
+        assert data != null;
+
+        if (data.isLocked())
+            return new PlatformDotnetSessionLockResult(false, null, data.lockTime());
+
+        // Not locked: lock and return result
+        data = data.lock(lockNodeId, lockId, lockTime);
+
+        // Apply.
+        entry.setValue(data);
+
+        return new PlatformDotnetSessionLockResult(true, data, null);
+    }
+
+    /** {@inheritDoc */
+    @Override public String toString() {
+        return S.toString(PlatformDotnetSessionLockProcessor.class, this);
+    }
+}

http://git-wip-us.apache.org/repos/asf/ignite/blob/4f552f2c/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/websession/PlatformDotnetSessionLockResult.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/websession/PlatformDotnetSessionLockResult.java
b/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/websession/PlatformDotnetSessionLockResult.java
new file mode 100644
index 0000000..ae01a4d
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/websession/PlatformDotnetSessionLockResult.java
@@ -0,0 +1,100 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You 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.apache.ignite.internal.processors.platform.websession;
+
+import org.apache.ignite.binary.BinaryObjectException;
+import org.apache.ignite.binary.BinaryRawReader;
+import org.apache.ignite.binary.BinaryRawWriter;
+import org.apache.ignite.binary.BinaryReader;
+import org.apache.ignite.binary.BinaryWriter;
+import org.apache.ignite.binary.Binarylizable;
+import org.apache.ignite.internal.util.typedef.internal.S;
+
+import java.sql.Timestamp;
+
+/**
+ * Result of the {@link PlatformDotnetSessionLockProcessor} execution.
+ */
+@SuppressWarnings({"AssignmentToDateFieldFromParameter", "ReturnOfDateField"})
+public class PlatformDotnetSessionLockResult implements Binarylizable {
+    /** Success flag. */
+    private boolean success;
+
+    /** Data. */
+    private PlatformDotnetSessionData data;
+
+    /** Lock time. */
+    private Timestamp lockTime;
+
+    /**
+     * Ctor.
+     *
+     * @param success Success flag.
+     * @param data Session data.
+     * @param lockTime Lock time.
+     */
+    public PlatformDotnetSessionLockResult(boolean success, PlatformDotnetSessionData data,
Timestamp lockTime) {
+        this.success = success;
+        this.data = data;
+        this.lockTime = lockTime;
+    }
+
+    /**
+     * @return Success flag.
+     */
+    public boolean success() {
+        return success;
+    }
+
+    /**
+     * @return Session state data.
+     */
+    public PlatformDotnetSessionData data() {
+        return data;
+    }
+
+    /**
+     * @return Lock time.
+     */
+    public Timestamp lockTime() {
+        return lockTime;
+    }
+
+    /** {@inheritDoc} */
+    @Override public void writeBinary(BinaryWriter writer) throws BinaryObjectException {
+        BinaryRawWriter raw = writer.rawWriter();
+
+        raw.writeBoolean(success);
+        raw.writeObject(data);
+        raw.writeTimestamp(lockTime);
+    }
+
+    /** {@inheritDoc} */
+    @Override public void readBinary(BinaryReader reader) throws BinaryObjectException {
+        BinaryRawReader raw = reader.rawReader();
+
+        success = raw.readBoolean();
+        data = raw.readObject();
+        lockTime = raw.readTimestamp();
+    }
+
+    /** {@inheritDoc} */
+    @Override public String toString() {
+        return S.toString(PlatformDotnetSessionLockResult.class, this);
+    }
+}

http://git-wip-us.apache.org/repos/asf/ignite/blob/4f552f2c/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/websession/PlatformDotnetSessionSetAndUnlockProcessor.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/websession/PlatformDotnetSessionSetAndUnlockProcessor.java
b/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/websession/PlatformDotnetSessionSetAndUnlockProcessor.java
index 5f16bee..7ce9996 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/websession/PlatformDotnetSessionSetAndUnlockProcessor.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/websession/PlatformDotnetSessionSetAndUnlockProcessor.java
@@ -33,7 +33,7 @@ import java.util.UUID;
  * Processor to unlock and optionally update the session.
  */
 public class PlatformDotnetSessionSetAndUnlockProcessor implements
-    CacheEntryProcessor<String, SessionStateData, Void>, Binarylizable {
+    CacheEntryProcessor<String, PlatformDotnetSessionData, Void>, Binarylizable {
     /** Lock node ID. */
     private UUID lockNodeId;
 
@@ -97,11 +97,11 @@ public class PlatformDotnetSessionSetAndUnlockProcessor implements
     }
 
     /** {@inheritDoc} */
-    @Override public Void process(MutableEntry<String, SessionStateData> entry, Object...
args)
+    @Override public Void process(MutableEntry<String, PlatformDotnetSessionData> entry,
Object... args)
         throws EntryProcessorException {
         assert entry.exists();
 
-        SessionStateData data = entry.getValue();
+        PlatformDotnetSessionData data = entry.getValue();
 
         assert data != null;
 

http://git-wip-us.apache.org/repos/asf/ignite/blob/4f552f2c/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/websession/SessionStateData.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/websession/SessionStateData.java
b/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/websession/SessionStateData.java
deleted file mode 100644
index ac81314..0000000
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/websession/SessionStateData.java
+++ /dev/null
@@ -1,208 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You 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.apache.ignite.internal.processors.platform.websession;
-
-import org.apache.ignite.binary.BinaryObjectException;
-import org.apache.ignite.binary.BinaryRawReader;
-import org.apache.ignite.binary.BinaryRawWriter;
-import org.apache.ignite.binary.BinaryReader;
-import org.apache.ignite.binary.BinaryWriter;
-import org.apache.ignite.binary.Binarylizable;
-import org.apache.ignite.internal.util.tostring.GridToStringExclude;
-import org.apache.ignite.internal.util.typedef.internal.S;
-import org.jetbrains.annotations.Nullable;
-
-import java.sql.Timestamp;
-import java.util.UUID;
-
-/**
- * Web session state data.
- */
-@SuppressWarnings({"ReturnOfDateField", "AssignmentToDateFieldFromParameter"})
-public class SessionStateData implements Binarylizable {
-    /** Items. */
-    private KeyValueDirtyTrackedCollection items;
-
-    /** Static objects. */
-    @GridToStringExclude
-    private byte[] staticObjects;
-
-    /** Timeout. */
-    private int timeout;
-
-    /** Lock ID. */
-    private long lockId;
-
-    /** Lock node ID. */
-    private UUID lockNodeId;
-
-    /** Lock time. */
-    private Timestamp lockTime;
-
-    /**
-     * @return Items.
-     */
-    public KeyValueDirtyTrackedCollection items() {
-        return items;
-    }
-
-    /**
-     * @return Static objects.
-     */
-    public byte[] staticObjects() {
-        return staticObjects;
-    }
-
-    /**
-     * @return Timeout.
-     */
-    public int timeout() {
-        return timeout;
-    }
-
-    /**
-     * @return Lock ID.
-     */
-    public long lockId() {
-        return lockId;
-    }
-
-    /**
-     * @return Lock node ID.
-     */
-    public UUID lockNodeId() {
-        return lockNodeId;
-    }
-
-    /**
-     * @return Lock time.
-     */
-    public Timestamp lockTime() {
-        return lockTime;
-    }
-
-    /**
-     * @return {@code True} if locked.
-     */
-    public boolean isLocked() {
-        return lockTime != null;
-    }
-
-    /**
-     * Set lock info.
-     *
-     * @param lock Lock.
-     */
-    public SessionStateData lock(SessionStateLockInfo lock) {
-        assert !isLocked();
-
-        SessionStateData res = copyWithoutLockInfo();
-
-        res.lockId = lock.id();
-        res.lockNodeId = lock.nodeId();
-        res.lockTime = lock.time();
-
-        return res;
-    }
-
-    /**
-     * Unlock session state data.
-     *
-     * @param lockNodeId Lock node ID.
-     * @param lockId Lock ID.
-     * @return Unlocked data.
-     */
-    public SessionStateData unlock(UUID lockNodeId, long lockId) {
-        assert isLocked();
-
-        if (!this.lockNodeId.equals(lockNodeId))
-            throw new IllegalStateException("Can not unlock session data: lock node id check
failed.");
-
-        if (this.lockId != lockId)
-            throw new IllegalStateException("Can not unlock session data: lock id check failed.");
-
-        return copyWithoutLockInfo();
-    }
-
-    /**
-     * Update session state and release the lock.
-     *
-     * @param lockNodeId Lock node ID.
-     * @param lockId Lock ID.
-     * @param items Items.
-     * @param staticObjects Static objects.
-     * @param timeout Timeout.
-     * @return Result.
-     */
-    public SessionStateData updateAndUnlock(UUID lockNodeId, long lockId, KeyValueDirtyTrackedCollection
items,
-        byte[] staticObjects, int timeout) {
-        assert items != null;
-
-        SessionStateData res = unlock(lockNodeId, lockId);
-
-        res.items.applyChanges(items);
-        res.staticObjects = staticObjects;
-        res.timeout = timeout;
-
-        return res;
-    }
-
-    /**
-     * Gets a copy of this instance with non-lock properties set.
-     *
-     * @return Copied state data.
-     */
-    private SessionStateData copyWithoutLockInfo() {
-        SessionStateData res = new SessionStateData();
-
-        res.staticObjects = staticObjects;
-        res.items = items;
-        res.timeout = timeout;
-
-        return res;
-    }
-
-    /** {@inheritDoc} */
-    @Override public void writeBinary(BinaryWriter writer) throws BinaryObjectException {
-        BinaryRawWriter raw = writer.rawWriter();
-
-        raw.writeInt(timeout);
-        raw.writeUuid(lockNodeId);
-        raw.writeLong(lockId);
-        raw.writeTimestamp(lockTime);
-        raw.writeObject(items);
-        raw.writeByteArray(staticObjects);
-    }
-
-    /** {@inheritDoc} */
-    @Override public void readBinary(BinaryReader reader) throws BinaryObjectException {
-        BinaryRawReader raw = reader.rawReader();
-
-        timeout = raw.readInt();
-        lockNodeId = raw.readUuid();
-        lockId = raw.readLong();
-        lockTime = raw.readTimestamp();
-        items = raw.readObject();
-        staticObjects = raw.readByteArray();
-    }
-
-    /** {@inheritDoc} */
-    @Override public String toString() {
-        return S.toString(SessionStateData.class, this);
-    }
-}

http://git-wip-us.apache.org/repos/asf/ignite/blob/4f552f2c/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/websession/SessionStateLockInfo.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/websession/SessionStateLockInfo.java
b/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/websession/SessionStateLockInfo.java
deleted file mode 100644
index 45cc317..0000000
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/websession/SessionStateLockInfo.java
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You 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.apache.ignite.internal.processors.platform.websession;
-
-import org.apache.ignite.binary.BinaryObjectException;
-import org.apache.ignite.binary.BinaryRawReader;
-import org.apache.ignite.binary.BinaryRawWriter;
-import org.apache.ignite.binary.BinaryReader;
-import org.apache.ignite.binary.BinaryWriter;
-import org.apache.ignite.binary.Binarylizable;
-import org.apache.ignite.internal.util.typedef.internal.S;
-
-import java.sql.Timestamp;
-import java.util.UUID;
-
-/**
- * Web session lock info.
- */
-public class SessionStateLockInfo implements Binarylizable {
-    /** ID. */
-    private long id;
-
-    /** Node ID. */
-    private UUID nodeId;
-
-    /** Time. */
-    private Timestamp time;
-
-    /**
-     * @return Lock ID.
-     */
-    public long id() {
-        return id;
-    }
-
-    /**
-     * @return Node ID.
-     */
-    public UUID nodeId() {
-        return nodeId;
-    }
-
-    /**
-     * @return Time.
-     */
-    public Timestamp time() {
-        return time;
-    }
-
-    /** {@inheritDoc} */
-    @Override public void writeBinary(BinaryWriter writer) throws BinaryObjectException {
-        BinaryRawWriter raw = writer.rawWriter();
-
-        raw.writeLong(id);
-        raw.writeUuid(nodeId);
-        raw.writeTimestamp(time);
-    }
-
-    /** {@inheritDoc} */
-    @Override public void readBinary(BinaryReader reader) throws BinaryObjectException {
-        BinaryRawReader raw = reader.rawReader();
-
-        id = raw.readLong();
-        nodeId = raw.readUuid();
-        time = raw.readTimestamp();
-    }
-
-    /** {@inheritDoc} */
-    @Override public String toString() {
-        return S.toString(SessionStateLockInfo.class, this);
-    }
-}

http://git-wip-us.apache.org/repos/asf/ignite/blob/4f552f2c/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/websession/SessionStateLockResult.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/websession/SessionStateLockResult.java
b/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/websession/SessionStateLockResult.java
deleted file mode 100644
index 7b531b4..0000000
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/websession/SessionStateLockResult.java
+++ /dev/null
@@ -1,100 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You 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.apache.ignite.internal.processors.platform.websession;
-
-import org.apache.ignite.binary.BinaryObjectException;
-import org.apache.ignite.binary.BinaryRawReader;
-import org.apache.ignite.binary.BinaryRawWriter;
-import org.apache.ignite.binary.BinaryReader;
-import org.apache.ignite.binary.BinaryWriter;
-import org.apache.ignite.binary.Binarylizable;
-import org.apache.ignite.internal.util.typedef.internal.S;
-
-import java.sql.Timestamp;
-
-/**
- * Result of the {@link LockEntryProcessor} execution.
- */
-@SuppressWarnings({"AssignmentToDateFieldFromParameter", "ReturnOfDateField"})
-public class SessionStateLockResult implements Binarylizable {
-    /** Success flag. */
-    private boolean success;
-
-    /** Data. */
-    private SessionStateData data;
-
-    /** Lock time. */
-    private Timestamp lockTime;
-
-    /**
-     * Ctor.
-     *
-     * @param success Success flag.
-     * @param data Session data.
-     * @param lockTime Lock time.
-     */
-    public SessionStateLockResult(boolean success, SessionStateData data, Timestamp lockTime)
{
-        this.success = success;
-        this.data = data;
-        this.lockTime = lockTime;
-    }
-
-    /**
-     * @return Success flag.
-     */
-    public boolean success() {
-        return success;
-    }
-
-    /**
-     * @return Session state data.
-     */
-    public SessionStateData data() {
-        return data;
-    }
-
-    /**
-     * @return Lock time.
-     */
-    public Timestamp lockTime() {
-        return lockTime;
-    }
-
-    /** {@inheritDoc} */
-    @Override public void writeBinary(BinaryWriter writer) throws BinaryObjectException {
-        BinaryRawWriter raw = writer.rawWriter();
-
-        raw.writeBoolean(success);
-        raw.writeObject(data);
-        raw.writeTimestamp(lockTime);
-    }
-
-    /** {@inheritDoc} */
-    @Override public void readBinary(BinaryReader reader) throws BinaryObjectException {
-        BinaryRawReader raw = reader.rawReader();
-
-        success = raw.readBoolean();
-        data = raw.readObject();
-        lockTime = raw.readTimestamp();
-    }
-
-    /** {@inheritDoc} */
-    @Override public String toString() {
-        return S.toString(SessionStateLockResult.class, this);
-    }
-}

http://git-wip-us.apache.org/repos/asf/ignite/blob/4f552f2c/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/websession/SetAndUnlockEntryProcessor.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/websession/SetAndUnlockEntryProcessor.java
b/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/websession/SetAndUnlockEntryProcessor.java
deleted file mode 100644
index 33e9d91..0000000
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/websession/SetAndUnlockEntryProcessor.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You 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.apache.ignite.internal.processors.platform.websession;
-
-import org.apache.ignite.cache.CacheEntryProcessor;
-import org.apache.ignite.internal.util.typedef.internal.S;
-
-import javax.cache.processor.EntryProcessorException;
-import javax.cache.processor.MutableEntry;
-
-/**
- * Entry processor that unlocks web session data.
- */
-public class SetAndUnlockEntryProcessor implements CacheEntryProcessor<String, SessionStateData,
Object> {
-    /** */
-    private static final long serialVersionUID = 0L;
-
-    /** {@inheritDoc} */
-    @Override public Object process(MutableEntry<String, SessionStateData> entry, Object...
args)
-        throws EntryProcessorException {
-        assert entry.exists();
-
-        SessionStateData data = entry.getValue();
-
-        assert data != null;
-        assert data.lockNodeId() != null;
-
-        SessionStateData newData = (SessionStateData)args[0];
-
-        if (!data.lockNodeId().equals(newData.lockNodeId()))
-            throw new IllegalStateException("Can not unlock session data: lock node id check
failed.");
-
-        if (data.lockId() != newData.lockId())
-            throw new IllegalStateException("Can not unlock session data: lock id check failed.");
-
-        // Unlock.
-        data = data.updateAndUnlock(newData.items(), newData.staticObjects(), newData.timeout());
-
-        // Apply.
-        entry.setValue(data);
-
-        return null;
-    }
-
-    /** {@inheritDoc */
-    @Override public String toString() {
-        return S.toString(SetAndUnlockEntryProcessor.class, this);
-    }
-}

http://git-wip-us.apache.org/repos/asf/ignite/blob/4f552f2c/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/websession/UnlockEntryProcessor.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/websession/UnlockEntryProcessor.java
b/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/websession/UnlockEntryProcessor.java
deleted file mode 100644
index a22c8a2..0000000
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/websession/UnlockEntryProcessor.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You 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.apache.ignite.internal.processors.platform.websession;
-
-import org.apache.ignite.cache.CacheEntryProcessor;
-import org.apache.ignite.internal.util.typedef.internal.S;
-
-import javax.cache.processor.EntryProcessorException;
-import javax.cache.processor.MutableEntry;
-
-/**
- * Entry processor that unlocks web session data.
- */
-public class UnlockEntryProcessor implements CacheEntryProcessor<String, SessionStateData,
Object> {
-    /** */
-    private static final long serialVersionUID = 0L;
-
-    /** {@inheritDoc} */
-    @Override public Object process(MutableEntry<String, SessionStateData> entry, Object...
args)
-        throws EntryProcessorException {
-        assert entry.exists();
-
-        SessionStateData data = entry.getValue();
-
-        assert data != null;
-        assert data.lockNodeId() != null;
-
-        SessionStateLockInfo lockInfo = (SessionStateLockInfo)args[0];
-
-        if (!data.lockNodeId().equals(lockInfo.nodeId()))
-            throw new IllegalStateException("Can not unlock session data: lock node id check
failed.");
-
-        if (data.lockId() != lockInfo.id())
-            throw new IllegalStateException("Can not unlock session data: lock id check failed.");
-
-        // Unlock.
-        data = data.unlock();
-
-        entry.setValue(data);
-
-        return null;
-    }
-
-    /** {@inheritDoc */
-    @Override public String toString() {
-        return S.toString(UnlockEntryProcessor.class, this);
-    }
-}


Mime
View raw message