Examples of ClassFormatException


Examples of org.aspectj.org.eclipse.jdt.core.util.ClassFormatException

    this.handlerPC = u2At(classFileBytes, 4, offset);
    this.catchTypeIndex = u2At(classFileBytes, 6, offset);
    if (this.catchTypeIndex != 0) {
      IConstantPoolEntry constantPoolEntry = constantPool.decodeEntry(this.catchTypeIndex);
      if (constantPoolEntry.getKind() != IConstantPoolConstant.CONSTANT_Class) {
        throw new ClassFormatException(ClassFormatException.INVALID_CONSTANT_POOL_ENTRY);
      }
      this.catchType = constantPoolEntry.getClassInfoName();
    }
  }
View Full Code Here

Examples of org.aspectj.org.eclipse.jdt.core.util.ClassFormatException

    int constantPoolCount;
    int[] constantPoolOffsets;
    try {
      this.magicNumber = (int) u4At(classFileBytes, 0, 0);
      if (this.magicNumber != 0xCAFEBABE) {
        throw new ClassFormatException(ClassFormatException.INVALID_MAGIC_NUMBER);
      }
     
      int readOffset = 10;
      this.minorVersion = this.u2At(classFileBytes, 4, 0);
      this.majorVersion = this.u2At(classFileBytes, 6, 0);
     
      if ((decodingFlags & IClassFileReader.CONSTANT_POOL) == 0) {
        // no need to go further
        return;
      }
     
      constantPoolCount = this.u2At(classFileBytes, 8, 0);
      // Pass #1 - Fill in all primitive constants
      constantPoolOffsets = new int[constantPoolCount];
      for (int i = 1; i < constantPoolCount; i++) {
        int tag = this.u1At(classFileBytes, readOffset, 0);
        switch (tag) {
          case IConstantPoolConstant.CONSTANT_Utf8 :
            constantPoolOffsets[i] = readOffset;
            readOffset += u2At(classFileBytes, readOffset + 1, 0);
            readOffset += IConstantPoolConstant.CONSTANT_Utf8_SIZE;
            break;
          case IConstantPoolConstant.CONSTANT_Integer :
            constantPoolOffsets[i] = readOffset;
            readOffset += IConstantPoolConstant.CONSTANT_Integer_SIZE;
            break;
          case IConstantPoolConstant.CONSTANT_Float :
            constantPoolOffsets[i] = readOffset;
            readOffset += IConstantPoolConstant.CONSTANT_Float_SIZE;
            break;
          case IConstantPoolConstant.CONSTANT_Long :
            constantPoolOffsets[i] = readOffset;
            readOffset += IConstantPoolConstant.CONSTANT_Long_SIZE;
            i++;
            break;
          case IConstantPoolConstant.CONSTANT_Double :
            constantPoolOffsets[i] = readOffset;
            readOffset += IConstantPoolConstant.CONSTANT_Double_SIZE;
            i++;
            break;
          case IConstantPoolConstant.CONSTANT_Class :
            constantPoolOffsets[i] = readOffset;
            readOffset += IConstantPoolConstant.CONSTANT_Class_SIZE;
            break;
          case IConstantPoolConstant.CONSTANT_String :
            constantPoolOffsets[i] = readOffset;
            readOffset += IConstantPoolConstant.CONSTANT_String_SIZE;
            break;
          case IConstantPoolConstant.CONSTANT_Fieldref :
            constantPoolOffsets[i] = readOffset;
            readOffset += IConstantPoolConstant.CONSTANT_Fieldref_SIZE;
            break;
          case IConstantPoolConstant.CONSTANT_Methodref :
            constantPoolOffsets[i] = readOffset;
            readOffset += IConstantPoolConstant.CONSTANT_Methodref_SIZE;
            break;
          case IConstantPoolConstant.CONSTANT_InterfaceMethodref :
            constantPoolOffsets[i] = readOffset;
            readOffset += IConstantPoolConstant.CONSTANT_InterfaceMethodref_SIZE;
            break;
          case IConstantPoolConstant.CONSTANT_NameAndType :
            constantPoolOffsets[i] = readOffset;
            readOffset += IConstantPoolConstant.CONSTANT_NameAndType_SIZE;
            break;
          default:
            throw new ClassFormatException(ClassFormatException.INVALID_TAG_CONSTANT);
        }
      }
     
      this.constantPool = new ConstantPool(classFileBytes, constantPoolOffsets);
      // Read and validate access flags
      this.accessFlags = u2At(classFileBytes, readOffset, 0);
      readOffset += 2;
 
      // Read the classname, use exception handlers to catch bad format
      this.classNameIndex = u2At(classFileBytes, readOffset, 0);
      this.className = getConstantClassNameAt(classFileBytes, constantPoolOffsets, this.classNameIndex);
      readOffset += 2;
 
      // Read the superclass name, can be zero for java.lang.Object
      this.superclassNameIndex = u2At(classFileBytes, readOffset, 0);
      readOffset += 2;
      // if superclassNameIndex is equals to 0 there is no need to set a value for the
      // field this.superclassName. null is fine.
      if (superclassNameIndex != 0) {
        this.superclassName = getConstantClassNameAt(classFileBytes, constantPoolOffsets, this.superclassNameIndex);
      }
 
      // Read the interfaces, use exception handlers to catch bad format
      this.interfacesCount = u2At(classFileBytes, readOffset, 0);
      readOffset += 2;
      this.interfaceNames = NO_INTERFACES_NAMES;
      this.interfaceIndexes = Util.EMPTY_INT_ARRAY;
      if (this.interfacesCount != 0) {
        if ((decodingFlags & IClassFileReader.SUPER_INTERFACES) != IClassFileReader.CONSTANT_POOL) {
          this.interfaceNames = new char[this.interfacesCount][];
          this.interfaceIndexes = new int[this.interfacesCount];
          for (int i = 0; i < this.interfacesCount; i++) {
            this.interfaceIndexes[i] = u2At(classFileBytes, readOffset, 0);
            this.interfaceNames[i] = getConstantClassNameAt(classFileBytes, constantPoolOffsets, this.interfaceIndexes[i]);
            readOffset += 2;
          }
        } else {
          readOffset += (2 * this.interfacesCount);
        }
      }
      // Read the this.fields, use exception handlers to catch bad format
      this.fieldsCount = u2At(classFileBytes, readOffset, 0);
      readOffset += 2;
      this.fields = NO_FIELD_INFOS;
      if (this.fieldsCount != 0) {
        if ((decodingFlags & IClassFileReader.FIELD_INFOS) != IClassFileReader.CONSTANT_POOL) {
          FieldInfo field;
          this.fields = new FieldInfo[this.fieldsCount];
          for (int i = 0; i < this.fieldsCount; i++) {
            field = new FieldInfo(classFileBytes, this.constantPool, readOffset);
            this.fields[i] = field;
            readOffset += field.sizeInBytes();
          }
        } else {
          for (int i = 0; i < this.fieldsCount; i++) {
            int attributeCountForField = u2At(classFileBytes, 6, readOffset);
            readOffset += 8;
            if (attributeCountForField != 0) {
              for (int j = 0; j < attributeCountForField; j++) {
                int attributeLength = (int) u4At(classFileBytes, 2, readOffset);
                readOffset += (6 + attributeLength);
              }
            }
          }         
        }
      }
      // Read the this.methods
      this.methodsCount = u2At(classFileBytes, readOffset, 0);
      readOffset += 2;
      this.methods = NO_METHOD_INFOS;
      if (this.methodsCount != 0) {
        if ((decodingFlags & IClassFileReader.METHOD_INFOS) != IClassFileReader.CONSTANT_POOL) {
          this.methods = new MethodInfo[this.methodsCount];
          MethodInfo method;
          for (int i = 0; i < this.methodsCount; i++) {
            method = new MethodInfo(classFileBytes, this.constantPool, readOffset, decodingFlags);
            this.methods[i] = method;
            readOffset += method.sizeInBytes();
          }
        } else {
          for (int i = 0; i < this.methodsCount; i++) {
            int attributeCountForMethod = u2At(classFileBytes, 6, readOffset);
            readOffset += 8;
            if (attributeCountForMethod != 0) {
              for (int j = 0; j < attributeCountForMethod; j++) {
                int attributeLength = (int) u4At(classFileBytes, 2, readOffset);
                readOffset += (6 + attributeLength);
              }
            }
          }         
        }
      }
 
      // Read the attributes
      this.attributesCount = u2At(classFileBytes, readOffset, 0);
      readOffset += 2;
 
      int attributesIndex = 0;
      this.attributes = ClassFileAttribute.NO_ATTRIBUTES;
      if (this.attributesCount != 0) {
        if ((decodingFlags & IClassFileReader.CLASSFILE_ATTRIBUTES) != IClassFileReader.CONSTANT_POOL) {
          this.attributes = new IClassFileAttribute[this.attributesCount];
          for (int i = 0; i < attributesCount; i++) {
            int utf8Offset = constantPoolOffsets[u2At(classFileBytes, readOffset, 0)];
            char[] attributeName = utf8At(classFileBytes, utf8Offset + 3, 0, u2At(classFileBytes, utf8Offset + 1, 0));
            if (equals(attributeName, IAttributeNamesConstants.INNER_CLASSES)) {
              this.innerClassesAttribute = new InnerClassesAttribute(classFileBytes, this.constantPool, readOffset);
              this.attributes[attributesIndex++] = this.innerClassesAttribute;
            } else if (equals(attributeName, IAttributeNamesConstants.SOURCE)) {
              this.sourceFileAttribute = new SourceFileAttribute(classFileBytes, this.constantPool, readOffset);
              this.attributes[attributesIndex++] = this.sourceFileAttribute;
            } else if (equals(attributeName, IAttributeNamesConstants.ENCLOSING_METHOD)) {
              this.attributes[attributesIndex++] = new EnclosingMethodAttribute(classFileBytes, this.constantPool, readOffset);
            } else if (equals(attributeName, IAttributeNamesConstants.SIGNATURE)) {
              this.attributes[attributesIndex++] = new SignatureAttribute(classFileBytes, this.constantPool, readOffset);
            } else if (equals(attributeName, IAttributeNamesConstants.RUNTIME_VISIBLE_ANNOTATIONS)) {
              this.attributes[attributesIndex++] = new RuntimeVisibleAnnotationsAttribute(classFileBytes, this.constantPool, readOffset);
            } else if (equals(attributeName, IAttributeNamesConstants.RUNTIME_INVISIBLE_ANNOTATIONS)) {
              this.attributes[attributesIndex++] = new RuntimeInvisibleAnnotationsAttribute(classFileBytes, this.constantPool, readOffset);
            } else {
              this.attributes[attributesIndex++] = new ClassFileAttribute(classFileBytes, this.constantPool, readOffset);
            }
            readOffset += (6 + u4At(classFileBytes, readOffset + 2, 0));
          }         
        } else {
          for (int i = 0; i < attributesCount; i++) {
            readOffset += (6 + u4At(classFileBytes, readOffset + 2, 0));
          }
        }
      }
      if (readOffset != classFileBytes.length) {
        throw new ClassFormatException(ClassFormatException.TOO_MANY_BYTES);
      }
    } catch(ClassFormatException e) {
      throw e;
    } catch (Exception e) {
      e.printStackTrace();
      throw new ClassFormatException(ClassFormatException.ERROR_TRUNCATED_INPUT);
    }
  }
