Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGreg Wilkins2012-03-19 06:22:02 +0000
committerGreg Wilkins2012-03-19 06:22:02 +0000
commitd8b1d80e4e2326f13e82bf02c1ae1587c51dd8c4 (patch)
treeb504037065670ddec79cd136b8d935daeb0f48a8 /jetty-nosql
parent4b2d976f249028b214c3d6497ebb01b945e96333 (diff)
parent7e3b8bcfd4bcd96c199986720fa0aa0e6553b291 (diff)
downloadorg.eclipse.jetty.project-d8b1d80e4e2326f13e82bf02c1ae1587c51dd8c4.tar.gz
org.eclipse.jetty.project-d8b1d80e4e2326f13e82bf02c1ae1587c51dd8c4.tar.xz
org.eclipse.jetty.project-d8b1d80e4e2326f13e82bf02c1ae1587c51dd8c4.zip
Merge remote-tracking branch 'origin/master' into jetty-8
Conflicts: jetty-spdy/spdy-jetty-http-webapp/pom.xml jetty-spdy/spdy-jetty-http/pom.xml jetty-spdy/spdy-jetty/pom.xml
Diffstat (limited to 'jetty-nosql')
-rw-r--r--jetty-nosql/src/main/java/org/eclipse/jetty/nosql/mongodb/MongoSessionManager.java28
1 files changed, 22 insertions, 6 deletions
diff --git a/jetty-nosql/src/main/java/org/eclipse/jetty/nosql/mongodb/MongoSessionManager.java b/jetty-nosql/src/main/java/org/eclipse/jetty/nosql/mongodb/MongoSessionManager.java
index e4eab9e057..5fb218df2d 100644
--- a/jetty-nosql/src/main/java/org/eclipse/jetty/nosql/mongodb/MongoSessionManager.java
+++ b/jetty-nosql/src/main/java/org/eclipse/jetty/nosql/mongodb/MongoSessionManager.java
@@ -245,21 +245,37 @@ public class MongoSessionManager extends NoSqlSessionManager
{
for (String name : attrs.keySet())
{
- if ( __METADATA.equals(name) )
+ if (__METADATA.equals(name))
{
continue;
}
-
+
String attr = decodeName(name);
Object value = decodeValue(attrs.get(name));
- session.doPutOrRemove(attr,value);
- session.bindValue(attr,value);
+
+ if (attrs.keySet().contains(name))
+ {
+ session.doPutOrRemove(attr,value);
+ session.bindValue(attr,value);
+ }
+ else
+ {
+ session.doPutOrRemove(attr,value);
+ }
+ }
+ // cleanup, remove values from session, that don't exist in data anymore:
+ for (String name : session.getNames())
+ {
+ if (!attrs.keySet().contains(name))
+ {
+ session.doPutOrRemove(name,null);
+ session.unbindValue(name,session.getAttribute(name));
+ }
}
}
session.didActivate();
-
-
+
return version;
}
catch (Exception e)

Back to the top