
// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-

#ifndef __java_lang_ExceptionInInitializerError__
#define __java_lang_ExceptionInInitializerError__

#pragma interface

#include <java/lang/LinkageError.h>

class java::lang::ExceptionInInitializerError : public ::java::lang::LinkageError
{

public:
  ExceptionInInitializerError();
  ExceptionInInitializerError(::java::lang::String *);
  ExceptionInInitializerError(::java::lang::Throwable *);
  virtual ::java::lang::Throwable * getException();
  virtual ::java::lang::Throwable * getCause();
public: // actually package-private
  static const jlong serialVersionUID = 1521711792217232256LL;
private:
  ::java::lang::Throwable * __attribute__((aligned(__alignof__( ::java::lang::LinkageError)))) exception;
public:
  static ::java::lang::Class class$;
};

#endif // __java_lang_ExceptionInInitializerError__
