[ 
https://issues.apache.org/jira/browse/SPARK-14980?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15262343#comment-15262343
 ] 

Lucie zhao commented on SPARK-14980:
------------------------------------

Using Drools 6.3.0.Final with kie-ci to do remote pull of the rules and using a 
kie scanner which is causing the problem.  

> 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