You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@spark.apache.org by "Hyukjin Kwon (JIRA)" <ji...@apache.org> on 2019/05/21 04:37:30 UTC

[jira] [Resolved] (SPARK-14980) Spark is not picking up classes in the MutableURLClassLoader causing errors with drools

     [ https://issues.apache.org/jira/browse/SPARK-14980?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Hyukjin Kwon resolved SPARK-14980.
----------------------------------
    Resolution: Incomplete

> 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
>            Priority: Major
>              Labels: bulk-closed
>
> 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
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@spark.apache.org
For additional commands, e-mail: issues-help@spark.apache.org