Package org.apache.derby.iapi.services.loader

Examples of org.apache.derby.iapi.services.loader.GeneratedClass


        ** recompiled.  Get a new Activation and check whether the
        ** parameters are compatible.  If so, transfer the parameters
        ** from the old Activation to the new one, and make that the
        ** current Activation.  If not, throw an exception.
        */
        GeneratedClass    newGC = ps.getActivationClass();

        BaseActivation    newAC = (BaseActivation) newGC.newInstance(lcc);

        DataTypeDescriptor[]  newParamTypes = ps.getParameterTypes();

        /*
        ** Link the new activation to the prepared statement.
View Full Code Here


    GenericPreparedStatement ps = cs.getPreparedStatement();

    synchronized (ps) {
      if (ps.upToDate()) {
        GeneratedClass ac = ps.getActivationClass();

        // Check to see if the statement was prepared before some change
        // in the class loading set. If this is the case then force it to be invalid
        int currentClasses =
            getLanguageConnectionFactory().getClassFactory().getClassLoaderVersion();

        if (ac.getClassLoaderVersion() != currentClasses) {
          ps.makeInvalid(DependencyManager.INTERNAL_RECOMPILE_REQUEST, this);
        }

        // note that the PreparedStatement is not kept in the cache. This is because
        // having items kept in the cache that ultimately are held onto by
View Full Code Here

                  boolean scrollable)
    throws StandardException
  {
    Activation ac;
    synchronized (this) {
      GeneratedClass gc = getActivationClass();

      if (gc == null) {
        rePrepare(lcc);
        gc = getActivationClass();
      }
View Full Code Here

            {
              throw StandardException.newException(SQLState.LANG_STOP_AFTER_OPTIMIZING);
            }
          }

          GeneratedClass ac = qt.generate(preparedStmt.getByteCodeSaver());

          generateTime = getCurrentTimeMillis(lcc);
          /* endTimestamp only meaningful if generateTime is meaningful.
           * generateTime is meaningful if STATISTICS TIMING is ON.
           */
 
View Full Code Here

            final boolean needNewClass =
                    gc == null || gc != ps.getActivationClass();
      if (needNewClass || !ac.isValid())
      {

                GeneratedClass newGC;

        if (needNewClass) {
                    // The statement has been re-prepared since the last time
                    // we executed it. Get the new activation class.
                    newGC = ps.getActivationClass();
                    if (newGC == null) {
                        // There is no class associated with the statement.
                        // Tell the caller that the statement needs to be
                        // recompiled.
                        throw StandardException.newException(
                                SQLState.LANG_STATEMENT_NEEDS_RECOMPILE);
                    }
        } else {
          // Reuse the generated class, we just want a new activation
          // since the old is no longer valid.
          newGC = gc;
        }


        /*
        ** If we get here, it means the Activation has been invalidated
        ** or the PreparedStatement has been recompiled.  Get a new
        ** Activation and check whether the parameters are compatible.
        ** If so, transfer the parameters from the old Activation to
        ** the new one, and make that the current Activation.  If not,
        ** throw an exception.
        */
        BaseActivation    newAC = (BaseActivation) newGC.newInstance(lcc);

        DataTypeDescriptor[]  newParamTypes = ps.getParameterTypes();

        /*
        ** Link the new activation to the prepared statement.
View Full Code Here

                  boolean scrollable)
    throws StandardException
  {
    Activation ac;
    synchronized (this) {
      GeneratedClass gc = getActivationClass();

      if (gc == null) {
        rePrepare(lcc);
        gc = getActivationClass();
      }
View Full Code Here

            {
              throw StandardException.newException(SQLState.LANG_STOP_AFTER_OPTIMIZING);
            }
          }

          GeneratedClass ac = qt.generate(preparedStmt.getByteCodeSaver());

          generateTime = getCurrentTimeMillis(lcc);
          /* endTimestamp only meaningful if generateTime is meaningful.
           * generateTime is meaningful if STATISTICS TIMING is ON.
           */
 
View Full Code Here

        //bug 4579 - gcDuringGetMetaData will be null if this is the first time
        //getMetaData call is made.
        //Second check - if the statement was revalidated since last getMetaData call,
        //then gcDuringGetMetaData wouldn't match with current generated class name

                GeneratedClass currAc = null;
                ResultDescription resd = null;

                synchronized(execp) {
                    // DERBY-3823 Some other thread may be repreparing
                    do {
                        while (!execp.upToDate()) {
                            execp.rePrepare(lcc);
                        }

                        currAc = execp.getActivationClass();
                        resd = execp.getResultDescription();
                    } while (currAc == null);
                }

                if (gcDuringGetMetaData == null ||
                        !gcDuringGetMetaData.equals(currAc.getName())) {
                    rMetaData = null;
                    gcDuringGetMetaData = currAc.getName();
                }

                if (rMetaData == null && resd != null) {
                    // Internally, the result description has information
                    // which is used for insert, update and delete statements
View Full Code Here

    ** Put them in the compilation context -- this is where
    ** they are expected.
    */
    getCompilerContext().setSavedObjects(ps.getSavedObjects());
    getCompilerContext().setCursorInfo(ps.getCursorInfo());
    GeneratedClass gc = ps.getActivationClass();
   
    return gc;
  }
View Full Code Here

    generatingClass.finishConstructor();

    try {
      // cook the completed class into a real class
      // and stuff it into activationClass
      GeneratedClass activationClass = generatingClass.getGeneratedClass(byteCode);

      return activationClass;
    } catch (StandardException e) {
     
      String msgId = e.getMessageId();
View Full Code Here

TOP

Related Classes of org.apache.derby.iapi.services.loader.GeneratedClass

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.