View Full Code Here

Examples of org.aspectj.org.eclipse.jdt.core.util.ClassFormatException

    }
   
    this.nameIndex = u2At(classFileBytes, 2, offset);
    IConstantPoolEntry constantPoolEntry = constantPool.decodeEntry(this.nameIndex);
    if (constantPoolEntry.getKind() != IConstantPoolConstant.CONSTANT_Utf8) {
      throw new ClassFormatException(ClassFormatException.INVALID_CONSTANT_POOL_ENTRY);
    }
    this.name = constantPoolEntry.getUtf8Value();
   
    this.descriptorIndex = u2At(classFileBytes, 4, offset);
    constantPoolEntry = constantPool.decodeEntry(this.descriptorIndex);
    if (constantPoolEntry.getKind() != IConstantPoolConstant.CONSTANT_Utf8) {
      throw new ClassFormatException(ClassFormatException.INVALID_CONSTANT_POOL_ENTRY);
    }
    this.descriptor = constantPoolEntry.getUtf8Value();
   
    this.attributesCount = u2At(classFileBytes, 6, offset);
    this.attributes = ClassFileAttribute.NO_ATTRIBUTES;
    if (this.attributesCount != 0) {
      if (no_code_attribute && !isAbstract() && !isNative()) {
        if (this.attributesCount != 1) {
          this.attributes = new IClassFileAttribute[this.attributesCount - 1];
        }
      } else {
        this.attributes = new IClassFileAttribute[this.attributesCount];
      }
    }
    int attributesIndex = 0;
    int readOffset = 8;
    for (int i = 0; i < this.attributesCount; i++) {
      constantPoolEntry = constantPool.decodeEntry(u2At(classFileBytes, readOffset, offset));
      if (constantPoolEntry.getKind() != IConstantPoolConstant.CONSTANT_Utf8) {
        throw new ClassFormatException(ClassFormatException.INVALID_CONSTANT_POOL_ENTRY);
      }
      char[] attributeName = constantPoolEntry.getUtf8Value();
      if (equals(attributeName, IAttributeNamesConstants.DEPRECATED)) {
        this.isDeprecated = true;
        this.attributes[attributesIndex++] = new ClassFileAttribute(classFileBytes, constantPool, offset + readOffset);
View Full Code Here

Examples of org.aspectj.org.eclipse.jdt.core.util.ClassFormatException

  public ClassFileAttribute(byte[] classFileBytes, IConstantPool constantPool, int offset) throws ClassFormatException {
    this.attributeNameIndex = u2At(classFileBytes, 0, offset);
    this.attributeLength = u4At(classFileBytes, 2, offset);
    IConstantPoolEntry constantPoolEntry = constantPool.decodeEntry(this.attributeNameIndex);
    if (constantPoolEntry.getKind() != IConstantPoolConstant.CONSTANT_Utf8) {
      throw new ClassFormatException(ClassFormatException.INVALID_CONSTANT_POOL_ENTRY);
    }
    this.attributeName = constantPoolEntry.getUtf8Value();
  }
View Full Code Here

Examples of org.aspectj.org.eclipse.jdt.core.util.ClassFormatException

      this.nameIndex = u2At(classFileBytes, 4, offset);
      this.descriptorIndex = u2At(classFileBytes, 6, offset);
      this.index = u2At(classFileBytes, 8, offset);
      IConstantPoolEntry constantPoolEntry = constantPool.decodeEntry(this.nameIndex);
      if (constantPoolEntry.getKind() != IConstantPoolConstant.CONSTANT_Utf8) {
        throw new ClassFormatException(ClassFormatException.INVALID_CONSTANT_POOL_ENTRY);
      }
      this.name = constantPoolEntry.getUtf8Value();
      constantPoolEntry = constantPool.decodeEntry(this.descriptorIndex);
      if (constantPoolEntry.getKind() != IConstantPoolConstant.CONSTANT_Utf8) {
        throw new ClassFormatException(ClassFormatException.INVALID_CONSTANT_POOL_ENTRY);
      }
      this.descriptor = constantPoolEntry.getUtf8Value();
    }
View Full Code Here

Examples of org.aspectj.org.eclipse.jdt.internal.compiler.classfmt.ClassFormatException

            return convertToArrayType(LONG, arrayDim);
          return LONG;
         
        case 'L':
          int indexOfSemiColon = CharOperation.indexOf(';', signature, i+1);
          if (indexOfSemiColon == -1) throw new ClassFormatException(ClassFormatException.ErrInvalidMethodSignature);
          if (arrayDim > 0) {
            return convertToArrayType(replace('/','.',CharOperation.subarray(signature, i + 1, indexOfSemiColon)), arrayDim);
          }
          return replace('/','.',CharOperation.subarray(signature, i + 1, indexOfSemiColon));
         
        case 'S':
          if (arrayDim > 0)
            return convertToArrayType(SHORT, arrayDim);
          return SHORT;
         
        case 'Z':
          if (arrayDim > 0)
            return convertToArrayType(BOOLEAN, arrayDim);
          return BOOLEAN;
         
        case 'V':
          return VOID;
         
        case '[':
          arrayDim++;
          break;
         
        default:
          throw new ClassFormatException(ClassFormatException.ErrInvalidMethodSignature);
      }
    }
    return null;
  }
