Hi,

I am getting the following error trying to extend java.lang.Exception
in the latest revision of Clojure:

user=>(defmacro defexception [name]
  `(try
    (gen-and-load-class (quote ~name) :extends Exception)
    (catch java.lang.LinkageError le#
         (. le# (printStackTrace)))))

user=> (defexception my.Exception)
java.lang.ClassFormatError: JVMCFRE114 field name is invalid;
class=my/Exception, offset=0
        at java.lang.ClassLoader.defineClassImpl(Native Method)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:265)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:202)
        at 
clojure.lang.DynamicClassLoader.defineClass(DynamicClassLoader.java:39)
        at clojure.gen_and_load_class__2231.doInvoke(genclass.clj:461)
        at clojure.lang.RestFn.invoke(RestFn.java:443)
        at user.fn__2491.invoke(Unknown Source)
        at clojure.lang.AFn.applyToHelper(AFn.java:182)
        at clojure.lang.AFn.applyTo(AFn.java:175)
        at clojure.lang.Compiler$InvokeExpr.eval(Compiler.java:2664)
        at clojure.lang.Compiler.eval(Compiler.java:4116)
        at clojure.lang.Repl.main(Repl.java:91)
nil
user=>

The 'defexception macro is actually from swank-clojure. I have used
this successfully in the past, the difference here is that I am using
the IBM 1.6.0 JRE in this case:

   [EMAIL PROTECTED] trunk]$ java -version
   java version "1.6.0"
   Java(TM) SE Runtime Environment (build pxi3260sr2-20080818_01(SR2))
   IBM J9 VM (build 2.4, J2RE 1.6.0 IBM J9 2.4 Linux x86-32
jvmxi3260-20080816_22093 (JIT enabled, AOT enabled)
   J9VM - 20080816_022093_lHdSMr
   JIT  - r9_20080721_1330ifx2
   GC   - 20080724_AA)
   JCL  - 20080808_02

I'm not sure if this is Clojure's bug or IBM's. I don't have the
luxury of testing this on any other JVMs at the moment. I presume that
since everyone is able to use swank-clojure at the latest revision
that this is not happening on other JVMs?

/mike.

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To post to this group, send email to clojure@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/clojure?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to