Hi Michael, You are correct. That's the problem that causes the error. I mistakenly included AsterixDB packages during the assembly. Sorry for the confusion. Thank you all for your help. Happy Independence Day! :)
Best, Xikui On Mon, Jul 4, 2016 at 10:57 PM, Michael Blow <[email protected]> wrote: > Hi Xikui, > > I believe the reason my patch is not working, is that you have *db classes > defined within your external library jar. This won't work, as in this case > your GeoTagFactory implements the wrong IFunctionFactory at runtime, > causing the ClassCastException. > > $ unzip -v noah-assembly-1.0-SNAPSHOT.jar | grep IFunctionFactory > > 231 Defl:N 154 33% 06-29-2016 16:17 6136af4b > org/apache/asterix/external/api/IFunctionFactory.class > > You need to ensure *db, hyracks classes are not contained within your > external lib. > > Thanks, > > -MDB > > On Tue, Jul 5, 2016 at 1:40 AM Raman Grover <[email protected]> > wrote: > > > Hi > > > > I wasnt expecting a class cast exception in either of the suggested > > solutions - skipping system classloader or inverting the order of > > classloaders. > > > > "edu.uci.ics.cloudberry.noah.feed.GeoTagFactory cannot be cast to > > org.apache.asterix.external.api.IFunctionFactory" > > > > Can you do a quick check on the signature of the GeoTagFactory class? It > > should be implementing IFunctionFactory > > On Jul 4, 2016 10:31 PM, "Xikui Wang" <[email protected]> wrote: > > > > > I checked out this patch. Unfortunately it generates similar error as > the > > > quick fix that suggested by Raman before. The error log is attached. > > > > > > org.apache.hyracks.api.exceptions.HyracksDataException: > > > org.apache.hyracks.algebricks.common.exceptions.AlgebricksException: > > > Unable to load/instantiate class > > > edu.uci.ics.cloudberry.noah.feed.GeoTagFactory > > > at > > > > > > > > > org.apache.hyracks.algebricks.runtime.operators.std.AssignRuntimeFactory$1.open(AssignRuntimeFactory.java:111) > > > at > > > > > > > > > org.apache.hyracks.algebricks.runtime.operators.meta.AlgebricksMetaOperatorDescriptor$2.open(AlgebricksMetaOperatorDescriptor.java:143) > > > at > > > > > > > > > org.apache.asterix.external.feed.dataflow.SyncFeedRuntimeInputHandler.open(SyncFeedRuntimeInputHandler.java:39) > > > at > > > > > > > > > org.apache.asterix.external.operators.FeedMetaComputeNodePushable.open(FeedMetaComputeNodePushable.java:127) > > > at org.apache.hyracks.control.nc.Task.pushFrames(Task.java:341) > > > at org.apache.hyracks.control.nc.Task.run(Task.java:297) > > > at > > > > > > > > > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) > > > at > > > > > > > > > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) > > > at java.lang.Thread.run(Thread.java:745) > > > Caused by: > > > org.apache.hyracks.algebricks.common.exceptions.AlgebricksException: > > > Unable to load/instantiate class > > > edu.uci.ics.cloudberry.noah.feed.GeoTagFactory > > > at > > > > > > > > > org.apache.asterix.external.library.ExternalFunction.<init>(ExternalFunction.java:78) > > > at > > > > > > > > > org.apache.asterix.external.library.ExternalScalarFunction.<init>(ExternalFunctionProvider.java:55) > > > at > > > > > > > > > org.apache.asterix.external.library.ExternalFunctionProvider.getExternalFunctionEvaluator(ExternalFunctionProvider.java:41) > > > at > > > > > > > > > org.apache.asterix.external.library.ExternalScalarFunctionEvaluatorFactory.createScalarEvaluator(ExternalScalarFunctionEvaluatorFactory.java:41) > > > at > > > > > > > > > org.apache.hyracks.algebricks.runtime.operators.std.AssignRuntimeFactory$1.open(AssignRuntimeFactory.java:109) > > > ... 8 more > > > Caused by: java.lang.ClassCastException: > > > edu.uci.ics.cloudberry.noah.feed.GeoTagFactory cannot be cast to > > > org.apache.asterix.external.api.IFunctionFactory > > > at > > > > > > > > > org.apache.asterix.external.library.ExternalFunction.<init>(ExternalFunction.java:75) > > > ... 12 more > > > org.apache.hyracks.api.exceptions.HyracksDataException: > > > org.apache.hyracks.algebricks.common.exceptions.AlgebricksException: > > > Unable to load/instantiate class > > > edu.uci.ics.cloudberry.noah.feed.GeoTagFactory > > > at > > > > > > > > > org.apache.hyracks.algebricks.runtime.operators.std.AssignRuntimeFactory$1.open(AssignRuntimeFactory.java:111) > > > at > > > > > > > > > org.apache.hyracks.algebricks.runtime.operators.meta.AlgebricksMetaOperatorDescriptor$2.open(AlgebricksMetaOperatorDescriptor.java:143) > > > at > > > > > > > > > org.apache.asterix.external.feed.dataflow.SyncFeedRuntimeInputHandler.open(SyncFeedRuntimeInputHandler.java:39) > > > at > > > > > > > > > org.apache.asterix.external.operators.FeedMetaComputeNodePushable.open(FeedMetaComputeNodePushable.java:127) > > > at org.apache.hyracks.control.nc.Task.pushFrames(Task.java:341) > > > at org.apache.hyracks.control.nc.Task.run(Task.java:297) > > > at > > > > > > > > > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) > > > at > > > > > > > > > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) > > > at java.lang.Thread.run(Thread.java:745) > > > Caused by: > > > org.apache.hyracks.algebricks.common.exceptions.AlgebricksException: > > > Unable to load/instantiate class > > > edu.uci.ics.cloudberry.noah.feed.GeoTagFactory > > > at > > > > > > > > > org.apache.asterix.external.library.ExternalFunction.<init>(ExternalFunction.java:78) > > > at > > > > > > > > > org.apache.asterix.external.library.ExternalScalarFunction.<init>(ExternalFunctionProvider.java:55) > > > at > > > > > > > > > org.apache.asterix.external.library.ExternalFunctionProvider.getExternalFunctionEvaluator(ExternalFunctionProvider.java:41) > > > at > > > > > > > > > org.apache.asterix.external.library.ExternalScalarFunctionEvaluatorFactory.createScalarEvaluator(ExternalScalarFunctionEvaluatorFactory.java:41) > > > at > > > > > > > > > org.apache.hyracks.algebricks.runtime.operators.std.AssignRuntimeFactory$1.open(AssignRuntimeFactory.java:109) > > > ... 8 more > > > Caused by: java.lang.ClassCastException: > > > edu.uci.ics.cloudberry.noah.feed.GeoTagFactory cannot be cast to > > > org.apache.asterix.external.api.IFunctionFactory > > > at > > > > > > > > > org.apache.asterix.external.library.ExternalFunction.<init>(ExternalFunction.java:75) > > > ... 12 more > > > org.apache.hyracks.api.exceptions.HyracksDataException: > > > org.apache.hyracks.api.exceptions.HyracksDataException: > > > org.apache.hyracks.api.exceptions.HyracksDataException: > > > org.apache.hyracks.algebricks.common.exceptions.AlgebricksException: > > > Unable to load/instantiate class > > > edu.uci.ics.cloudberry.noah.feed.GeoTagFactory > > > at org.apache.hyracks.control.nc.Task.pushFrames(Task.java:365) > > > at org.apache.hyracks.control.nc.Task.run(Task.java:297) > > > at > > > > > > > > > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) > > > at > > > > > > > > > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) > > > at java.lang.Thread.run(Thread.java:745) > > > Caused by: org.apache.hyracks.api.exceptions.HyracksDataException: > > > org.apache.hyracks.api.exceptions.HyracksDataException: > > > org.apache.hyracks.algebricks.common.exceptions.AlgebricksException: > > > Unable to load/instantiate class > > > edu.uci.ics.cloudberry.noah.feed.GeoTagFactory > > > at > > > > > > > > > org.apache.asterix.external.operators.FeedMetaComputeNodePushable.open(FeedMetaComputeNodePushable.java:130) > > > at org.apache.hyracks.control.nc.Task.pushFrames(Task.java:341) > > > ... 4 more > > > Caused by: org.apache.hyracks.api.exceptions.HyracksDataException: > > > org.apache.hyracks.algebricks.common.exceptions.AlgebricksException: > > > Unable to load/instantiate class > > > edu.uci.ics.cloudberry.noah.feed.GeoTagFactory > > > at > > > > > > > > > org.apache.hyracks.algebricks.runtime.operators.std.AssignRuntimeFactory$1.open(AssignRuntimeFactory.java:111) > > > at > > > > > > > > > org.apache.hyracks.algebricks.runtime.operators.meta.AlgebricksMetaOperatorDescriptor$2.open(AlgebricksMetaOperatorDescriptor.java:143) > > > at > > > > > > > > > org.apache.asterix.external.feed.dataflow.SyncFeedRuntimeInputHandler.open(SyncFeedRuntimeInputHandler.java:39) > > > at > > > > > > > > > org.apache.asterix.external.operators.FeedMetaComputeNodePushable.open(FeedMetaComputeNodePushable.java:127) > > > ... 5 more > > > Caused by: > > > org.apache.hyracks.algebricks.common.exceptions.AlgebricksException: > > > Unable to load/instantiate class > > > edu.uci.ics.cloudberry.noah.feed.GeoTagFactory > > > at > > > > > > > > > org.apache.asterix.external.library.ExternalFunction.<init>(ExternalFunction.java:78) > > > at > > > > > > > > > org.apache.asterix.external.library.ExternalScalarFunction.<init>(ExternalFunctionProvider.java:55) > > > at > > > > > > > > > org.apache.asterix.external.library.ExternalFunctionProvider.getExternalFunctionEvaluator(ExternalFunctionProvider.java:41) > > > at > > > > > > > > > org.apache.asterix.external.library.ExternalScalarFunctionEvaluatorFactory.createScalarEvaluator(ExternalScalarFunctionEvaluatorFactory.java:41) > > > at > > > > > > > > > org.apache.hyracks.algebricks.runtime.operators.std.AssignRuntimeFactory$1.open(AssignRuntimeFactory.java:109) > > > ... 8 more > > > Caused by: java.lang.ClassCastException: > > > edu.uci.ics.cloudberry.noah.feed.GeoTagFactory cannot be cast to > > > org.apache.asterix.external.api.IFunctionFactory > > > at > > > > > > > > > org.apache.asterix.external.library.ExternalFunction.<init>(ExternalFunction.java:75) > > > ... 12 more > > > org.apache.hyracks.api.exceptions.HyracksDataException: > > > org.apache.hyracks.api.exceptions.HyracksDataException: > > > org.apache.hyracks.api.exceptions.HyracksDataException: > > > org.apache.hyracks.algebricks.common.exceptions.AlgebricksException: > > > Unable to load/instantiate class > > > edu.uci.ics.cloudberry.noah.feed.GeoTagFactory > > > at org.apache.hyracks.control.nc.Task.pushFrames(Task.java:365) > > > at org.apache.hyracks.control.nc.Task.run(Task.java:297) > > > at > > > > > > > > > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) > > > at > > > > > > > > > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) > > > at java.lang.Thread.run(Thread.java:745) > > > Caused by: org.apache.hyracks.api.exceptions.HyracksDataException: > > > org.apache.hyracks.api.exceptions.HyracksDataException: > > > org.apache.hyracks.algebricks.common.exceptions.AlgebricksException: > > > Unable to load/instantiate class > > > edu.uci.ics.cloudberry.noah.feed.GeoTagFactory > > > at > > > > > > > > > org.apache.asterix.external.operators.FeedMetaComputeNodePushable.open(FeedMetaComputeNodePushable.java:130) > > > at org.apache.hyracks.control.nc.Task.pushFrames(Task.java:341) > > > ... 4 more > > > Caused by: org.apache.hyracks.api.exceptions.HyracksDataException: > > > org.apache.hyracks.algebricks.common.exceptions.AlgebricksException: > > > Unable to load/instantiate class > > > edu.uci.ics.cloudberry.noah.feed.GeoTagFactory > > > at > > > > > > > > > org.apache.hyracks.algebricks.runtime.operators.std.AssignRuntimeFactory$1.open(AssignRuntimeFactory.java:111) > > > at > > > > > > > > > org.apache.hyracks.algebricks.runtime.operators.meta.AlgebricksMetaOperatorDescriptor$2.open(AlgebricksMetaOperatorDescriptor.java:143) > > > at > > > > > > > > > org.apache.asterix.external.feed.dataflow.SyncFeedRuntimeInputHandler.open(SyncFeedRuntimeInputHandler.java:39) > > > at > > > > > > > > > org.apache.asterix.external.operators.FeedMetaComputeNodePushable.open(FeedMetaComputeNodePushable.java:127) > > > ... 5 more > > > Caused by: > > > org.apache.hyracks.algebricks.common.exceptions.AlgebricksException: > > > Unable to load/instantiate class > > > edu.uci.ics.cloudberry.noah.feed.GeoTagFactory > > > at > > > > > > > > > org.apache.asterix.external.library.ExternalFunction.<init>(ExternalFunction.java:78) > > > at > > > > > > > > > org.apache.asterix.external.library.ExternalScalarFunction.<init>(ExternalFunctionProvider.java:55) > > > at > > > > > > > > > org.apache.asterix.external.library.ExternalFunctionProvider.getExternalFunctionEvaluator(ExternalFunctionProvider.java:41) > > > at > > > > > > > > > org.apache.asterix.external.library.ExternalScalarFunctionEvaluatorFactory.createScalarEvaluator(ExternalScalarFunctionEvaluatorFactory.java:41) > > > at > > > > > > > > > org.apache.hyracks.algebricks.runtime.operators.std.AssignRuntimeFactory$1.open(AssignRuntimeFactory.java:109) > > > ... 8 more > > > Caused by: java.lang.ClassCastException: > > > edu.uci.ics.cloudberry.noah.feed.GeoTagFactory cannot be cast to > > > org.apache.asterix.external.api.IFunctionFactory > > > at > > > > > > > > > org.apache.asterix.external.library.ExternalFunction.<init>(ExternalFunction.java:75) > > > ... 12 more > > > org.apache.hyracks.api.exceptions.HyracksDataException: > > > org.apache.hyracks.api.exceptions.HyracksDataException: > > > java.lang.InterruptedException > > > at org.apache.hyracks.control.nc.Task.pushFrames(Task.java:365) > > > at org.apache.hyracks.control.nc.Task.run(Task.java:297) > > > at > > > > > > > > > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) > > > at > > > > > > > > > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) > > > at java.lang.Thread.run(Thread.java:745) > > > Caused by: org.apache.hyracks.api.exceptions.HyracksDataException: > > > java.lang.InterruptedException > > > at > > > > > > > > > org.apache.hyracks.dataflow.std.collectors.NonDeterministicChannelReader.findNextSender(NonDeterministicChannelReader.java:126) > > > at > > > > > > > > > org.apache.hyracks.dataflow.std.collectors.NonDeterministicFrameReader.nextFrame(NonDeterministicFrameReader.java:43) > > > at org.apache.hyracks.control.nc.Task.pushFrames(Task.java:344) > > > ... 4 more > > > Caused by: java.lang.InterruptedException > > > at java.lang.Object.wait(Native Method) > > > at java.lang.Object.wait(Object.java:502) > > > at > > > > > > > > > org.apache.hyracks.dataflow.std.collectors.NonDeterministicChannelReader.findNextSender(NonDeterministicChannelReader.java:124) > > > ... 6 more > > > org.apache.hyracks.api.exceptions.HyracksDataException: > > > org.apache.hyracks.api.exceptions.HyracksDataException: > > > java.lang.InterruptedException > > > at org.apache.hyracks.control.nc.Task.pushFrames(Task.java:365) > > > at org.apache.hyracks.control.nc.Task.run(Task.java:297) > > > at > > > > > > > > > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) > > > at > > > > > > > > > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) > > > at java.lang.Thread.run(Thread.java:745) > > > Caused by: org.apache.hyracks.api.exceptions.HyracksDataException: > > > java.lang.InterruptedException > > > at > > > > > > > > > org.apache.hyracks.dataflow.std.collectors.NonDeterministicChannelReader.findNextSender(NonDeterministicChannelReader.java:126) > > > at > > > > > > > > > org.apache.hyracks.dataflow.std.collectors.NonDeterministicFrameReader.nextFrame(NonDeterministicFrameReader.java:43) > > > at org.apache.hyracks.control.nc.Task.pushFrames(Task.java:344) > > > ... 4 more > > > Caused by: java.lang.InterruptedException > > > at java.lang.Object.wait(Native Method) > > > at java.lang.Object.wait(Object.java:502) > > > at > > > > > > > > > org.apache.hyracks.dataflow.std.collectors.NonDeterministicChannelReader.findNextSender(NonDeterministicChannelReader.java:124) > > > ... 6 more > > > org.apache.hyracks.api.exceptions.HyracksDataException: > > > org.apache.hyracks.api.exceptions.HyracksDataException: > > > java.lang.InterruptedException > > > at org.apache.hyracks.control.nc.Task.pushFrames(Task.java:365) > > > at org.apache.hyracks.control.nc.Task.run(Task.java:297) > > > at > > > > > > > > > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) > > > at > > > > > > > > > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) > > > at java.lang.Thread.run(Thread.java:745) > > > Caused by: org.apache.hyracks.api.exceptions.HyracksDataException: > > > java.lang.InterruptedException > > > at > > > > > > > > > org.apache.hyracks.dataflow.std.collectors.NonDeterministicChannelReader.findNextSender(NonDeterministicChannelReader.java:126) > > > at > > > > > > > > > org.apache.hyracks.dataflow.std.collectors.NonDeterministicFrameReader.nextFrame(NonDeterministicFrameReader.java:43) > > > at org.apache.hyracks.control.nc.Task.pushFrames(Task.java:344) > > > ... 4 more > > > Caused by: java.lang.InterruptedException > > > at java.lang.Object.wait(Native Method) > > > at java.lang.Object.wait(Object.java:502) > > > at > > > > > > > > > org.apache.hyracks.dataflow.std.collectors.NonDeterministicChannelReader.findNextSender(NonDeterministicChannelReader.java:124) > > > ... 6 more > > > org.apache.hyracks.api.exceptions.HyracksDataException: > > > org.apache.hyracks.api.exceptions.HyracksDataException: > > > java.lang.InterruptedException > > > at org.apache.hyracks.control.nc.Task.pushFrames(Task.java:365) > > > at org.apache.hyracks.control.nc.Task.run(Task.java:297) > > > at > > > > > > > > > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) > > > at > > > > > > > > > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) > > > at java.lang.Thread.run(Thread.java:745) > > > Caused by: org.apache.hyracks.api.exceptions.HyracksDataException: > > > java.lang.InterruptedException > > > at > > > > > > > > > org.apache.hyracks.dataflow.std.collectors.NonDeterministicChannelReader.findNextSender(NonDeterministicChannelReader.java:126) > > > at > > > > > > > > > org.apache.hyracks.dataflow.std.collectors.NonDeterministicFrameReader.nextFrame(NonDeterministicFrameReader.java:43) > > > at org.apache.hyracks.control.nc.Task.pushFrames(Task.java:344) > > > ... 4 more > > > Caused by: java.lang.InterruptedException > > > at java.lang.Object.wait(Native Method) > > > at java.lang.Object.wait(Object.java:502) > > > at > > > > > > > > > org.apache.hyracks.dataflow.std.collectors.NonDeterministicChannelReader.findNextSender(NonDeterministicChannelReader.java:124) > > > ... 6 more > > > testFile > > > > > > > > > src/test/resources/runtimets/queries/external-library/tweetGeoTag/tweetGeoTag.3.update.aql > > > raised an exception: > > > java.lang.Exception: HTTP operation failed: 2 > > > STATUS LINE: HTTP/1.1 500 Server Error > > > SUMMARY: Error: Failure in feed > > > > > > On Mon, Jul 4, 2016 at 8:26 PM, Till Westmann <[email protected]> > wrote: > > > > > > > The change looks good to me and I’ve +2’ed it. However, I haven’t > > > > tested it myself. It would be good if Xikui could test it (either > > > > before of after merging to master) and if we could add a test case > > > > that tests the intended behavior. > > > > > > > > Cheers, > > > > Till > > > > > > > > On 4 Jul 2016, at 0:36, Michael Blow wrote: > > > > > > > > I've submitted a patchset to Gerrit with a proposed fix for this: > > > >> > > > >> https://asterix-gerrit.ics.uci.edu/#/c/973/ > > > >> > > > >> Thanks, > > > >> > > > >> -MDB > > > >> On Mon, Jul 4, 2016 at 2:37 AM Till Westmann <[email protected]> > > wrote: > > > >> > > > >> Sounds good to me! > > > >>> > > > >>> Cheers, > > > >>> Till > > > >>> > > > >>> On 3 Jul 2016, at 23:34, Michael Blow wrote: > > > >>> > > > >>> I think a better solution might be to invert the normal class > loader > > > >>>> resolution order with an extension of URLClassLoader that > overrides > > > >>>> loadClass(), which tries resolving classes internally before > > > >>>> delegating to > > > >>>> the parent. Boot classpath classes can still be forced to load > > > >>>> correctly. I > > > >>>> think this will solve the use case without the regression due to > > > >>>> inability > > > >>>> to resolve *db classes. > > > >>>> > > > >>>> Thanks, > > > >>>> > > > >>>> -MDB > > > >>>> > > > >>>> On Sat, Jul 2, 2016 at 11:44 PM Xikui Wang <[email protected]> > wrote: > > > >>>> > > > >>>> The error log is as follow: > > > >>>>> > > > >>>>> org.apache.hyracks.api.exceptions.HyracksDataException: > > > >>>>> > > org.apache.hyracks.algebricks.common.exceptions.AlgebricksException: > > > >>>>> Unable to load/instantiate class > > > >>>>> edu.uci.ics.cloudberry.noah.feed.GeoTagFactory > > > >>>>> at > > > >>>>> > > > >>>>> > > > >>>>> > > > >>> > > > > > > org.apache.hyracks.algebricks.runtime.operators.std.AssignRuntimeFactory$1.open(AssignRuntimeFactory.java:111) > > > >>> > > > >>>> at > > > >>>>> > > > >>>>> > > > >>>>> > > > >>> > > > > > > org.apache.hyracks.algebricks.runtime.operators.meta.AlgebricksMetaOperatorDescriptor$2.open(AlgebricksMetaOperatorDescriptor.java:143) > > > >>> > > > >>>> at > > > >>>>> > > > >>>>> > > > >>>>> > > > >>> > > > > > > org.apache.asterix.external.feed.dataflow.SyncFeedRuntimeInputHandler.open(SyncFeedRuntimeInputHandler.java:39) > > > >>> > > > >>>> at > > > >>>>> > > > >>>>> > > > >>>>> > > > >>> > > > > > > org.apache.asterix.external.operators.FeedMetaComputeNodePushable.open(FeedMetaComputeNodePushable.java:127) > > > >>> > > > >>>> at org.apache.hyracks.control.nc.Task.pushFrames(Task.java:341) > > > >>>>> at org.apache.hyracks.control.nc.Task.run(Task.java:297) > > > >>>>> at > > > >>>>> > > > >>>>> > > > >>>>> > > > >>> > > > > > > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) > > > >>> > > > >>>> at > > > >>>>> > > > >>>>> > > > >>>>> > > > >>> > > > > > > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) > > > >>> > > > >>>> at java.lang.Thread.run(Thread.java:745) > > > >>>>> Caused by: > > > >>>>> > > org.apache.hyracks.algebricks.common.exceptions.AlgebricksException: > > > >>>>> Unable to load/instantiate class > > > >>>>> edu.uci.ics.cloudberry.noah.feed.GeoTagFactory > > > >>>>> at > > > >>>>> > > > >>>>> > > > >>>>> > > > >>> > > > > > > org.apache.asterix.external.library.ExternalFunction.<init>(ExternalFunction.java:75) > > > >>> > > > >>>> at > > > >>>>> > > > >>>>> > > > >>>>> > > > >>> > > > > > > org.apache.asterix.external.library.ExternalScalarFunction.<init>(ExternalFunctionProvider.java:53) > > > >>> > > > >>>> at > > > >>>>> > > > >>>>> > > > >>>>> > > > >>> > > > > > > org.apache.asterix.external.library.ExternalFunctionProvider.getExternalFunctionEvaluator(ExternalFunctionProvider.java:39) > > > >>> > > > >>>> at > > > >>>>> > > > >>>>> > > > >>>>> > > > >>> > > > > > > org.apache.asterix.external.library.ExternalScalarFunctionEvaluatorFactory.createScalarEvaluator(ExternalScalarFunctionEvaluatorFactory.java:41) > > > >>> > > > >>>> at > > > >>>>> > > > >>>>> > > > >>>>> > > > >>> > > > > > > org.apache.hyracks.algebricks.runtime.operators.std.AssignRuntimeFactory$1.open(AssignRuntimeFactory.java:109) > > > >>> > > > >>>> ... 8 more > > > >>>>> Caused by: java.lang.ClassCastException: > > > >>>>> edu.uci.ics.cloudberry.noah.feed.GeoTagFactory cannot be cast to > > > >>>>> org.apache.asterix.external.api.IFunctionFactory > > > >>>>> at > > > >>>>> > > > >>>>> > > > >>>>> > > > >>> > > > > > > org.apache.asterix.external.library.ExternalFunction.<init>(ExternalFunction.java:72) > > > >>> > > > >>>> ... 12 more > > > >>>>> org.apache.hyracks.api.exceptions.HyracksDataException: > > > >>>>> > > org.apache.hyracks.algebricks.common.exceptions.AlgebricksException: > > > >>>>> Unable to load/instantiate class > > > >>>>> edu.uci.ics.cloudberry.noah.feed.GeoTagFactory > > > >>>>> at > > > >>>>> > > > >>>>> > > > >>>>> > > > >>> > > > > > > org.apache.hyracks.algebricks.runtime.operators.std.AssignRuntimeFactory$1.open(AssignRuntimeFactory.java:111) > > > >>> > > > >>>> at > > > >>>>> > > > >>>>> > > > >>>>> > > > >>> > > > > > > org.apache.hyracks.algebricks.runtime.operators.meta.AlgebricksMetaOperatorDescriptor$2.open(AlgebricksMetaOperatorDescriptor.java:143) > > > >>> > > > >>>> at > > > >>>>> > > > >>>>> > > > >>>>> > > > >>> > > > > > > org.apache.asterix.external.feed.dataflow.SyncFeedRuntimeInputHandler.open(SyncFeedRuntimeInputHandler.java:39) > > > >>> > > > >>>> at > > > >>>>> > > > >>>>> > > > >>>>> > > > >>> > > > > > > org.apache.asterix.external.operators.FeedMetaComputeNodePushable.open(FeedMetaComputeNodePushable.java:127) > > > >>> > > > >>>> at org.apache.hyracks.control.nc.Task.pushFrames(Task.java:341) > > > >>>>> at org.apache.hyracks.control.nc.Task.run(Task.java:297) > > > >>>>> at > > > >>>>> > > > >>>>> > > > >>>>> > > > >>> > > > > > > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) > > > >>> > > > >>>> at > > > >>>>> > > > >>>>> > > > >>>>> > > > >>> > > > > > > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) > > > >>> > > > >>>> at java.lang.Thread.run(Thread.java:745) > > > >>>>> Caused by: > > > >>>>> > > org.apache.hyracks.algebricks.common.exceptions.AlgebricksException: > > > >>>>> Unable to load/instantiate class > > > >>>>> edu.uci.ics.cloudberry.noah.feed.GeoTagFactory > > > >>>>> at > > > >>>>> > > > >>>>> > > > >>>>> > > > >>> > > > > > > org.apache.asterix.external.library.ExternalFunction.<init>(ExternalFunction.java:75) > > > >>> > > > >>>> at > > > >>>>> > > > >>>>> > > > >>>>> > > > >>> > > > > > > org.apache.asterix.external.library.ExternalScalarFunction.<init>(ExternalFunctionProvider.java:53) > > > >>> > > > >>>> at > > > >>>>> > > > >>>>> > > > >>>>> > > > >>> > > > > > > org.apache.asterix.external.library.ExternalFunctionProvider.getExternalFunctionEvaluator(ExternalFunctionProvider.java:39) > > > >>> > > > >>>> at > > > >>>>> > > > >>>>> > > > >>>>> > > > >>> > > > > > > org.apache.asterix.external.library.ExternalScalarFunctionEvaluatorFactory.createScalarEvaluator(ExternalScalarFunctionEvaluatorFactory.java:41) > > > >>> > > > >>>> at > > > >>>>> > > > >>>>> > > > >>>>> > > > >>> > > > > > > org.apache.hyracks.algebricks.runtime.operators.std.AssignRuntimeFactory$1.open(AssignRuntimeFactory.java:109) > > > >>> > > > >>>> ... 8 more > > > >>>>> Caused by: java.lang.ClassCastException: > > > >>>>> edu.uci.ics.cloudberry.noah.feed.GeoTagFactory cannot be cast to > > > >>>>> org.apache.asterix.external.api.IFunctionFactory > > > >>>>> at > > > >>>>> > > > >>>>> > > > >>>>> > > > >>> > > > > > > org.apache.asterix.external.library.ExternalFunction.<init>(ExternalFunction.java:72) > > > >>> > > > >>>> ... 12 more > > > >>>>> org.apache.hyracks.api.exceptions.HyracksDataException: > > > >>>>> org.apache.hyracks.api.exceptions.HyracksDataException: > > > >>>>> org.apache.hyracks.api.exceptions.HyracksDataException: > > > >>>>> > > org.apache.hyracks.algebricks.common.exceptions.AlgebricksException: > > > >>>>> Unable to load/instantiate class > > > >>>>> edu.uci.ics.cloudberry.noah.feed.GeoTagFactory > > > >>>>> at org.apache.hyracks.control.nc.Task.pushFrames(Task.java:365) > > > >>>>> at org.apache.hyracks.control.nc.Task.run(Task.java:297) > > > >>>>> at > > > >>>>> > > > >>>>> > > > >>>>> > > > >>> > > > > > > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) > > > >>> > > > >>>> at > > > >>>>> > > > >>>>> > > > >>>>> > > > >>> > > > > > > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) > > > >>> > > > >>>> at java.lang.Thread.run(Thread.java:745) > > > >>>>> Caused by: > org.apache.hyracks.api.exceptions.HyracksDataException: > > > >>>>> org.apache.hyracks.api.exceptions.HyracksDataException: > > > >>>>> > > org.apache.hyracks.algebricks.common.exceptions.AlgebricksException: > > > >>>>> Unable to load/instantiate class > > > >>>>> edu.uci.ics.cloudberry.noah.feed.GeoTagFactory > > > >>>>> at > > > >>>>> > > > >>>>> > > > >>>>> > > > >>> > > > > > > org.apache.asterix.external.operators.FeedMetaComputeNodePushable.open(FeedMetaComputeNodePushable.java:130) > > > >>> > > > >>>> at org.apache.hyracks.control.nc.Task.pushFrames(Task.java:341) > > > >>>>> ... 4 more > > > >>>>> Caused by: > org.apache.hyracks.api.exceptions.HyracksDataException: > > > >>>>> > > org.apache.hyracks.algebricks.common.exceptions.AlgebricksException: > > > >>>>> Unable to load/instantiate class > > > >>>>> edu.uci.ics.cloudberry.noah.feed.GeoTagFactory > > > >>>>> at > > > >>>>> > > > >>>>> > > > >>>>> > > > >>> > > > > > > org.apache.hyracks.algebricks.runtime.operators.std.AssignRuntimeFactory$1.open(AssignRuntimeFactory.java:111) > > > >>> > > > >>>> at > > > >>>>> > > > >>>>> > > > >>>>> > > > >>> > > > > > > org.apache.hyracks.algebricks.runtime.operators.meta.AlgebricksMetaOperatorDescriptor$2.open(AlgebricksMetaOperatorDescriptor.java:143) > > > >>> > > > >>>> at > > > >>>>> > > > >>>>> > > > >>>>> > > > >>> > > > > > > org.apache.asterix.external.feed.dataflow.SyncFeedRuntimeInputHandler.open(SyncFeedRuntimeInputHandler.java:39) > > > >>> > > > >>>> at > > > >>>>> > > > >>>>> > > > >>>>> > > > >>> > > > > > > org.apache.asterix.external.operators.FeedMetaComputeNodePushable.open(FeedMetaComputeNodePushable.java:127) > > > >>> > > > >>>> ... 5 more > > > >>>>> Caused by: > > > >>>>> > > org.apache.hyracks.algebricks.common.exceptions.AlgebricksException: > > > >>>>> Unable to load/instantiate class > > > >>>>> edu.uci.ics.cloudberry.noah.feed.GeoTagFactory > > > >>>>> at > > > >>>>> > > > >>>>> > > > >>>>> > > > >>> > > > > > > org.apache.asterix.external.library.ExternalFunction.<init>(ExternalFunction.java:75) > > > >>> > > > >>>> at > > > >>>>> > > > >>>>> > > > >>>>> > > > >>> > > > > > > org.apache.asterix.external.library.ExternalScalarFunction.<init>(ExternalFunctionProvider.java:53) > > > >>> > > > >>>> at > > > >>>>> > > > >>>>> > > > >>>>> > > > >>> > > > > > > org.apache.asterix.external.library.ExternalFunctionProvider.getExternalFunctionEvaluator(ExternalFunctionProvider.java:39) > > > >>> > > > >>>> at > > > >>>>> > > > >>>>> > > > >>>>> > > > >>> > > > > > > org.apache.asterix.external.library.ExternalScalarFunctionEvaluatorFactory.createScalarEvaluator(ExternalScalarFunctionEvaluatorFactory.java:41) > > > >>> > > > >>>> at > > > >>>>> > > > >>>>> > > > >>>>> > > > >>> > > > > > > org.apache.hyracks.algebricks.runtime.operators.std.AssignRuntimeFactory$1.open(AssignRuntimeFactory.java:109) > > > >>> > > > >>>> ... 8 more > > > >>>>> Caused by: java.lang.ClassCastException: > > > >>>>> edu.uci.ics.cloudberry.noah.feed.GeoTagFactory cannot be cast to > > > >>>>> org.apache.asterix.external.api.IFunctionFactory > > > >>>>> at > > > >>>>> > > > >>>>> > > > >>>>> > > > >>> > > > > > > org.apache.asterix.external.library.ExternalFunction.<init>(ExternalFunction.java:72) > > > >>> > > > >>>> ... 12 more > > > >>>>> org.apache.hyracks.api.exceptions.HyracksDataException: > > > >>>>> org.apache.hyracks.api.exceptions.HyracksDataException: > > > >>>>> org.apache.hyracks.api.exceptions.HyracksDataException: > > > >>>>> > > org.apache.hyracks.algebricks.common.exceptions.AlgebricksException: > > > >>>>> Unable to load/instantiate class > > > >>>>> edu.uci.ics.cloudberry.noah.feed.GeoTagFactory > > > >>>>> at org.apache.hyracks.control.nc.Task.pushFrames(Task.java:365) > > > >>>>> at org.apache.hyracks.control.nc.Task.run(Task.java:297) > > > >>>>> at > > > >>>>> > > > >>>>> > > > >>>>> > > > >>> > > > > > > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) > > > >>> > > > >>>> at > > > >>>>> > > > >>>>> > > > >>>>> > > > >>> > > > > > > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) > > > >>> > > > >>>> at java.lang.Thread.run(Thread.java:745) > > > >>>>> Caused by: > org.apache.hyracks.api.exceptions.HyracksDataException: > > > >>>>> org.apache.hyracks.api.exceptions.HyracksDataException: > > > >>>>> > > org.apache.hyracks.algebricks.common.exceptions.AlgebricksException: > > > >>>>> Unable to load/instantiate class > > > >>>>> edu.uci.ics.cloudberry.noah.feed.GeoTagFactory > > > >>>>> at > > > >>>>> > > > >>>>> > > > >>>>> > > > >>> > > > > > > org.apache.asterix.external.operators.FeedMetaComputeNodePushable.open(FeedMetaComputeNodePushable.java:130) > > > >>> > > > >>>> at org.apache.hyracks.control.nc.Task.pushFrames(Task.java:341) > > > >>>>> ... 4 more > > > >>>>> Caused by: > org.apache.hyracks.api.exceptions.HyracksDataException: > > > >>>>> > > org.apache.hyracks.algebricks.common.exceptions.AlgebricksException: > > > >>>>> Unable to load/instantiate class > > > >>>>> edu.uci.ics.cloudberry.noah.feed.GeoTagFactory > > > >>>>> at > > > >>>>> > > > >>>>> > > > >>>>> > > > >>> > > > > > > org.apache.hyracks.algebricks.runtime.operators.std.AssignRuntimeFactory$1.open(AssignRuntimeFactory.java:111) > > > >>> > > > >>>> at > > > >>>>> > > > >>>>> > > > >>>>> > > > >>> > > > > > > org.apache.hyracks.algebricks.runtime.operators.meta.AlgebricksMetaOperatorDescriptor$2.open(AlgebricksMetaOperatorDescriptor.java:143) > > > >>> > > > >>>> at > > > >>>>> > > > >>>>> > > > >>>>> > > > >>> > > > > > > org.apache.asterix.external.feed.dataflow.SyncFeedRuntimeInputHandler.open(SyncFeedRuntimeInputHandler.java:39) > > > >>> > > > >>>> at > > > >>>>> > > > >>>>> > > > >>>>> > > > >>> > > > > > > org.apache.asterix.external.operators.FeedMetaComputeNodePushable.open(FeedMetaComputeNodePushable.java:127) > > > >>> > > > >>>> ... 5 more > > > >>>>> Caused by: > > > >>>>> > > org.apache.hyracks.algebricks.common.exceptions.AlgebricksException: > > > >>>>> Unable to load/instantiate class > > > >>>>> edu.uci.ics.cloudberry.noah.feed.GeoTagFactory > > > >>>>> at > > > >>>>> > > > >>>>> > > > >>>>> > > > >>> > > > > > > org.apache.asterix.external.library.ExternalFunction.<init>(ExternalFunction.java:75) > > > >>> > > > >>>> at > > > >>>>> > > > >>>>> > > > >>>>> > > > >>> > > > > > > org.apache.asterix.external.library.ExternalScalarFunction.<init>(ExternalFunctionProvider.java:53) > > > >>> > > > >>>> at > > > >>>>> > > > >>>>> > > > >>>>> > > > >>> > > > > > > org.apache.asterix.external.library.ExternalFunctionProvider.getExternalFunctionEvaluator(ExternalFunctionProvider.java:39) > > > >>> > > > >>>> at > > > >>>>> > > > >>>>> > > > >>>>> > > > >>> > > > > > > org.apache.asterix.external.library.ExternalScalarFunctionEvaluatorFactory.createScalarEvaluator(ExternalScalarFunctionEvaluatorFactory.java:41) > > > >>> > > > >>>> at > > > >>>>> > > > >>>>> > > > >>>>> > > > >>> > > > > > > org.apache.hyracks.algebricks.runtime.operators.std.AssignRuntimeFactory$1.open(AssignRuntimeFactory.java:109) > > > >>> > > > >>>> ... 8 more > > > >>>>> Caused by: java.lang.ClassCastException: > > > >>>>> edu.uci.ics.cloudberry.noah.feed.GeoTagFactory cannot be cast to > > > >>>>> org.apache.asterix.external.api.IFunctionFactory > > > >>>>> at > > > >>>>> > > > >>>>> > > > >>>>> > > > >>> > > > > > > org.apache.asterix.external.library.ExternalFunction.<init>(ExternalFunction.java:72) > > > >>> > > > >>>> ... 12 more > > > >>>>> org.apache.hyracks.api.exceptions.HyracksDataException: > > > >>>>> org.apache.hyracks.api.exceptions.HyracksDataException: > > > >>>>> java.lang.InterruptedException > > > >>>>> at org.apache.hyracks.control.nc.Task.pushFrames(Task.java:365) > > > >>>>> at org.apache.hyracks.control.nc.Task.run(Task.java:297) > > > >>>>> at > > > >>>>> > > > >>>>> > > > >>>>> > > > >>> > > > > > > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) > > > >>> > > > >>>> at > > > >>>>> > > > >>>>> > > > >>>>> > > > >>> > > > > > > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) > > > >>> > > > >>>> at java.lang.Thread.run(Thread.java:745) > > > >>>>> Caused by: > org.apache.hyracks.api.exceptions.HyracksDataException: > > > >>>>> java.lang.InterruptedException > > > >>>>> at > > > >>>>> > > > >>>>> > > > >>>>> > > > >>> > > > > > > org.apache.hyracks.dataflow.std.collectors.NonDeterministicChannelReader.findNextSender(NonDeterministicChannelReader.java:126) > > > >>> > > > >>>> at > > > >>>>> > > > >>>>> > > > >>>>> > > > >>> > > > > > > org.apache.hyracks.dataflow.std.collectors.NonDeterministicFrameReader.nextFrame(NonDeterministicFrameReader.java:43) > > > >>> > > > >>>> at org.apache.hyracks.control.nc.Task.pushFrames(Task.java:344) > > > >>>>> ... 4 more > > > >>>>> Caused by: java.lang.InterruptedException > > > >>>>> at java.lang.Object.wait(Native Method) > > > >>>>> at java.lang.Object.wait(Object.java:502) > > > >>>>> at > > > >>>>> > > > >>>>> > > > >>>>> > > > >>> > > > > > > org.apache.hyracks.dataflow.std.collectors.NonDeterministicChannelReader.findNextSender(NonDeterministicChannelReader.java:124) > > > >>> > > > >>>> ... 6 more > > > >>>>> org.apache.hyracks.api.exceptions.HyracksDataException: > > > >>>>> org.apache.hyracks.api.exceptions.HyracksDataException: > > > >>>>> java.lang.InterruptedException > > > >>>>> at org.apache.hyracks.control.nc.Task.pushFrames(Task.java:365) > > > >>>>> at org.apache.hyracks.control.nc.Task.run(Task.java:297) > > > >>>>> at > > > >>>>> > > > >>>>> > > > >>>>> > > > >>> > > > > > > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) > > > >>> > > > >>>> at > > > >>>>> > > > >>>>> > > > >>>>> > > > >>> > > > > > > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) > > > >>> > > > >>>> at java.lang.Thread.run(Thread.java:745) > > > >>>>> Caused by: > org.apache.hyracks.api.exceptions.HyracksDataException: > > > >>>>> java.lang.InterruptedException > > > >>>>> at > > > >>>>> > > > >>>>> > > > >>>>> > > > >>> > > > > > > org.apache.hyracks.dataflow.std.collectors.NonDeterministicChannelReader.findNextSender(NonDeterministicChannelReader.java:126) > > > >>> > > > >>>> at > > > >>>>> > > > >>>>> > > > >>>>> > > > >>> > > > > > > org.apache.hyracks.dataflow.std.collectors.NonDeterministicFrameReader.nextFrame(NonDeterministicFrameReader.java:43) > > > >>> > > > >>>> at org.apache.hyracks.control.nc.Task.pushFrames(Task.java:344) > > > >>>>> ... 4 more > > > >>>>> Caused by: java.lang.InterruptedException > > > >>>>> at java.lang.Object.wait(Native Method) > > > >>>>> at java.lang.Object.wait(Object.java:502) > > > >>>>> at > > > >>>>> > > > >>>>> > > > >>>>> > > > >>> > > > > > > org.apache.hyracks.dataflow.std.collectors.NonDeterministicChannelReader.findNextSender(NonDeterministicChannelReader.java:124) > > > >>> > > > >>>> ... 6 more > > > >>>>> org.apache.hyracks.api.exceptions.HyracksDataException: > > > >>>>> org.apache.hyracks.api.exceptions.HyracksDataException: > > > >>>>> java.lang.InterruptedException > > > >>>>> at org.apache.hyracks.control.nc.Task.pushFrames(Task.java:365) > > > >>>>> at org.apache.hyracks.control.nc.Task.run(Task.java:297) > > > >>>>> at > > > >>>>> > > > >>>>> > > > >>>>> > > > >>> > > > > > > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) > > > >>> > > > >>>> at > > > >>>>> > > > >>>>> > > > >>>>> > > > >>> > > > > > > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) > > > >>> > > > >>>> at java.lang.Thread.run(Thread.java:745) > > > >>>>> Caused by: > org.apache.hyracks.api.exceptions.HyracksDataException: > > > >>>>> java.lang.InterruptedException > > > >>>>> at > > > >>>>> > > > >>>>> > > > >>>>> > > > >>> > > > > > > org.apache.hyracks.dataflow.std.collectors.NonDeterministicChannelReader.findNextSender(NonDeterministicChannelReader.java:126) > > > >>> > > > >>>> at > > > >>>>> > > > >>>>> > > > >>>>> > > > >>> > > > > > > org.apache.hyracks.dataflow.std.collectors.NonDeterministicFrameReader.nextFrame(NonDeterministicFrameReader.java:43) > > > >>> > > > >>>> at org.apache.hyracks.control.nc.Task.pushFrames(Task.java:344) > > > >>>>> ... 4 more > > > >>>>> Caused by: java.lang.InterruptedException > > > >>>>> at java.lang.Object.wait(Native Method) > > > >>>>> at java.lang.Object.wait(Object.java:502) > > > >>>>> at > > > >>>>> > > > >>>>> > > > >>>>> > > > >>> > > > > > > org.apache.hyracks.dataflow.std.collectors.NonDeterministicChannelReader.findNextSender(NonDeterministicChannelReader.java:124) > > > >>> > > > >>>> ... 6 more > > > >>>>> org.apache.hyracks.api.exceptions.HyracksDataException: > > > >>>>> org.apache.hyracks.api.exceptions.HyracksDataException: > > > >>>>> java.lang.InterruptedException > > > >>>>> at org.apache.hyracks.control.nc.Task.pushFrames(Task.java:365) > > > >>>>> at org.apache.hyracks.control.nc.Task.run(Task.java:297) > > > >>>>> at > > > >>>>> > > > >>>>> > > > >>>>> > > > >>> > > > > > > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) > > > >>> > > > >>>> at > > > >>>>> > > > >>>>> > > > >>>>> > > > >>> > > > > > > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) > > > >>> > > > >>>> at java.lang.Thread.run(Thread.java:745) > > > >>>>> Caused by: > org.apache.hyracks.api.exceptions.HyracksDataException: > > > >>>>> java.lang.InterruptedException > > > >>>>> at > > > >>>>> > > > >>>>> > > > >>>>> > > > >>> > > > > > > org.apache.hyracks.dataflow.std.collectors.NonDeterministicChannelReader.findNextSender(NonDeterministicChannelReader.java:126) > > > >>> > > > >>>> at > > > >>>>> > > > >>>>> > > > >>>>> > > > >>> > > > > > > org.apache.hyracks.dataflow.std.collectors.NonDeterministicFrameReader.nextFrame(NonDeterministicFrameReader.java:43) > > > >>> > > > >>>> at org.apache.hyracks.control.nc.Task.pushFrames(Task.java:344) > > > >>>>> ... 4 more > > > >>>>> Caused by: java.lang.InterruptedException > > > >>>>> at java.lang.Object.wait(Native Method) > > > >>>>> at java.lang.Object.wait(Object.java:502) > > > >>>>> at > > > >>>>> > > > >>>>> > > > >>>>> > > > >>> > > > > > > org.apache.hyracks.dataflow.std.collectors.NonDeterministicChannelReader.findNextSender(NonDeterministicChannelReader.java:124) > > > >>> > > > >>>> ... 6 more > > > >>>>> testFile > > > >>>>> > > > >>>>> > > > >>>>> > > > >>> > > > > > > src/test/resources/runtimets/queries/external-library/tweetGeoTag/tweetGeoTag.3.update.aql > > > >>> > > > >>>> raised an exception: > > > >>>>> java.lang.Exception: HTTP operation failed: 2 > > > >>>>> STATUS LINE: HTTP/1.1 500 Server Error > > > >>>>> SUMMARY: Error: Failure in feed > > > >>>>> > > > >>>>> STACKTRACE: > org.apache.asterix.common.exceptions.AsterixException: > > > >>>>> Failure > > > >>>>> in feed > > > >>>>> at > > > >>>>> > > > >>>>> > > > >>>>> > > > >>> > > > > > > org.apache.asterix.external.feed.management.FeedLifecycleEventSubscriber.assertNoFailure(FeedLifecycleEventSubscriber.java:62) > > > >>> > > > >>>> at > > > >>>>> > > > >>>>> > > > >>>>> > > > >>> > > > > > > org.apache.asterix.external.feed.management.FeedLifecycleEventSubscriber.assertEvent(FeedLifecycleEventSubscriber.java:55) > > > >>> > > > >>>> at > > > >>>>> > > > >>>>> > > > >>>>> > > > >>> > > > > > > org.apache.asterix.aql.translator.QueryTranslator.handleConnectFeedStatement(QueryTranslator.java:2238) > > > >>> > > > >>>> at > > > >>>>> > > > >>>>> > > > >>>>> > > > >>> > > > > > > org.apache.asterix.aql.translator.QueryTranslator.compileAndExecute(QueryTranslator.java:366) > > > >>> > > > >>>> at > > > >>>>> > > > >>>>> > > > >>>>> > > > >>> > > > > > > org.apache.asterix.aql.translator.QueryTranslator.compileAndExecute(QueryTranslator.java:253) > > > >>> > > > >>>> at > > > >>>>> > > > >>>>> > > > >>>>> > > > >>> > > > > > > org.apache.asterix.api.http.servlet.RESTAPIServlet.handleRequest(RESTAPIServlet.java:195) > > > >>> > > > >>>> at > > > >>>>> > > > >>>>> > > > >>>>> > > > >>> > > > > > > org.apache.asterix.api.http.servlet.UpdateAPIServlet.handleRequest(UpdateAPIServlet.java:30) > > > >>> > > > >>>> at > > > >>>>> > > > >>>>> > > > >>>>> > > > >>> > > > > > > org.apache.asterix.api.http.servlet.RESTAPIServlet.doPost(RESTAPIServlet.java:162) > > > >>> > > > >>>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:727) > > > >>>>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) > > > >>>>> at > > > >>>>> > > > org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:546) > > > >>>>> at > > > >>>>> > > > >>>>> > > > >>> > > > > > > org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:483) > > > >>> > > > >>>> at > > > >>>>> > > > >>>>> > > > >>>>> > > > >>> > > > > > > org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:228) > > > >>> > > > >>>> at > > > >>>>> > > > >>>>> > > > >>>>> > > > >>> > > > > > > org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:956) > > > >>> > > > >>>> at > > > >>>>> > > > >>>>> > > > >>> > > > > org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:411) > > > >>> > > > >>>> at > > > >>>>> > > > >>>>> > > > >>>>> > > > >>> > > > > > > org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:188) > > > >>> > > > >>>> at > > > >>>>> > > > >>>>> > > > >>>>> > > > >>> > > > > > > org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:891) > > > >>> > > > >>>> at > > > >>>>> > > > >>>>> > > > >>>>> > > > >>> > > > > > > org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117) > > > >>> > > > >>>> at > > > >>>>> > > > >>>>> > > > >>>>> > > > >>> > > > > > > org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:114) > > > >>> > > > >>>> at org.eclipse.jetty.server.Server.handle(Server.java:353) > > > >>>>> at > > > >>>>> > > > >>>>> > > > >>>>> > > > >>> > > > > > > org.eclipse.jetty.server.HttpConnection.handleRequest(HttpConnection.java:598) > > > >>> > > > >>>> at > > > >>>>> > > > >>>>> > > > >>>>> > > > >>> > > > > > > org.eclipse.jetty.server.HttpConnection$RequestHandler.content(HttpConnection.java:1076) > > > >>> > > > >>>> at > org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:805) > > > >>>>> at > > > >>>>> > > org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:218) > > > >>>>> at > > > >>>>> > > > org.eclipse.jetty.server.HttpConnection.handle(HttpConnection.java:427) > > > >>>>> at > > > >>>>> > > > >>>>> > > > >>>>> > > > >>> > > > > > > org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:510) > > > >>> > > > >>>> at > > > >>>>> > > > >>>>> > > > >>>>> > > > >>> > > > > > > org.eclipse.jetty.io.nio.SelectChannelEndPoint.access$000(SelectChannelEndPoint.java:34) > > > >>> > > > >>>> at > > > >>>>> > > > >>>>> > > > >>>>> > > > >>> > > > > > > org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:40) > > > >>> > > > >>>> at > > > >>>>> > > > >>>>> > > > >>>>> > > > >>> > > > > > > org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:450) > > > >>> > > > >>>> at java.lang.Thread.run(Thread.java:745) > > > >>>>> > > > >>>>> at > > > >>>>> > > > >>>>> > > > >>>>> > > > >>> > > > > > > org.apache.asterix.test.aql.TestExecutor.executeHttpMethod(TestExecutor.java:275) > > > >>> > > > >>>> at > > > >>>>> > > > >>>>> > > > >>>>> > > > >>> > > > > > > org.apache.asterix.test.aql.TestExecutor.executeUpdate(TestExecutor.java:331) > > > >>> > > > >>>> at > > > >>>>> > > > >>>>> > > > >>> > > > > > > org.apache.asterix.test.aql.TestExecutor.executeTest(TestExecutor.java:496) > > > >>> > > > >>>> at > > > >>>>> > > > >>>>> > > > >>> > > > > > > org.apache.asterix.test.aql.TestExecutor.executeTest(TestExecutor.java:762) > > > >>> > > > >>>> at > > > >>>>> > > > >>>>> > > > >>> > > > > > > org.apache.asterix.test.runtime.ExecutionTest.test(ExecutionTest.java:106) > > > >>> > > > >>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > > > >>>>> at > > > >>>>> > > > >>>>> > > > >>>>> > > > >>> > > > > > > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) > > > >>> > > > >>>> at > > > >>>>> > > > >>>>> > > > >>>>> > > > >>> > > > > > > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > > > >>> > > > >>>> at java.lang.reflect.Method.invoke(Method.java:497) > > > >>>>> at > > > >>>>> > > > >>>>> > > > >>>>> > > > >>> > > > > > > org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47) > > > >>> > > > >>>> at > > > >>>>> > > > >>>>> > > > >>>>> > > > >>> > > > > > > org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) > > > >>> > > > >>>> at > > > >>>>> > > > >>>>> > > > >>>>> > > > >>> > > > > > > org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44) > > > >>> > > > >>>> at > > > >>>>> > > > >>>>> > > > >>>>> > > > >>> > > > > > > org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17) > > > >>> > > > >>>> at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271) > > > >>>>> at > > > >>>>> > > > >>>>> > > > >>>>> > > > >>> > > > > > > org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70) > > > >>> > > > >>>> at > > > >>>>> > > > >>>>> > > > >>>>> > > > >>> > > > > > > org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50) > > > >>> > > > >>>> at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238) > > > >>>>> at > org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63) > > > >>>>> at > > org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236) > > > >>>>> at > org.junit.runners.ParentRunner.access$000(ParentRunner.java:53) > > > >>>>> at > org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229) > > > >>>>> at org.junit.runners.ParentRunner.run(ParentRunner.java:309) > > > >>>>> at org.junit.runners.Suite.runChild(Suite.java:127) > > > >>>>> at org.junit.runners.Suite.runChild(Suite.java:26) > > > >>>>> at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238) > > > >>>>> at > org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63) > > > >>>>> at > > org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236) > > > >>>>> at > org.junit.runners.ParentRunner.access$000(ParentRunner.java:53) > > > >>>>> at > org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229) > > > >>>>> at > > > >>>>> > > > >>>>> > > > >>>>> > > > >>> > > > > > > org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26) > > > >>> > > > >>>> at > > > >>>>> > > > >>>>> > > > >>> > > > > > > org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27) > > > >>> > > > >>>> at org.junit.runners.ParentRunner.run(ParentRunner.java:309) > > > >>>>> at org.junit.runner.JUnitCore.run(JUnitCore.java:160) > > > >>>>> at > > > >>>>> > > > >>>>> > > > >>>>> > > > >>> > > > > > > com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:119) > > > >>> > > > >>>> at > > > >>>>> > > > >>>>> > > > >>>>> > > > >>> > > > > > > com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:42) > > > >>> > > > >>>> at > > > >>>>> > > > >>>>> > > > >>>>> > > > >>> > > > > > > com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:234) > > > >>> > > > >>>> at > > > >>>>> > > > com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:74) > > > >>>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > > > >>>>> at > > > >>>>> > > > >>>>> > > > >>>>> > > > >>> > > > > > > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) > > > >>> > > > >>>> at > > > >>>>> > > > >>>>> > > > >>>>> > > > >>> > > > > > > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > > > >>> > > > >>>> at java.lang.reflect.Method.invoke(Method.java:497) > > > >>>>> at > > > >>>>> > > com.intellij.rt.execution.application.AppMain.main(AppMain.java:144) > > > >>>>> ...Unexpected! > > > >>>>> > > > >>>>> On Sat, Jul 2, 2016 at 7:23 PM, Raman Grover > > > >>>>> <[email protected]> > > > >>>>> wrote: > > > >>>>> > > > >>>>> i am missing the attachment > > > >>>>>> On Jul 2, 2016 6:39 PM, "Xikui Wang" <[email protected]> wrote: > > > >>>>>> > > > >>>>>> Hi Raman, > > > >>>>>>> > > > >>>>>>> Thanks for your help. I tried this quick fix on my branch, but > it > > > >>>>>>> introduces some new exceptions. I think this causes Asterix > fails > > > >>>>>>> at > > > >>>>>>> entering the external function. The error message is attached. > > > >>>>>>> > > > >>>>>>> Best, > > > >>>>>>> Xikui > > > >>>>>>> > > > >>>>>>> On Fri, Jul 1, 2016 at 10:11 AM, Raman Grover > > > >>>>>>> <[email protected] > > > >>>>>>> > > > >>>>>> > > > >>>>>> wrote: > > > >>>>>>> > > > >>>>>>> Operations related to setting up an external library are > > contained > > > >>>>>>>> in > > > >>>>>>>> ExternalLibraryUtil > > > >>>>>>>> < > > > >>>>>>>> > > > >>>>>>>> > > > >>>>>> > > > >>>>> > > > >>> > > > > > > https://github.com/apache/asterixdb/blob/master/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/external/ExternalLibraryUtils.java > > > >>> > > > >>>> > > > >>>>>>>>> > > > >>>>>>>> At line 382, we have > > > >>>>>>>> // create and return the class loader > > > >>>>>>>> > > > >>>>>>>> ClassLoader classLoader = new URLClassLoader(urls, > > > >>>>>>>> parentClassLoader); > > > >>>>>>>> return classLoader; > > > >>>>>>>> > > > >>>>>>>> Above, we have the parentClassLoader set to the classloader > for > > > >>>>>>>> ExternalLibraryUtil which is the application class loader > > > >>>>>>>> (AsterixDB's > > > >>>>>>>> classloader that loads the dependencies from pom.xml). The > > > >>>>>>>> proposed > > > >>>>>>>> solution (a) in earlier thread - skipping application > > classloader > > > >>>>>>>> > > > >>>>>>> would > > > >>>>> > > > >>>>>> translate to replacing the above code with > > > >>>>>>>> > > > >>>>>>>> ClassLoader classLoader = new URLClassLoader(urls, null); > > > >>>>>>>> > > > >>>>>>>> Regards, > > > >>>>>>>> Raman > > > >>>>>>>> > > > >>>>>>>> On Thu, Jun 30, 2016 at 4:41 PM, Xikui Wang <[email protected]> > > > >>>>>>>> wrote: > > > >>>>>>>> > > > >>>>>>>> > > > >>>>>>>>>> Hi Abdullah, > > > >>>>>>>>>> > > > >>>>>>>>> > > > >>>>>>>>> I reverted my code to reproduce the problem. Noticing this > > > >>>>>>>>> external > > > >>>>>>>>> function has a couple of other bugs but the dependency one is > > > >>>>>>>>> > > > >>>>>>>> blocking > > > >>>>> > > > >>>>>> others, so this should be enough to reproduce the problem. > > > >>>>>>>>> > > > >>>>>>>>> > > > >>>>>>>>>> The external function package is geoTag.zip. > > > >>>>>>>>> > > > >>>>>>>>> > > > >>>>>>>>>> > > > >>>>>>>>>> Test scripts are in tweetGeoTag.zip > > > >>>>>>>>>> > > > >>>>>>>>> > > > >>>>>>>>> External function is loading data from data/, i.e.: > > > >>>>>>>>> data/state.json > > > >>>>>>>>> > > > >>>>>>>> . > > > >>>>> > > > >>>>>> So > > > >>>>>> > > > >>>>>>> all json files in data.zip need to be placed under > > > >>>>>>>>> ../asterixdb/asterix-app/data/ > > > >>>>>>>>> > > > >>>>>>>>> The real_tweets_adm.adm used in ddl is also attached. > > > >>>>>>>>> > > > >>>>>>>>> This setting will cause > > > >>>>>>>>> > > > >>>>>>>>> java.lang.NoSuchMethodError: > > > >>>>>>>>> > > > >>>>>>>>>> > > > com.fasterxml.jackson.core.JsonFactory.requiresPropertyOrdering()Z > > > >>>>>>>>>> at > > > >>>>>>>>>> > > > >>>>>>>>>> > > > >>>>>>>> > > > >>>>>> > > > >>> > > > > com.fasterxml.jackson.databind.ObjectMapper.<init>(ObjectMapper.java:541) > > > >>> > > > >>>> at > > > >>>>>>>>>> > > > >>>>>>>>>> > > > >>>>>>>> > > > >>>>>> > > > >>> > > > > com.fasterxml.jackson.databind.ObjectMapper.<init>(ObjectMapper.java:452) > > > >>> > > > >>>> at > > > >>>>>>>>>> > > > >>>>>>>>> > > > org.wololo.geojson.GeoJSONFactory.<clinit>(GeoJSONFactory.java:17) > > > >>>>>> > > > >>>>>>> at > > > >>>>>>>>>> > > > >>>>>>>>>> > > > >>>>>>>>> > > > >>>>>>>> > > > >>>>>> > > > >>>>> > > > >>> > > > > > > edu.uci.ics.cloudberry.gnosis.USGeoJSONIndex.loadShape(IGeoIndex.scala:29) > > > >>> > > > >>>> at > > > >>>>>>>>>> > > > >>>>>>>>>> > > > >>>>>>>>> > > > >>>>>>>> > > > >>>>>> > > > >>>>> > > > >>> > > > > > > edu.uci.ics.cloudberry.gnosis.USGeoGnosis$.loadShape(USGeoGnosis.scala:101) > > > >>> > > > >>>> at > > > >>>>>>>>>> > > > >>>>>>>>>> > > > >>>>>>>>> > > > >>>>>>>> > > > >>>>>> > > > >>>>> > > > >>> > > > > > > edu.uci.ics.cloudberry.gnosis.USGeoGnosis$$anonfun$load$1.apply(USGeoGnosis.scala:20) > > > >>> > > > >>>> at > > > >>>>>>>>>> > > > >>>>>>>>>> > > > >>>>>>>>> > > > >>>>>>>> > > > >>>>>> > > > >>>>> > > > >>> > > > > > > edu.uci.ics.cloudberry.gnosis.USGeoGnosis$$anonfun$load$1.apply(USGeoGnosis.scala:18) > > > >>> > > > >>>> at > > > >>>>>>>>>> > > > >>>>>>>>>> > > > >>>>>>>>> > > > >>>>>>>> > > > >>>>>> > > > >>>>> > > > >>> > > > > > > scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:245) > > > >>> > > > >>>> at > > > >>>>>>>>>> > > > >>>>>>>>>> > > > >>>>>>>>> > > > >>>>>>>> > > > >>>>>> > > > >>>>> > > > >>> > > > > > > scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:245) > > > >>> > > > >>>> at scala.collection.immutable.List.foreach(List.scala:381) > > > >>>>>>>>>> at > > > >>>>>>>>>> > > > >>>>>>>>> > > > >>>>>>>> > > > scala.collection.TraversableLike$class.map(TraversableLike.scala:245) > > > >>>>>>>> > > > >>>>>>>>> at scala.collection.immutable.List.map(List.scala:285) > > > >>>>>>>>>> at > > > >>>>>>>>>> > > > >>>>>>>>> > > > >>>>>>>> > > > edu.uci.ics.cloudberry.gnosis.USGeoGnosis.load(USGeoGnosis.scala:18) > > > >>>>>>>> > > > >>>>>>>>> at > > > >>>>>>>>>> > > > >>>>>>>>> > > > >>>>>>>> > > > >>> > > edu.uci.ics.cloudberry.gnosis.USGeoGnosis.<init>(USGeoGnosis.scala:15) > > > >>> > > > >>>> at > > > >>>>>>>>>> > > > >>>>>>>>>> > > > >>>>>>>>> > > > >>>>>>>> > > > >>>>>> > > > >>>>> > > > >>> > > > > > > edu.uci.ics.cloudberry.noah.feed.GeoTagFunction.initialize(GeoTagFunction.java:34) > > > >>> > > > >>>> at > > > >>>>>>>>>> > > > >>>>>>>>>> > > > >>>>>>>>> > > > >>>>>>>> > > > >>>>>> > > > >>>>> > > > >>> > > > > > > org.apache.asterix.external.library.ExternalFunction.initialize(ExternalFunction.java:113) > > > >>> > > > >>>> > > > >>>>>>>>>> > > > >>>>>>>>> The attachments exceed the size limits. I moved them under > this > > > >>>>>>>>> > > > >>>>>>>> google > > > >>>>> > > > >>>>>> drive directory: > > > >>>>>>>>> > > > >>>>>>>>> > > > >>>>>>>>> > > > >>>>>>>>> > > > >>>>>>>> > > > >>>>>> > > > >>>>> > > > >>> > > > > > > https://drive.google.com/folderview?id=0B_6Dzy3OTjaNRUVJWTRvWEtKSU0&usp=sharing > > > >>> > > > >>>> > > > >>>>>>>>> Let me know if you need anything else. Thanks. > > > >>>>>>>>> > > > >>>>>>>>> Best, > > > >>>>>>>>> Xikui > > > >>>>>>>>> > > > >>>>>>>>> On Thu, Jun 30, 2016 at 12:06 PM, abdullah alamoudi < > > > >>>>>>>>> > > > >>>>>>>> [email protected] > > > >>>>>> > > > >>>>>>> > > > >>>>>>>>> wrote: > > > >>>>>>>>> > > > >>>>>>>>> I will look into that. > > > >>>>>>>>>> > > > >>>>>>>>>>> > > > >>>>>>>>>>> @Xikui, > > > >>>>>>>>>>> Do you have a reproducable use case where such a behavior > can > > > >>>>>>>>>>> be > > > >>>>>>>>>>> > > > >>>>>>>>>> observed? > > > >>>>>>>>> > > > >>>>>>>>>> > > > >>>>>>>>>>> Cheers, > > > >>>>>>>>>>> Abdullah. > > > >>>>>>>>>>> > > > >>>>>>>>>>> On Thu, Jun 30, 2016 at 7:53 PM, Raman Grover < > > > >>>>>>>>>>> > > > >>>>>>>>>> [email protected]> > > > >>>>>>>> > > > >>>>>>>>> wrote: > > > >>>>>>>>>>> > > > >>>>>>>>>>> Hi > > > >>>>>>>>>>>> > > > >>>>>>>>>>>> Each external library has an separately associated custom > > > >>>>>>>>>>>> class > > > >>>>>>>>>>>> > > > >>>>>>>>>>> loader > > > >>>>>>>> > > > >>>>>>>>> (URLClassLoader) that loads the contained functions and any > > > >>>>>>>>>>>> > > > >>>>>>>>>>> dependencies > > > >>>>>>>>> > > > >>>>>>>>>> (jar files) packaged inside the library. The custom loader > > > >>>>>>>>>>>> fits > > > >>>>>>>>>>>> > > > >>>>>>>>>>> into > > > >>>>>>>> > > > >>>>>>>>> the > > > >>>>>>>>> > > > >>>>>>>>>> natural hierarchy with system (classpath based) classloader > as > > > >>>>>>>>>>>> > > > >>>>>>>>>>> the > > > >>>>>> > > > >>>>>>> immediate parent and bootstrap classloader as the root. As the > > > >>>>>>>>>>>> > > > >>>>>>>>>>> delegation > > > >>>>>>>>>>> > > > >>>>>>>>>>>> model works, a class loader attempts to load a class only > > > >>>>>>>>>>>> after > > > >>>>>>>>>>>> > > > >>>>>>>>>>> parent(s) > > > >>>>>>>>>>> > > > >>>>>>>>>>>> in the lineage have failed. > > > >>>>>>>>>>>> > > > >>>>>>>>>>>> In your specific case, the system class loader is able to > > find > > > >>>>>>>>>>>> > > > >>>>>>>>>>> the > > > >>>>>> > > > >>>>>>> jackson > > > >>>>>>>>>>> > > > >>>>>>>>>>>> library from the configured classpath and so the library > > > >>>>>>>>>>>> > > > >>>>>>>>>>> classloader > > > >>>>>>>> > > > >>>>>>>>> is > > > >>>>>>>>> > > > >>>>>>>>>> not > > > >>>>>>>>>>> > > > >>>>>>>>>>>> involved at all for this jar. The problem arising due to > > > >>>>>>>>>>>> > > > >>>>>>>>>>> different > > > >>>>>> > > > >>>>>>> versions > > > >>>>>>>>>>> > > > >>>>>>>>>>>> of a jar present across the hierarchy of classloaders is > > > >>>>>>>>>>>> > > > >>>>>>>>>>> similar > > > >>>>> > > > >>>>>> to > > > >>>>>> > > > >>>>>>> one > > > >>>>>>>>> > > > >>>>>>>>>> faced in web containers such as Tomcat or application > servers > > > >>>>>>>>>>>> > > > >>>>>>>>>>> such > > > >>>>>> > > > >>>>>>> as > > > >>>>>>>> > > > >>>>>>>>> Websphere where system loaded classes can override any > > > >>>>>>>>>>>> > > > >>>>>>>>>>> application > > > >>>>>> > > > >>>>>>> specific > > > >>>>>>>>>>> > > > >>>>>>>>>>>> classes due to name conflict. > > > >>>>>>>>>>>> > > > >>>>>>>>>>>> The way you are defining a library is correct. The fix > needs > > > >>>>>>>>>>>> to > > > >>>>>>>>>>>> > > > >>>>>>>>>>> be > > > >>>>>> > > > >>>>>>> in > > > >>>>>>>> > > > >>>>>>>>> the > > > >>>>>>>>>>> > > > >>>>>>>>>>>> way the classes are loaded by AsterixDB (here acting as an > > > >>>>>>>>>>>> > > > >>>>>>>>>>> application > > > >>>>>>>> > > > >>>>>>>>> server). > > > >>>>>>>>>>>> > > > >>>>>>>>>>>> I see two ways:- > > > >>>>>>>>>>>> > > > >>>>>>>>>>>> a) Skipping the system class loader: AsterixDB uses a > > > >>>>>>>>>>>> > > > >>>>>>>>>>> URLClassloader > > > >>>>>>>> > > > >>>>>>>>> to > > > >>>>>>>>> > > > >>>>>>>>>> load libraries. Setting the parent of the this classloader > as > > > >>>>>>>>>>>> > > > >>>>>>>>>>> null > > > >>>>>> > > > >>>>>>> implies > > > >>>>>>>>>>> > > > >>>>>>>>>>>> the bootrstrap classloader (root) as the immediate parent. > > The > > > >>>>>>>>>>>> > > > >>>>>>>>>>> bootstrap > > > >>>>>>>>> > > > >>>>>>>>>> classloader loads rt.jar (java runtime classes) and i18n.jar > > > >>>>>>>>>>>> > > > >>>>>>>>>>> and > > > >>>>> > > > >>>>>> these > > > >>>>>>>> > > > >>>>>>>>> definitely do not have conflicts with your library > > > >>>>>>>>>>>> dependencies > > > >>>>>>>>>>>> > > > >>>>>>>>>>> (if > > > >>>>>> > > > >>>>>>> they > > > >>>>>>>>> > > > >>>>>>>>>> do, not sure why one would override the classes in rt.jar > and > > > >>>>>>>>>>>> > > > >>>>>>>>>>> so > > > >>>>> > > > >>>>>> we > > > >>>>>> > > > >>>>>>> need to > > > >>>>>>>>>>> > > > >>>>>>>>>>>> fix the library). Note that the system classloader is out > of > > > >>>>>>>>>>>> > > > >>>>>>>>>>> the > > > >>>>> > > > >>>>>> hierarchy > > > >>>>>>>>>>> > > > >>>>>>>>>>>> here and so any other jars loaded by AsterixDB from its > > > >>>>>>>>>>>> > > > >>>>>>>>>>> classpath > > > >>>>> > > > >>>>>> (pom.xml) > > > >>>>>>>>>>> > > > >>>>>>>>>>>> would not be visible. > > > >>>>>>>>>>>> > > > >>>>>>>>>>>> b) Defining a Custom Class loader: Inside AsterixDB, we > > > >>>>>>>>>>>> > > > >>>>>>>>>>> provide a > > > >>>>> > > > >>>>>> custom > > > >>>>>>>>> > > > >>>>>>>>>> implementation of classloader that attempts to load a class > > > >>>>>>>>>>>> > > > >>>>>>>>>>> prior > > > >>>>> > > > >>>>>> to > > > >>>>>>>> > > > >>>>>>>>> delegating to the parent. This way, the library classes and > > > >>>>>>>>>>>> > > > >>>>>>>>>>> packaged > > > >>>>>>>> > > > >>>>>>>>> dependencies override any system level classes from the class > > > >>>>>>>>>>>> > > > >>>>>>>>>>> path > > > >>>>>> > > > >>>>>>> and > > > >>>>>>>> > > > >>>>>>>>> even > > > >>>>>>>>>>> > > > >>>>>>>>>>>> the classes contained in rt.jar and i18n.jar. > > > >>>>>>>>>>>> > > > >>>>>>>>>>>> I am opening the discussion here to suggest further > > > >>>>>>>>>>>> > > > >>>>>>>>>>> alternatives > > > >>>>> > > > >>>>>> or > > > >>> >
