//This code is generate automatically, DO NOT MODIFY! package javax.servlet.jsp.aspects; import javax.servlet.jsp.*; import java.util.logging.*; public aspect PageContext_Initialized pertarget(target(PageContext)) { //A boolean variable local to the aspect private boolean initialized = false; /* * Matches any methods allowed to initialize an Initialized object * Marks the object as initialized */ pointcut initMethod(): call(* javax.servlet.jsp.PageContext.initialize(..)); after() returning: initMethod(){ initialized=true; Logger.getLogger("ch.unisi.inf.luminous").log( Level.INFO, "ch.unisi.inf.luminous.initialized: Executed initializer " + "initialize on PageContext" ); } /* * Matches any non-initializing method * Checks if the target object is null or not initialized */ pointcut checkedMethods(): call(* javax.servlet.jsp.PageContext.*(..)) && !call(* java.lang.Object.clone(..)) && !cflow(call(javax.servlet.jsp.PageContext.new(..))) && !cflow(initMethod()) && !call(* java.lang.Object.getClass(..)) ; before(javax.servlet.jsp.PageContext target, Object _this): target(target) && this(_this) && if(_this != target) && checkedMethods() { Logger.getLogger("ch.unisi.inf.luminous").log(Level.INFO, "ch.unisi.inf.luminous.initialized: Executing advice on " + thisJoinPoint.toLongString() + " within " + _this ); if (!initialized){ Logger.getLogger("ch.unisi.inf.luminous").log(Level.SEVERE, "ch.unisi.inf.luminous.initialized: Accessing a non Initialized object of type PageContext", new Throwable()); } } }