All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.vfny.geoserver.action.FreeJAIMemoryAction Maven / Gradle / Ivy

There is a newer version: 1.7.0
Show newest version
/*
 * Created on Jan 28, 2004
 *
 * To change the template for this generated file go to
 * Window - Preferences - Java - Code Generation - Code and Comments
 */
package org.vfny.geoserver.action;

import com.sun.media.jai.util.SunTileCache;
import org.apache.struts.Globals;
import org.apache.struts.action.ActionError;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.vfny.geoserver.global.GeoServer;
import org.vfny.geoserver.global.UserContainer;
import javax.media.jai.JAI;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;


/**
 * Free JAI Memory by running the Tile Cahce flushing.
 * 

* This represents an action that interacts with the running GeoServer * application (it is not really a config action, it is just that I want the * user to be logged in). *

* @author $Author: Alessio Fabiani $ (last modification) */ public class FreeJAIMemoryAction extends ConfigAction { /* (non-Javadoc) * @see org.vfny.geoserver.action.ConfigAction#execute(org.apache.struts.action.ActionMapping, org.apache.struts.action.ActionForm, org.vfny.geoserver.global.UserContainer, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) */ public ActionForward execute(ActionMapping mapping, ActionForm form, UserContainer user, HttpServletRequest request, HttpServletResponse response) throws Exception { ServletContext sc = request.getSession().getServletContext(); final JAI jaiDef = ((GeoServer) sc.getAttribute(GeoServer.WEB_CONTAINER_KEY)).getJAIDefault(); final SunTileCache jaiCache = ((GeoServer) sc.getAttribute(GeoServer.WEB_CONTAINER_KEY)) .getJaiCache(); final long capacityBefore = jaiCache.getMemoryCapacity(); final long usageBefore = jaiCache.getCacheMemoryUsed(); jaiCache.flush(); jaiCache.setMemoryCapacity(0); //to be sure we realease all tiles System.gc(); System.gc(); System.gc(); System.gc(); System.gc(); System.gc(); jaiCache.setMemoryCapacity(capacityBefore); final long usageAfter = jaiCache.getCacheMemoryUsed(); // Provide status message // final ActionErrors errors = new ActionErrors(); errors.add(ActionErrors.GLOBAL_ERROR, new ActionError("message.JAI.memory", new Long((usageBefore - usageAfter) / 1024))); request.setAttribute(Globals.ERROR_KEY, errors); // return back to the admin screen // return mapping.findForward("admin"); } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy