src/main/java/com/seanchenxi/gwt/storage/client/StorageExt.java
private <T> void fireEvent(StorageChangeEvent.ChangeType changeType, StorageKey<T> key, T value, T oldVal, String data, String oldData) {
    UncaughtExceptionHandler ueh = GWT.getUncaughtExceptionHandler();
    if (handlers != null && !handlers.isEmpty()) {
      T oldValue = oldVal;
      if (oldValue == null && oldData != null && StorageChangeEvent.Level.OBJECT.equals(eventLevel)) {    
        try {
          oldValue = StorageUtils.deserialize(key.getClazz(), data);
        } catch (SerializationException e) {
          if (ueh != null)
            ueh.onUncaughtException(e);
          oldValue = null;
        }
      }

      final StorageChangeEvent event = new StorageChangeEvent(changeType, key, value, oldValue, data, oldData);
      for (StorageChangeEvent.Handler handler : handlers) {
        try{
          handler.onStorageChange(event);
        }catch(Exception e){
          if(ueh != null){
            ueh.onUncaughtException(e);
          }
        }
      }
    }
  }
private <T> void fireEvent(StorageChangeEvent.ChangeType changeType, StorageKey<T> key, T value, T oldVal, String data, String oldData) {
    UncaughtExceptionHandler ueh = GWT.getUncaughtExceptionHandler();
    if (handlers != null && !handlers.isEmpty()) {
      T oldValue = oldVal;
      if (oldValue == null && oldData != null && StorageChangeEvent.Level.OBJECT.equals(eventLevel)) {    
        try {
          oldValue = StorageUtils.deserialize(key.getClazz(), data);
        } catch (SerializationException e) {
          if (ueh != null)
            ueh.onUncaughtException(e);
          oldValue = null;
        }
      }

      final StorageChangeEvent event = new StorageChangeEvent(changeType, key, value, oldValue, data, oldData);
      for (StorageChangeEvent.Handler handler : handlers) {
        try{
          handler.onStorageChange(event);
        }catch(Exception e){
          if(ueh != null){
            ueh.onUncaughtException(e);
          }
        }
      }
    }
  }
Fire {@link StorageChangeEvent}