buildr-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Martin Grotzke <martin.grot...@javakaffee.de>
Subject Re: ClassNotFoundException with scala code: com.proj.module.SomeTest$$anonfun$1
Date Mon, 10 Aug 2009 21:08:44 GMT
Thanx, I feel better now *g*

Cheers,
Martin


On Mon, 2009-08-10 at 21:41 +0200, Alex Boisvert wrote:
> If it's any comfort, I've done a similar thing recently... my buildr
> extension would rm_rf() a directory but with shadowing used the wrong
> instance variable.   The kind of embarrasing bug you never see by yourself
> ;)
> 
> alex
> 
> 
> On Mon, Aug 10, 2009 at 8:27 PM, Martin Grotzke <
> martin.grotzke@javakaffee.de> wrote:
> 
> > Just to let you know: this was a really bad - homegrown - thing. Nothing
> > with buildr and nothing with scala.
> >
> > Sorry for disturbing,
> > cheers,
> > Martin
> >
> >
> > PS: For those that are really interested: There was a teardown method
> > that - in simple words - deleted everything (recursively) from
> >  getClass.getResource(".")
> > %$&#?!&
> >
> >
> > On Mon, 2009-08-10 at 16:36 +0200, Martin Grotzke wrote:
> > > Hi,
> > >
> > > we're just getting an exception when we use anonymous functions in
> > > scala:
> > >
> > > java.lang.NoClassDefFoundError:
> > org/proj/module1/model/EmailMessageAttachmentsTest$$anonfun$filterByType$1
> > >         at
> > org.proj.module1.model.EmailMessageAttachmentsTest.filterByType(EmailMessageAttachmentsTest.scala:32)
> > >         at
> > org.proj.module1.model.EmailMessageAttachmentsTest.testExtractAttachmentsFrom_zipFile_containing_folders(EmailMessageAttachmentsTest.scala:66)
> > > Caused by: java.lang.ClassNotFoundException:
> > org.proj.module1.model.EmailMessageAttachmentsTest$$anonfun$filterByType$1
> > >         at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
> > >         at java.security.AccessController.doPrivileged(Native Method)
> > >         at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
> > >         at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
> > >         at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
> > >         at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
> > >         at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
> > >
> > > In line 32 there's an anonymous function passed to the filter method:
> > >   val attachments: List[SourceDocument] = ...
> > >   attachments.filter(_.mimeType.equals("image/png")).
> > >
> > > When the filter function is written with a while loop this does not
> > > happen:
> > >   def filterByType(attachments: List[SourceDocument]):
> > > List[SourceDocument] = {
> > >     var result = List[SourceDocument]()
> > >     val elements = attachments.elements
> > >     while(elements.hasNext) {
> > >       val a = elements.next
> > >       println("Have mimeType: " + a.mimeType)
> > >       if ( a.mimeType.equals("") ) {
> > >         result = a :: result
> > >       }
> > >     }
> > >     result
> > >   }
> > >
> > > It seems that this problem does only occur with our own types, and
> > > perhaps only with types that reference types defined in another
> > > submodule (build module in this case), that's referenced in the
> > > buildfile via compile.with(projects("module2")). (I'm currently trying
> > > to narrow this down)
> > >
> > > What's definitely no problem is s.th. like this:
> > >
> > >   @Test
> > >   def testAnonymousFunctionWithJustStrings {
> > >     val attachments = List("foo", "bar")
> > >     val filtered = attachments.filter(_.equals("foo"))
> > >     assertEquals(filtered.size, 1)
> > >   }
> > >
> > > This issue took already half of my day now, and I'm not sure if it's
> > > somehow related to buildr or if it's just scala.
> > >
> > > FWIW, I wanted to ask if somebody already experienced s.th. similar.
> > >
> > > Btw: this does happen with and without fsc...
> > >
> > > Thanx && cheers,
> > > Martin
> > >
> >

Mime
View raw message