Lucie zhao created SPARK-14980:
----------------------------------

             Summary: Spark is not picking up classes in the 
MutableURLClassLoader causing errors with drools 
                 Key: SPARK-14980
                 URL: https://issues.apache.org/jira/browse/SPARK-14980
             Project: Spark
          Issue Type: Bug
            Reporter: Lucie zhao


I'm trying to integrate Drools with Spark Streaming and at one point in the 
Drools code it tries to use the class loader from the current thread 
(Thread.currentThread().getContextClassLoader()).  This loads up the 
MutableUrlClassLoader in spark-core and it doesn't have the right classes 
inside to find a dependency.  

Line 
org.kie.scanner.embedder.MavenProjectLoader.parseMavenPom(MavenProjectLoader.java:55):
    public MavenEmbedder( MavenRequest mavenRequest ) throws 
MavenEmbedderException {
        this( Thread.currentThread().getContextClassLoader(), null, 
mavenRequest );
    }

The complete stack trace looks like : 

16/04/28 10:41:37 WARN Sisu: Error injecting: 
org.apache.maven.execution.DefaultMavenExecutionRequestPopulator
com.google.inject.ProvisionException: Guice provision errors:

1) No implementation for org.apache.maven.repository.RepositorySystem was bound.
  while locating 
org.apache.maven.execution.DefaultMavenExecutionRequestPopulator

1 error
        at com.google.inject.internal.InjectorImpl$3.get(InjectorImpl.java:974)
        at 
com.google.inject.internal.InjectorImpl.getInstance(InjectorImpl.java:1000)
        at 
org.eclipse.sisu.space.AbstractDeferredClass.get(AbstractDeferredClass.java:48)
        at 
com.google.inject.internal.ProviderInternalFactory.provision(ProviderInternalFactory.java:84)
        at 
com.google.inject.internal.InternalFactoryToInitializableAdapter.provision(InternalFactoryToInitializableAdapter.java:52)
        at 
com.google.inject.internal.ProviderInternalFactory$1.call(ProviderInternalFactory.java:70)
        at 
com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision(ProvisionListenerStackCallback.java:100)
        at 
org.eclipse.sisu.plexus.PlexusLifecycleManager.onProvision(PlexusLifecycleManager.java:133)
        at 
com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision(ProvisionListenerStackCallback.java:108)
        at 
com.google.inject.internal.ProvisionListenerStackCallback.provision(ProvisionListenerStackCallback.java:55)
        at 
com.google.inject.internal.ProviderInternalFactory.circularGet(ProviderInternalFactory.java:68)
        at 
com.google.inject.internal.InternalFactoryToInitializableAdapter.get(InternalFactoryToInitializableAdapter.java:45)
        at 
com.google.inject.internal.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:46)
        at 
com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1018)
        at 
com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)
        at com.google.inject.Scopes$1$1.get(Scopes.java:59)
        at 
com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:41)
        at 
com.google.inject.internal.InjectorImpl$3$1.call(InjectorImpl.java:965)
        at 
com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1011)
        at com.google.inject.internal.InjectorImpl$3.get(InjectorImpl.java:961)
        at org.eclipse.sisu.inject.LazyBeanEntry.getValue(LazyBeanEntry.java:82)
        at 
org.eclipse.sisu.plexus.LazyPlexusBean.getValue(LazyPlexusBean.java:51)
        at 
org.codehaus.plexus.DefaultPlexusContainer.lookup(DefaultPlexusContainer.java:260)
        at 
org.codehaus.plexus.DefaultPlexusContainer.lookup(DefaultPlexusContainer.java:252)
        at 
org.codehaus.plexus.DefaultPlexusContainer.lookup(DefaultPlexusContainer.java:246)
        at 
org.kie.scanner.embedder.PlexusComponentProvider.lookup(PlexusComponentProvider.java:42)
        at 
