@Override public void fromDelta(DataInput in) throws IOException, InvalidDeltaException { // Read whether to apply the changes to another DS if necessary this.applyRemotely = in.readBoolean(); // Read the events List<DeltaSessionAttributeEvent> events = null; try { events = DataSerializer.readArrayList(in); } catch (ClassNotFoundException e) { throw new InvalidDeltaException(e); } // This allows for backwards compatibility with 2.1 clients if (((InputStream) in).available() > 0) { this.lastAccessedTime = in.readLong(); this.maxInactiveInterval = in.readInt(); } // Iterate and apply the events for (DeltaSessionAttributeEvent event : events) { event.apply(this); } // Add the events to the gateway delta region if necessary if (this.enableGatewayDeltaReplication && this.applyRemotely) { setCurrentGatewayDeltaEvent( new DeltaSessionAttributeEventBatch(this.sessionRegionName, this.id, events)); } // Access it to set the last accessed time. End access it to set not new. access(); endAccess(); }
@Override public void commit() { if (!isValidInternal()) throw new IllegalStateException("commit: Session " + getId() + " already invalidated"); // (STRING_MANAGER.getString("deltaSession.commit.ise", getId())); synchronized (this.changeLock) { // Jens - there used to be a check to only perform this if the queue is // empty, but we want this to always run so that the lastAccessedTime // will be updated even when no attributes have been changed. DeltaSessionManager mgr = (DeltaSessionManager) this.manager; if (this.enableGatewayDeltaReplication && mgr.isPeerToPeer()) { setCurrentGatewayDeltaEvent( new DeltaSessionAttributeEventBatch(this.sessionRegionName, this.id, this.eventQueue)); } this.hasDelta = true; this.applyRemotely = true; putInRegion(getOperatingRegion(), true, null); this.eventQueue.clear(); } }
public void fromDelta(DataInput in) throws IOException, InvalidDeltaException { // Read whether to apply the changes to another DS if necessary this.applyRemotely = in.readBoolean(); // Read the events List<DeltaSessionAttributeEvent> events = null; try { events = DataSerializer.readArrayList(in); } catch (ClassNotFoundException e) { throw new InvalidDeltaException(e); } // This allows for backwards compatibility with 2.1 clients if (((InputStream) in).available() > 0) { this.lastAccessedTime = in.readLong(); this.maxInactiveInterval = in.readInt(); } // Iterate and apply the events for (DeltaSessionAttributeEvent event : events) { event.apply(this); } // Add the events to the gateway delta region if necessary if (this.enableGatewayDeltaReplication && this.applyRemotely) { setCurrentGatewayDeltaEvent( new DeltaSessionAttributeEventBatch(this.sessionRegionName, this.id, events)); } // Access it to set the last accessed time. End access it to set not new. access(); endAccess(); }
public void commit() { if (!isValidInternal()) throw new IllegalStateException("commit: Session " + getId() + " already invalidated"); // (STRING_MANAGER.getString("deltaSession.commit.ise", getId())); synchronized (this.changeLock) { // Jens - there used to be a check to only perform this if the queue is // empty, but we want this to always run so that the lastAccessedTime // will be updated even when no attributes have been changed. DeltaSessionManager mgr = (DeltaSessionManager) this.manager; if (this.enableGatewayDeltaReplication && mgr.isPeerToPeer()) { setCurrentGatewayDeltaEvent( new DeltaSessionAttributeEventBatch(this.sessionRegionName, this.id, this.eventQueue)); } this.hasDelta = true; this.applyRemotely = true; putInRegion(getOperatingRegion(), true, null); this.eventQueue.clear(); } }