View Full Code Here

Examples of org.aspectj.org.eclipse.jdt.internal.compiler.classfmt.ClassFormatException

    if (indexOfClosingParen == 1) {
      // there is no parameter
      return null;
    }
    if (indexOfClosingParen == -1) {
      throw new ClassFormatException(ClassFormatException.ErrInvalidMethodSignature);
    }
    char[][] parameterTypes = new char[3][];
    int parameterTypesCounter = 0;
    int arrayDim = 0;
    for (int i = 1; i < indexOfClosingParen; i++) {
      if (parameterTypesCounter == parameterTypes.length) {
        // resize
        System.arraycopy(parameterTypes, 0, (parameterTypes = new char[parameterTypesCounter * 2][]), 0, parameterTypesCounter);
      }
      switch(signature[i]) {
        case 'B':
          parameterTypes[parameterTypesCounter++] = BYTE;
          if (arrayDim > 0)
            convertToArrayType(parameterTypes, parameterTypesCounter-1, arrayDim);
          arrayDim = 0;
          break;
         
        case 'C':
          parameterTypes[parameterTypesCounter++] = CHAR;
          if (arrayDim > 0)
            convertToArrayType(parameterTypes, parameterTypesCounter-1, arrayDim);
          arrayDim = 0;
          break;

        case 'D':
          parameterTypes[parameterTypesCounter++] = DOUBLE;
          if (arrayDim > 0)
            convertToArrayType(parameterTypes, parameterTypesCounter-1, arrayDim);
          arrayDim = 0;
          break;

        case 'F':
          parameterTypes[parameterTypesCounter++] = FLOAT;
          if (arrayDim > 0)
            convertToArrayType(parameterTypes, parameterTypesCounter-1, arrayDim);
          arrayDim = 0;
          break;
         
        case 'I':
          parameterTypes[parameterTypesCounter++] = INT;
          if (arrayDim > 0)
            convertToArrayType(parameterTypes, parameterTypesCounter-1, arrayDim);
          arrayDim = 0;
          break;
         
        case 'J':
          parameterTypes[parameterTypesCounter++] = LONG;
          if (arrayDim > 0)
            convertToArrayType(parameterTypes, parameterTypesCounter-1, arrayDim);
          arrayDim = 0;
          break;

        case 'L':
          int indexOfSemiColon = CharOperation.indexOf(';', signature, i+1);
          if (indexOfSemiColon == -1) throw new ClassFormatException(ClassFormatException.ErrInvalidMethodSignature);
          if (firstIsSynthetic && parameterTypesCounter == 0) {
            // skip first synthetic parameter
            firstIsSynthetic = false;
          } else {
            parameterTypes[parameterTypesCounter++] = replace('/','.',CharOperation.subarray(signature, i + 1, indexOfSemiColon));
            if (arrayDim > 0)
              convertToArrayType(parameterTypes, parameterTypesCounter-1, arrayDim);
          }
          i = indexOfSemiColon;
          arrayDim = 0;
          break;

        case 'S':
          parameterTypes[parameterTypesCounter++] = SHORT;
          if (arrayDim > 0)
            convertToArrayType(parameterTypes, parameterTypesCounter-1, arrayDim);
          arrayDim = 0;
          break;

        case 'Z':
          parameterTypes[parameterTypesCounter++] = BOOLEAN;
          if (arrayDim > 0)
            convertToArrayType(parameterTypes, parameterTypesCounter-1, arrayDim);
          arrayDim = 0;
          break;

        case '[':
          arrayDim++;
          break;
         
        default:
          throw new ClassFormatException(ClassFormatException.ErrInvalidMethodSignature);
      }
    }
    if (parameterTypes.length != parameterTypesCounter) {
      System.arraycopy(parameterTypes, 0, parameterTypes = new char[parameterTypesCounter][], 0, parameterTypesCounter);
    }