org.kie.scanner.embedder.MavenEmbedder.buildMavenExecutionRequest(MavenEmbedder.java:111)
        at org.kie.scanner.embedder.MavenEmbedder.<init>(MavenEmbedder.java:84)
        at org.kie.scanner.embedder.MavenEmbedder.<init>(MavenEmbedder.java:75)
        at org.kie.scanner.embedder.MavenEmbedder.<init>(MavenEmbedder.java:69)
        at 
org.kie.scanner.embedder.MavenProjectLoader.parseMavenPom(MavenProjectLoader.java:55)
        at 
org.kie.scanner.embedder.MavenProjectLoader.parseMavenPom(MavenProjectLoader.java:49)
        at 
org.kie.scanner.ArtifactResolver.getResolverFor(ArtifactResolver.java:127)
        at 
org.kie.scanner.ArtifactResolver.getResolverFor(ArtifactResolver.java:90)
        at 
org.kie.scanner.KieRepositoryScannerImpl.setKieContainer(KieRepositoryScannerImpl.java:88)
        at 
org.drools.compiler.kie.builder.impl.KieServicesImpl.newKieScanner(KieServicesImpl.java:139)
        at com.test.spark.SparkDroolsTest$4.call(SparkDroolsTest:246)
        at com.test.spark.SparkDroolsTest$4.call(SparkDroolsTest:1)
        at 
org.apache.spark.streaming.api.java.JavaDStreamLike$$anonfun$foreachRDD$3.apply(JavaDStreamLike.scala:335)
        at 
org.apache.spark.streaming.api.java.JavaDStreamLike$$anonfun$foreachRDD$3.apply(JavaDStreamLike.scala:335)
        at 
org.apache.spark.streaming.dstream.DStream$$anonfun$foreachRDD$1$$anonfun$apply$mcV$sp$3.apply(DStream.scala:661)
        at 
org.apache.spark.streaming.dstream.DStream$$anonfun$foreachRDD$1$$anonfun$apply$mcV$sp$3.apply(DStream.scala:661)
        at 
org.apache.spark.streaming.dstream.ForEachDStream$$anonfun$1$$anonfun$apply$mcV$sp$1.apply$mcV$sp(ForEachDStream.scala:50)
        at 
org.apache.spark.streaming.dstream.ForEachDStream$$anonfun$1$$anonfun$apply$mcV$sp$1.apply(ForEachDStream.scala:50)
        at 
org.apache.spark.streaming.dstream.ForEachDStream$$anonfun$1$$anonfun$apply$mcV$sp$1.apply(ForEachDStream.scala:50)
        at 
org.apache.spark.streaming.dstream.DStream.createRDDWithLocalProperties(DStream.scala:426)
        at 
org.apache.spark.streaming.dstream.ForEachDStream$$anonfun$1.apply$mcV$sp(ForEachDStream.scala:49)
        at 
org.apache.spark.streaming.dstream.ForEachDStream$$anonfun$1.apply(ForEachDStream.scala:49)
        at 
org.apache.spark.streaming.dstream.ForEachDStream$$anonfun$1.apply(ForEachDStream.scala:49)
        at scala.util.Try$.apply(Try.scala:161)
        at org.apache.spark.streaming.scheduler.Job.run(Job.scala:39)
        at 
org.apache.spark.streaming.scheduler.JobScheduler$JobHandler$$anonfun$run$1.apply$mcV$sp(JobScheduler.scala:224)
        at 
org.apache.spark.streaming.scheduler.JobScheduler$JobHandler$$anonfun$run$1.apply(JobScheduler.scala:224)
        at 
org.apache.spark.streaming.scheduler.JobScheduler$JobHandler$$anonfun$run$1.apply(JobScheduler.scala:224)
        at scala.util.DynamicVariable.withValue(DynamicVariable.scala:57)
        at 
org.apache.spark.streaming.scheduler.JobScheduler$JobHandler.run(JobScheduler.scala:223)
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:745)



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to