protected void evict()

in src/main/java/org/apache/servicemix/store/mongo/MongoStore.java [217:264]


    protected void evict() {
        if (timeout != null) {
            DBObject object = new BasicDBObject();
            object.put(TIMESTAMP, new BasicDBObject("&lt", System.currentTimeMillis() - timeout));
            DBCursor items = collection.find(object);
            WriteResult result = collection.remove(object);

            for (DBObject item : items) {
                String id = null;
                Object data = null;
                if (item != null) {

                    byte[] idBytes = (byte[]) item.get(ID);
                    byte[] dataBytes = (byte[]) item.get(DATA);

                    if (data != null) {
                        try {
                            ObjectInputStream ois = null;

                            ois = new ObjectInputStream(new ByteArrayInputStream(idBytes));
                            try {
                                id = (String) ois.readObject();
                            } finally {
                                ois.close();
                            }

                            ois = new ObjectInputStream(new ByteArrayInputStream(dataBytes));
                            try {
                                data = ois.readObject();
                                ois.close();
                            } finally {
                                ois.close();
                            }

                            if(id != null) {
                                fireEvictedEvent(id,data);
                            }

                        } catch (IOException e) {
                            LOG.error("Error evicting object from store",e);
                        } catch (ClassNotFoundException e) {
                            LOG.error("Error evicting object from store",e);
                        }
                    }
                }
            }
        }
    }