View Full Code Here

Examples of org.aspectj.org.eclipse.jdt.internal.compiler.classfmt.ClassFormatException

    return parameterTypes;
  }
  private char[] decodeReturnType(char[] signature) throws ClassFormatException {
    if (signature == null) return null;
    int indexOfClosingParen = CharOperation.lastIndexOf(')', signature);
    if (indexOfClosingParen == -1) throw new ClassFormatException(ClassFormatException.ErrInvalidMethodSignature);
    int arrayDim = 0;
    for (int i = indexOfClosingParen + 1, max = signature.length; i < max; i++) {
      switch(signature[i]) {
        case 'B':
          if (arrayDim > 0)
            return convertToArrayType(BYTE, arrayDim);
          return BYTE;
         
        case 'C':
          if (arrayDim > 0)
            return convertToArrayType(CHAR, arrayDim);
          return CHAR;
         
        case 'D':
          if (arrayDim > 0)
            return convertToArrayType(DOUBLE, arrayDim);
          return DOUBLE;

        case 'F':
          if (arrayDim > 0)
            return convertToArrayType(FLOAT, arrayDim);
          return FLOAT;

        case 'I':
          if (arrayDim > 0)
            return convertToArrayType(INT, arrayDim);
          return INT;

        case 'J':
          if (arrayDim > 0)
            return convertToArrayType(LONG, arrayDim);
          return LONG;

        case 'L':
          int indexOfSemiColon = CharOperation.indexOf(';', signature, i+1);
          if (indexOfSemiColon == -1) throw new ClassFormatException(ClassFormatException.ErrInvalidMethodSignature);
          if (arrayDim > 0) {
            return convertToArrayType(replace('/','.',CharOperation.subarray(signature, i + 1, indexOfSemiColon)), arrayDim);
          }
          return replace('/','.',CharOperation.subarray(signature, i + 1, indexOfSemiColon));

        case 'S':
          if (arrayDim > 0)
            return convertToArrayType(SHORT, arrayDim);
          return SHORT;

        case 'Z':
          if (arrayDim > 0)
            return convertToArrayType(BOOLEAN, arrayDim);
          return BOOLEAN;

        case 'V':
          return VOID;

        case '[':
          arrayDim++;
          break;
         
        default:
          throw new ClassFormatException(ClassFormatException.ErrInvalidMethodSignature);
      }
    }
    return null;
  }
