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 > >>>>>> > >>>>>>> provide > >>>>>>>>>>> > >>>>>>>>>>>> preferences. > >>>>>>>>>>>> > >>>>>>>>>>>> I have a preference for (a) (skipping the system class > >>>>>>>>>>>> loader) > >>>>>>>>>>>> > >>>>>>>>>>> for > >>>>>> > >>>>>>> two > >>>>>>>>> > >>>>>>>>>> reasons: > >>>>>>>>>>>> > >>>>>>>>>>>> a) it is simpler > >>>>>>>>>>>> > >>>>>>>>>>>> b) the other option allows a custom class loader to override > >>>>>>>>>>>> > >>>>>>>>>>> classes > >>>>>>>> > >>>>>>>>> in > >>>>>>>>> > >>>>>>>>>> rt.jar., which is ok but not how classloaders are supposed to > >>>>>>>>>>>> > >>>>>>>>>>> work > >>>>>> > >>>>>>> in > >>>>>>>> > >>>>>>>>> principle. > >>>>>>>>>>>> > >>>>>>>>>>>> Regards, > >>>>>>>>>>>> > >>>>>>>>>>>> Raman > >>>>>>>>>>>> > >>>>>>>>>>>> > >>>>>>>>>>>> > >>>>>>>>>>>> > >>>>>>>>>>>> > >>>>>>>>>>>> > >>>>>>>>>>>> > >>>>>>>>>>>> On Jun 29, 2016 11:07 PM, "Mike Carey" <[email protected]> > >>>>>>>>>>>> > >>>>>>>>>>> wrote: > >>>>>> > >>>>>>> > >>>>>>>>>>>> Any classloader experts have suggestions...? > >>>>>>>>>>>>> On Jun 29, 2016 10:26 PM, "Xikui Wang" <[email protected]> > >>>>>>>>>>>>> > >>>>>>>>>>>> wrote: > >>>>> > >>>>>> > >>>>>>>>>>>>> Hi Devs, > >>>>>>>>>>>>>> > >>>>>>>>>>>>>> We found a problem when trying to build external functions > >>>>>>>>>>>>>> > >>>>>>>>>>>>> for > >>>>>> > >>>>>>> the > >>>>>>>> > >>>>>>>>> cloudberry demo. > >>>>>>>>>>>>>> > >>>>>>>>>>>>>> When the external function is depend on certain library, > >>>>>>>>>>>>>> > >>>>>>>>>>>>> the > >>>>> > >>>>>> library > >>>>>>>>> > >>>>>>>>>> that > >>>>>>>>>>>> > >>>>>>>>>>>>> comes with the external function will be blocked by same > >>>>>>>>>>>>>> > >>>>>>>>>>>>> library > >>>>>>>> > >>>>>>>>> in > >>>>>>>>> > >>>>>>>>>> AsterixDB. In our case, our external function 'geoTag' uses > >>>>>>>>>>>>>> > >>>>>>>>>>>>> jackson > >>>>>>>> > >>>>>>>> >
