title: Java-Spring Reflection brings method which are not present in the class
body: <p>I try to investigate classes available in a given package. for time being i have hard coded the class name, <code>I get so many methods which are not available in the class when i try to print all the methods and parameter type the method takes</code></p>
  
  <p>the following is my main class where i investigate the class and its method :</p>
  
  <pre><code>package com.hexgen.reflection;
  
  `// removed imports to post question`
  import com.hexgen.tools.HexgenClassUtils;
  
  public class HexgenWebAPITest {
  
      @SuppressWarnings({ "rawtypes", "unchecked", "unused" })
      public static void main(String[] args) {
          HexgenWebAPITest test = new HexgenWebAPITest();
          HexgenClassUtils hexgenClassUtils = new HexgenClassUtils();
          String uri="";
          String[] mappingValues=null;
          HttpClientRequests httpRequest = new HttpClientRequests();
          Class parames = CreateRequisitionRO[].class;
  
          Class booleanVal;
          booleanVal = Boolean.TYPE;
          Class cls;
  
  
          try {
              List classNames = hexgenClassUtils.findMyTypes("com.hexgen.*");
              Iterator&lt;Class&gt; it = classNames.iterator();
              while(it.hasNext())
              {
  
                  Class obj = it.next(); 
                  System.out.println("Methods available in : "+obj.getName());
                  System.out.println("===================================");
                  if(obj.getName().equals("com.hexgen.api.facade.HexgenWebAPI")){
                      cls = Class.forName(obj.getName());
                      cls.getClass();
                      Method[] method = cls.getDeclaredMethods();
                      int i=1;
                      for (Method method2 : method) {
                          System.out.println(+i+":"+method2.getName());
                          Class[] parameterTypes = method2.getParameterTypes();
                          for (Class class1 : parameterTypes) {
                              System.out.println("Parameter Type : "+class1.getName());
                          }
                          i++;
                      }
                  }
  
              }
  
  
          } catch (Exception ex) {
              ex.printStackTrace();
          }
  
      }
  
  }
  </code></pre>
  
  <p>this is the <code>Utility Class</code> </p>
  
  <pre><code>package com.hexgen.tools;
  </code></pre>
  
  <p><code>// removed imports to post the question here</code></p>
  
  <pre><code>public class HexgenClassUtils {
      @SuppressWarnings({ "rawtypes"})
      public List&lt;Class&gt; findMyTypes(String basePackage) throws IOException, ClassNotFoundException
      {
          ResourcePatternResolver resourcePatternResolver = new PathMatchingResourcePatternResolver();
          MetadataReaderFactory metadataReaderFactory = new CachingMetadataReaderFactory(resourcePatternResolver);
  
          List&lt;Class&gt; candidates = new ArrayList&lt;Class&gt;();
          String packageSearchPath = ResourcePatternResolver.CLASSPATH_ALL_URL_PREFIX +
                                     resolveBasePackage(basePackage) + "/" + "**/*.class";
          Resource[] resources = resourcePatternResolver.getResources(packageSearchPath);
          for (Resource resource : resources) {
              if (resource.isReadable()) {
                  MetadataReader metadataReader = metadataReaderFactory.getMetadataReader(resource);
                  if (isCandidate(metadataReader)) {
                      candidates.add(Class.forName(metadataReader.getClassMetadata().getClassName()));
                  }
              }
          }
          return candidates;
      }
      public String resolveBasePackage(String basePackage) {
          return ClassUtils.convertClassNameToResourcePath(SystemPropertyUtils.resolvePlaceholders(basePackage));
      }
  
      @SuppressWarnings({ "rawtypes", "unchecked" })
      public boolean isCandidate(MetadataReader metadataReader) throws ClassNotFoundException
      {
          try {
              Class c = Class.forName(metadataReader.getClassMetadata().getClassName());
              if (!c.isInterface() &amp;&amp; c.getAnnotation(Controller.class) != null) {
                  return true;
              }
          }
          catch(Throwable e){
          }
          return false;
      }
  
  }
  </code></pre>
  
  <p>and this is the actual class which i am investigating:</p>
  
  <pre><code>package com.hexgen.api.facade;
  
  `// removed imports to post question here`
  
  import com.hexgen.datauploader.ETLServiceProvider;
  
  
  import com.hexgen.ro.response.UserDetailsResponse;
  
  /**
   * Hexagon Global IT Services (ALL RIGHTS RESERVED) Created with IntelliJ IDEA.
   * User: mayankk Date: 23/11/12 Time: 10:27 AM To change this template use File
   * | Settings | File Templates.
   */
  @Controller
  @Transactional
  public class HexgenWebAPI {
  
      @Resource(name = "facadeDbFuncs")
      private DbFuncs dbFuncs;
  
      @Resource(name = "gatekeeper")
      private IGateKeeper gateKeeper;
  
      @Resource(name = "userContext")
      private UserContext userContext;
  
      @Resource(name = "costCalc")
      private FinancialCalculator financialCalculator;
  
      @Resource(name = "ytmCalc")
      private YTMCalculator ytmCalc;
  
      @Resource(name = "etlService")
      private ETLServiceProvider etlService;
  
      @Resource(name = "biManager")
      private IBIManager biManager;
  
      private String tmpFileName;
  
      Logger logger = LoggerFactory.getLogger(HexgenWebAPI.class);
  
      private Pattern c4Pattern;
  
      public HexgenWebAPI() {
          String cmdPattern = "([bsBS])[ ]+(\\w+)[ ]+(\\d+)[ ]*@[ ]*(\\d+\\.?\\d*)";
          c4Pattern = Pattern.compile(cmdPattern);
      }
  
      @RequestMapping(method = RequestMethod.GET, value = "/user/details")
      public @ResponseBody
      UserDetailsResponse getLoggedinUserDetails() {
          HexGenUser details = (HexGenUser) SecurityContextHolder.getContext()
                  .getAuthentication().getPrincipal();
  
          populateImplementationDetails(response);
          return response;
      }
  
      private void populateImplementationDetails(UserDetailsResponse response) {
          logger.debug("Finding revision details");
          try {
              CodeSource codeSource = this.getClass().getProtectionDomain()
                      .getCodeSource();
              if (codeSource != null) {
                  JarInputStream jarStream = new JarInputStream(codeSource
                          .getLocation().openStream());
                  Manifest manifest = jarStream.getManifest();
                  logger.debug("Manifest not found!");
                  if (manifest != null) {
  
                  }
              }
          } catch (Throwable e) {
              logger.debug(e.getMessage());
          }
          logger.debug("Could not find revision details, seems like development environment.");
      }
  
      @PreAuthorize("isAuthenticated() and hasPermission(#request, 'CREATE_REQUISITION')")
      @RequestMapping(method = RequestMethod.POST, value = "/trade/createrequisition")
      public @ResponseBody
      void createRequisition(@RequestBody CreateRequisitionRO[] request,
              @RequestHeader("validateOnly") boolean validateOnly) {
          logger.debug("Starting createRequisition()...");
          for (int i = 0; i &lt; request.length; i++) {
              CreateRequisitionRO requisitionRequest = request[i];
  
  
          {
              logger.debug("Record is for update ? {}", mr.isUpdate());
              logger.debug("attrs are {}", mr.getChangedRecord());
          }
          gateKeeper.route(request);
      }
  
      @PreAuthorize("isAuthenticated() and hasPermission(#request, 'CREATE_ORDER')")
      @RequestMapping(method = RequestMethod.POST, value = "/trade/createorder")
      public @ResponseBody
      void createOrder(@RequestBody CreateOrderRO request,
              @RequestHeader("validateOnly") boolean validateOnly) {
  
          TradeDtl orderRow = dbFuncs.references.tradeDtl.findByTransId(request
                  .getTransRef());
          d
  
  
          logger.debug("Starting createOrder()...");
          gateKeeper.route(request);
      }
  
      @RequestMapping(method = RequestMethod.POST, value = "/trade/confirmorder")
      public @ResponseBody
      void confirmOrder(@RequestBody ConfirmOrderRO request,
              @RequestHeader("validateOnly") boolean validateOnly) {
  
  
  
          logger.debug("Starting confirmOrder()...");
          gateKeeper.route(request);
      }
  
      @RequestMapping(method = RequestMethod.PUT, value = "/trade/review/approve")
      public @ResponseBody
      void approveReview(@RequestBody ApproveReviewRO request,
              @RequestHeader("validateOnly") boolean validateOnly) {
          logger.trace("approveReview({},{})", request, validateOnly);
          gateKeeper.route(request);
      }
  
      @RequestMapping(method = RequestMethod.PUT, value = "/trade/review/reject")
      public @ResponseBody
      void rejectReview(@RequestBody RejectReviewRO request,
              @RequestHeader("validateOnly") boolean validateOnly) {
          logger.trace("HexgenWebAPI.rejectReview({},{})", request, validateOnly);
          gateKeeper.route(request);
      }
  
      @RequestMapping(method = RequestMethod.PUT, value = "/upload/overwrite/approve")
      public @ResponseBody
      void approveUpload(@RequestBody ApproveReviewRO request,
              @RequestHeader("validateOnly") boolean validateOnly) {
          logger.trace("approveUpload({},{})", request, validateOnly);
          UploadJobMaster uploadJobMaster = dbFuncs.references.uploadJobMaster.findOne(request.getId());
          AbstractUploadOverwriteRO uploadAcceptRO = null;
          Class&lt;?&gt; loaderRO = null;
          try {
              String className = etlService.getOverwriteAcceptEventName(uploadJobMaster.getUploadGenericType());
              loaderRO = Class.forName(className);
              uploadAcceptRO = (AbstractUploadOverwriteRO) loaderRO.newInstance();
              uploadAcceptRO.setUploadID(uploadJobMaster.getUploadId());
          } catch (ClassNotFoundException e) {
              // TODO Auto-generated catch block
              e.printStackTrace();
          } catch (InstantiationException e) {
              // TODO Auto-generated catch block
              e.printStackTrace();
          } catch (IllegalAccessException e) {
              // TODO Auto-generated catch block
              e.printStackTrace();
          }
  
          gateKeeper.route((IRO) uploadAcceptRO);
      }
  
      @RequestMapping(method = RequestMethod.PUT, value = "/upload/overwrite/reject")
      public @ResponseBody
      void rejectUpload(@RequestBody RejectReviewRO request,
              @RequestHeader("validateOnly") boolean validateOnly) {
  
          try {
              String className = etlService.getOverwriteRejectEventName(uploadJobMaster.getUploadGenericType());
  
          } catch (ClassNotFoundException e) {
              // TODO Auto-generated catch block
              e.printStackTrace();
          } catch (InstantiationException e) {
              // TODO Auto-generated catch block
              e.printStackTrace();
          } catch (IllegalAccessException e) {
              // TODO Auto-generated catch block
              e.printStackTrace();
          }
  
          gateKeeper.route((IRO) uploadRejectRO);
      }
  
      @RequestMapping(method = RequestMethod.POST, value = "/upload/file")
      public @ResponseBody
      FileUploadResponse upload(@RequestParam("file") MultipartFile file) {
          FileUploadResponse fileUploadResponse = new FileUploadResponse();
  
          try {
              file.transferTo(tmpFile);
          } catch (IllegalStateException e) {
              // TODO Auto-generated catch block
              e.printStackTrace();
          } catch (IOException e) {
              // TODO Auto-generated catch block
              e.printStackTrace();
          }
          fileUploadResponse.setStatusMessage("passed");
          return fileUploadResponse;
      }
  
      @RequestMapping(method = RequestMethod.POST, value = "/upload/form/{uploadType}/{uploadName}")
      public @ResponseBody
      void uploadForm(@PathVariable String uploadType,
              @PathVariable String uploadName) {
          FileReceivedForUploadRO requisitionRequest = new FileReceivedForUploadRO(
  
          gateKeeper.route(requisitionRequest);
      }
  
      //Reports
      @PostFilter("isAuthenticated() and hasPermission(null, 'REPG' + filterObject.groupId)")
      @RequestMapping(method = RequestMethod.GET, value = "/reports/groups")
      public @ResponseBody
      List&lt;ReportsGroups&gt; RetrieveReportGroups() {
          UserDetails userDetails = (UserDetails) SecurityContextHolder.getContext().getAuthentication().getPrincipal();
  
          return biManager.getReportGroups();
      }
  
      @PostFilter("isAuthenticated() and hasPermission(null, 'REPN' + filterObject.reportId)")
      @RequestMapping(method = RequestMethod.GET, value = "/reports/list")
      public @ResponseBody
      List&lt;ReportNames&gt; RetrieveReports(@RequestParam("groupId") BigDecimal groupId) {
          return biManager.getReportNames(groupId);
      }
  
      @PreAuthorize("isAuthenticated() and hasPermission(null, 'REPN' + #reportId)")
      @RequestMapping(method = RequestMethod.GET, value = "/reports/fields")
      public @ResponseBody
      List&lt;FilterParameters&gt; RetrieveReportFields(@RequestParam("reportId") BigDecimal reportId) {
          ReportGroupMapping report = dbFuncs.references.reportGroupMapping.findOne(reportId);
          return biManager.getFilterParameters(report.getReportName());
      }
  
      @PreAuthorize("isAuthenticated() and hasPermission(null, 'REPN' + #request.reportId)")
      @RequestMapping(method = RequestMethod.POST, value = "/reports/generateurl")
      public @ResponseBody
      GenerateURLResponse generateURL(@RequestBody GenerateURLRO request) { 
          ReportGroupMapping report = dbFuncs.references.reportGroupMapping.findOne(request.getReportId());
          try {
              return new GenerateURLResponse(biManager.generateURL(report.getReportName(), request.getReportParameters()));
          } catch(BOValidationException e) {
              throw new ValidationException(e.getViolations());
          }
      }
  
      // TODO throw away code
      @RequestMapping(method = RequestMethod.POST, value = "/upload/eodprocess")
      public @ResponseBody
      void dayChange() {
          DayChangeRO dayChangeRO = new DayChangeRO();
          gateKeeper.route(dayChangeRO);
      }
  
      @RequestMapping(method = RequestMethod.GET, value = "/overview/holdings")
      public @ResponseBody
      List&lt;HoldingsRO&gt; generateHoldingsReport() {
          List&lt;HoldingsQO&gt; holdingsQO = dbFuncs.references.reportsMgrFinders
                  .getAllHoldings();
  
  
              holdingsRO.add(new HoldingsRO(holding.getAssetClass(), holding
                      .getUnRealTcy(), holding.getUnRealPcy()));
          }
  
          return holdingsRO;
      }
  
      @RequestMapping(method = RequestMethod.GET, value = "/overview/funds")
      public @ResponseBody
      List&lt;FundOverviewRO&gt; generatePortfolioTrend() {
          List&lt;FundOverviewQO&gt; fundOverviewQO = dbFuncs.references.reportsMgrFinders
                  .getPortfolioMovement();
  
          List&lt;FundOverviewRO&gt; fundOverviewRO = new ArrayList&lt;FundOverviewRO&gt;();
          .getLast30Day()));
          }
  
          return fundOverviewRO;
      }
  
      @RequestMapping(method = RequestMethod.GET, value = "/fund/holdings/{portfolio}")
      public @ResponseBody
      List&lt;HoldingsRO&gt; generateHoldingsReport(@PathVariable String portfolio) {
          List&lt;HoldingsQO&gt; holdingsQO = dbFuncs.references.reportsMgrFinders
                  .getFundHoldings(portfolio);
  
          List&lt;HoldingsRO&gt; holdingsRO = new ArrayList&lt;HoldingsRO&gt;();
          for (HoldingsQO holding : holdingsQO) {
              String securityDescription = holding.getSecurityDescription()
                      .substring(
                              0,
                              Math.min(holding.getSecurityDescription().length(),
                                      20));
              holdingsRO.add(new HoldingsRO(holding.getAssetClass(), holding
                      .getAccrIntTcy(), holding.getAodTcy(), holding
                      .getUnRealTcy(), holding.getUnRealPcy()));
          }
  
          return holdingsRO;
      }
  
      @RequestMapping(method = RequestMethod.GET, value = "/fund/concentration/{portfolio}")
      public @ResponseBody
      ConcentrationRO[] getConcentrationForFund(@PathVariable String portfolio) {
          List&lt;ConcentrationRO&gt; concentrations = new ArrayList&lt;ConcentrationRO&gt;();
  
          concentrations
                  .add(generateConcentrationRO(dbFuncs.references.concentrationFinders
                          .getAssetGroupExposureFor(userContext.getCompany(),
                                  portfolio)));
          concentrations
                  .add(generateConcentrationRO(dbFuncs.references.concentrationFinders
                          .getAssetClassExposureFor(userContext.getCompany(),
                                  portfolio)));
          concentrations
                  .add(generateConcentrationRO(dbFuncs.references.concentrationFinders
                          .getIndustryExposureFor(userContext.getCompany(),
                                  portfolio, "IND")));
  
          return concentrations
                  .toArray(new ConcentrationRO[concentrations.size()]);
      }
  
      @RequestMapping(method = RequestMethod.GET, value = "/overview/concentration")
      public @ResponseBody
      ConcentrationRO[] getConcentrationForFund() {
          List&lt;ConcentrationRO&gt; concentrations = new ArrayList&lt;ConcentrationRO&gt;();
  
          concentrations
                  .add(generateConcentrationRO(dbFuncs.references.concentrationFinders
                          .getAssetGroupExposureFor(userContext.getCompany())));
          concentrations
                  .add(generateConcentrationRO(dbFuncs.references.concentrationFinders
                          .getAssetClassExposureFor(userContext.getCompany())));
          concentrations
                  .add(generateConcentrationRO(dbFuncs.references.concentrationFinders
                          .getIndustryExposureFor(userContext.getCompany(), "IND")));
  
          return concentrations
                  .toArray(new ConcentrationRO[concentrations.size()]);
      }
  
      public ConcentrationRO generateConcentrationRO(
              ConcentrationFinders concentrationFinder) {
          ConcentrationRO concentrationRO = new ConcentrationRO();
  
  
  
          for (ValueQO valueQO : concentrationFinder.getValues()) {
              concentrationRO.addValue(valueQO.getName(), valueQO.getActual(),
                      valueQO.getGuidance());
          }
  
          return concentrationRO;
      }
  
      @RequestMapping(method = RequestMethod.POST, value = "/c4/execute")
      public @ResponseBody
      void executeC4Command(@RequestBody C4CommandRO request) {
  
          logger.debug("Received command for execution : " + request.getCmd());
  
          try {
  
              Matcher matcher = c4Pattern.matcher(request.getCmd());
              if (matcher.matches()) {
                  String parsedTransCode = matcher.group(1);
  
              } else {
                  logger.debug("Invalid C4 command");
                  throw new RuntimeException();
              }
          } catch (Throwable e) {
              logger.debug("Ooops !! C4 command execution failed - "
                      + e.getMessage());
              throw new RuntimeException(e);
          }
  
      }
  
      // FIXME C4 throw away code
      private void createRequisitionThroughC4(String security, String transCode,
              BigDecimal price, BigDecimal quantity) {
  
          logger.debug("Starting createRequisition() through C4...");
  
          try {
  
  
              Security securityRow = dbFuncs.references.security
                      .findBySecurity(security);
  
              if (securityRow.getIsIntApplic() || securityRow.getIsDiscounted()) {
                  createRequisition.setYtm(ytmCalc.computeXIRR(security, price,
                          userContext.getBusinessDate()));
              } else {
                  createRequisition.setYtm(BigDecimal.ZERO);
              }
  
              SystemDefault defaults = dbFuncs.references.systemDefault
                      .findByParamLevelAndCompanyAndDivisionAndPortfolio(
                              ParamLevel.PF, userContext.getCompany(),
                              userContext.getDivision(), portfolio);
  
              OutputValuesFromInvestmentsDO response = financialCalculator
                      .costSettlementCalculator(input);
  
              createRequisition.setTransSrlNo(BigDecimal.ONE);
              if (transCode.equals("BUY")) {
                  createRequisition.setInflowOutflow(InflowOutflow.I);
              } else {
                  createRequisition.setInflowOutflow(InflowOutflow.O);
              }
              createRequisition.setFundManager(createRequisition.getUserId());
              createRequisition.setCustodianN(defaults.getCustodianN());
  
              gateKeeper.route(createRequisition);
  
          } catch (Throwable e) {
              logger.debug("Ooops !! C4 command execution failed - "
                      + e.getMessage());
              throw new RuntimeException(e);
          }
  
      }
  
  }
  </code></pre>
  
  <p>but the folloing is the out put i get where i see many methods are not present in the class :</p>
  
  <pre><code>1:ajc$get$validator
  Parameter Type : com.hexgen.api.facade.HexgenWebAPI
  2:ajc$set$validator
  Parameter Type : com.hexgen.api.facade.HexgenWebAPI
  Parameter Type : javax.validation.Validator
  3:ajc$get$requestToEventTranslator
  Parameter Type : com.hexgen.api.facade.HexgenWebAPI
  4:ajc$set$requestToEventTranslator
  Parameter Type : com.hexgen.api.facade.HexgenWebAPI
  Parameter Type : com.hexgen.p0.translator.RequestToEventTranslator
  5:ajc$interMethodDispatch2$com_hexgen_api_facade_HexgenWebAPIValidation$validate
  Parameter Type : com.hexgen.ro.IRO
  6:handleValidationException
  Parameter Type : com.hexgen.api.facade.ValidationException
  7:createRequisition
  Parameter Type : [Lcom.hexgen.ro.request.CreateRequisitionRO;
  Parameter Type : boolean
  8:getLoggedinUserDetails
  9:populateImplementationDetails
  Parameter Type : com.hexgen.ro.response.UserDetailsResponse
  10:excelMDM
  Parameter Type : com.hexgen.ro.request.MdmFromExcelRO
  11:createOrder
  Parameter Type : com.hexgen.ro.request.CreateOrderRO
  Parameter Type : boolean
  12:confirmOrder
  Parameter Type : com.hexgen.ro.request.ConfirmOrderRO
  Parameter Type : boolean
  13:approveReview
  Parameter Type : com.hexgen.ro.request.ApproveReviewRO
  Parameter Type : boolean
  14:rejectReview
  Parameter Type : com.hexgen.ro.request.RejectReviewRO
  Parameter Type : boolean
  15:approveUpload
  Parameter Type : com.hexgen.ro.request.ApproveReviewRO
  Parameter Type : boolean
  16:rejectUpload
  Parameter Type : com.hexgen.ro.request.RejectReviewRO
  Parameter Type : boolean
  17:upload
  Parameter Type : org.springframework.web.multipart.MultipartFile
  18:uploadForm
  Parameter Type : java.lang.String
  Parameter Type : java.lang.String
  19:RetrieveReportGroups
  20:RetrieveReports
  Parameter Type : java.math.BigDecimal
  21:RetrieveReportFields
  Parameter Type : java.math.BigDecimal
  22:generateURL
  Parameter Type : com.hexgen.ro.request.GenerateURLRO
  23:dayChange
  24:generateHoldingsReport
  25:generateHoldingsReport
  Parameter Type : java.lang.String
  26:generatePortfolioTrend
  27:getConcentrationForFund
  Parameter Type : java.lang.String
  28:getConcentrationForFund
  29:generateConcentrationRO
  Parameter Type : com.hexgen.core.orm.finders.repositories.ConcentrationFinders
  30:executeC4Command
  Parameter Type : com.hexgen.ro.request.C4CommandRO
  31:createRequisitionThroughC4
  Parameter Type : java.lang.String
  Parameter Type : java.lang.String
  Parameter Type : java.math.BigDecimal
  Parameter Type : java.math.BigDecimal
  32:createRequisition_aroundBody0
  Parameter Type : com.hexgen.api.facade.HexgenWebAPI
  Parameter Type : [Lcom.hexgen.ro.request.CreateRequisitionRO;
  Parameter Type : boolean
  33:createRequisition_aroundBody1$advice
  Parameter Type : com.hexgen.api.facade.HexgenWebAPI
  Parameter Type : [Lcom.hexgen.ro.request.CreateRequisitionRO;
  Parameter Type : boolean
  Parameter Type : com.hexgen.api.facade.HexgenWebAPIValidation
  Parameter Type : [Lcom.hexgen.ro.IRO;
  Parameter Type : boolean
  Parameter Type : com.hexgen.api.facade.HexgenWebAPI
  Parameter Type : org.aspectj.runtime.internal.AroundClosure
  34:createOrder_aroundBody2
  Parameter Type : com.hexgen.api.facade.HexgenWebAPI
  Parameter Type : com.hexgen.ro.request.CreateOrderRO
  Parameter Type : boolean
  35:createOrder_aroundBody3$advice
  Parameter Type : com.hexgen.api.facade.HexgenWebAPI
  Parameter Type : com.hexgen.ro.request.CreateOrderRO
  Parameter Type : boolean
  Parameter Type : com.hexgen.api.facade.HexgenWebAPIValidation
  Parameter Type : com.hexgen.ro.IRO
  Parameter Type : boolean
  Parameter Type : com.hexgen.api.facade.HexgenWebAPI
  Parameter Type : org.aspectj.runtime.internal.AroundClosure
  36:confirmOrder_aroundBody4
  Parameter Type : com.hexgen.api.facade.HexgenWebAPI
  Parameter Type : com.hexgen.ro.request.ConfirmOrderRO
  Parameter Type : boolean
  37:confirmOrder_aroundBody5$advice
  Parameter Type : com.hexgen.api.facade.HexgenWebAPI
  Parameter Type : com.hexgen.ro.request.ConfirmOrderRO
  Parameter Type : boolean
  Parameter Type : com.hexgen.api.facade.HexgenWebAPIValidation
  Parameter Type : com.hexgen.ro.IRO
  Parameter Type : boolean
  Parameter Type : com.hexgen.api.facade.HexgenWebAPI
  Parameter Type : org.aspectj.runtime.internal.AroundClosure
  38:approveReview_aroundBody6
  Parameter Type : com.hexgen.api.facade.HexgenWebAPI
  Parameter Type : com.hexgen.ro.request.ApproveReviewRO
  Parameter Type : boolean
  39:approveReview_aroundBody7$advice
  Parameter Type : com.hexgen.api.facade.HexgenWebAPI
  Parameter Type : com.hexgen.ro.request.ApproveReviewRO
  Parameter Type : boolean
  Parameter Type : com.hexgen.api.facade.HexgenWebAPIValidation
  Parameter Type : com.hexgen.ro.IRO
  Parameter Type : boolean
  Parameter Type : com.hexgen.api.facade.HexgenWebAPI
  Parameter Type : org.aspectj.runtime.internal.AroundClosure
  40:rejectReview_aroundBody8
  Parameter Type : com.hexgen.api.facade.HexgenWebAPI
  Parameter Type : com.hexgen.ro.request.RejectReviewRO
  Parameter Type : boolean
  41:rejectReview_aroundBody9$advice
  Parameter Type : com.hexgen.api.facade.HexgenWebAPI
  Parameter Type : com.hexgen.ro.request.RejectReviewRO
  Parameter Type : boolean
  Parameter Type : com.hexgen.api.facade.HexgenWebAPIValidation
  Parameter Type : com.hexgen.ro.IRO
  Parameter Type : boolean
  Parameter Type : com.hexgen.api.facade.HexgenWebAPI
  Parameter Type : org.aspectj.runtime.internal.AroundClosure
  42:approveUpload_aroundBody10
  Parameter Type : com.hexgen.api.facade.HexgenWebAPI
  Parameter Type : com.hexgen.ro.request.ApproveReviewRO
  Parameter Type : boolean
  43:approveUpload_aroundBody11$advice
  Parameter Type : com.hexgen.api.facade.HexgenWebAPI
  Parameter Type : com.hexgen.ro.request.ApproveReviewRO
  Parameter Type : boolean
  Parameter Type : com.hexgen.api.facade.HexgenWebAPIValidation
  Parameter Type : com.hexgen.ro.IRO
  Parameter Type : boolean
  Parameter Type : com.hexgen.api.facade.HexgenWebAPI
  Parameter Type : org.aspectj.runtime.internal.AroundClosure
  44:rejectUpload_aroundBody12
  Parameter Type : com.hexgen.api.facade.HexgenWebAPI
  Parameter Type : com.hexgen.ro.request.RejectReviewRO
  Parameter Type : boolean
  45:rejectUpload_aroundBody13$advice
  Parameter Type : com.hexgen.api.facade.HexgenWebAPI
  Parameter Type : com.hexgen.ro.request.RejectReviewRO
  Parameter Type : boolean
  Parameter Type : com.hexgen.api.facade.HexgenWebAPIValidation
  Parameter Type : com.hexgen.ro.IRO
  Parameter Type : boolean
  Parameter Type : com.hexgen.api.facade.HexgenWebAPI
  Parameter Type : org.aspectj.runtime.internal.AroundClosure
  46:ajc$preClinit
  </code></pre>