View Full Code Here

Examples of org.aspectj.org.eclipse.jdt.internal.compiler.classfmt.ClassFormatException

    if (indexOfClosingParen == 1) {
      // there is no parameter
      return 0;
    }
    if (indexOfClosingParen == -1) {
      throw new ClassFormatException(ClassFormatException.ErrInvalidMethodSignature);
    }
    int parameterTypesCounter = 0;
    for (int i = 1; i < indexOfClosingParen; i++) {
      switch(signature[i]) {
        case 'B':
        case 'C':
        case 'D':
        case 'F':
        case 'I':
        case 'J':
        case 'S':
        case 'Z':
          parameterTypesCounter++;
          break;
        case 'L':
          int indexOfSemiColon = CharOperation.indexOf(';', signature, i+1);
          if (indexOfSemiColon == -1) throw new ClassFormatException(ClassFormatException.ErrInvalidMethodSignature);
          // verify if first parameter is synthetic
          if (className != null && parameterTypesCounter == 0) {
            char[] classSignature = Signature.createCharArrayTypeSignature(className, true);
            int length = indexOfSemiColon-i+1;
            if (classSignature.length > (length+1)) {
              // synthetic means that parameter type has same signature than given class
              for (int j=i, k=0; j<indexOfSemiColon; j++, k++) {
                if (!(signature[j] == classSignature[k] || (signature[j] == '/' && classSignature[k] == '.' ))) {
                  parameterTypesCounter++;
                  break;
                }
              }
            } else {
              parameterTypesCounter++;
            }
            className = null; // do not verify following parameters
          } else {
            parameterTypesCounter++;
          }
          i = indexOfSemiColon;
          break;
        case '[':
          break;
        default:
          throw new ClassFormatException(ClassFormatException.ErrInvalidMethodSignature);
      }
    }
    return parameterTypesCounter;
  }
View Full Code Here

Examples of org.eclipse.jdt.core.util.ClassFormatException

    int attributesIndex = 0;
    readOffset += 2;
    for (int i = 0; i < this.attributesCount; i++) {
      IConstantPoolEntry constantPoolEntry = constantPool.decodeEntry(u2At(classFileBytes, readOffset, offset));
      if (constantPoolEntry.getKind() != IConstantPoolConstant.CONSTANT_Utf8) {
        throw new ClassFormatException(ClassFormatException.INVALID_CONSTANT_POOL_ENTRY);
      }
      char[] attributeName = constantPoolEntry.getUtf8Value();
      if (equals(attributeName, IAttributeNamesConstants.LINE_NUMBER)) {
        this.lineNumberAttribute = new LineNumberAttribute(classFileBytes, constantPool, offset + readOffset);
        this.attributes[attributesIndex++] = this.lineNumberAttribute;
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. 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.