You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The JavaFX javafx.util.Pair is used by 3 classes in the production htm.java codebase (src/main/java). JavaFX isn't a problem on bare-metal hardware or virtual machines, but Docker deployments are more challenging. JavaFX requires a window manager that isn't available on container architectures. Most Docker base images with the JDK or JRE do not provide JavaFX at runtime, resulting in an exception like the following:
java.lang.NoClassDefFoundError: javafx/util/Pair
at org.numenta.nupic.algorithms.TemporalMemory.compute(TemporalMemory.java:145)
at org.numenta.nupic.network.Layer.temporalInput(Layer.java:1942)
at org.numenta.nupic.network.Layer$FunctionFactory$2.call(Layer.java:2285)
at org.numenta.nupic.network.Layer$FunctionFactory$2.call(Layer.java:2274)
at rx.internal.operators.OperatorMap$1.onNext(OperatorMap.java:55)
at rx.internal.operators.OperatorMap$1.onNext(OperatorMap.java:55)
at rx.internal.operators.OperatorFilter$1.onNext(OperatorFilter.java:54)
at rx.internal.operators.OperatorMap$1.onNext(OperatorMap.java:55)
at rx.internal.operators.OperatorCast$1.onNext(OperatorCast.java:50)
at rx.internal.operators.OperatorFilter$1.onNext(OperatorFilter.java:54)
at rx.subjects.SubjectSubscriptionManager$SubjectObserver.onNext(SubjectSubscriptionManager.java:224)
at rx.subjects.PublishSubject.onNext(PublishSubject.java:114)
at org.numenta.nupic.network.Layer.compute(Layer.java:937)
at org.numenta.nupic.network.Region.compute(Region.java:250)
at org.numenta.nupic.network.Network.computeImmediate(Network.java:630)
at org.numenta.nupic.flink.streaming.api.operator.AbstractHTMInferenceOperator.processInput(AbstractHTMInferenceOperator.java:122)
at org.numenta.nupic.flink.streaming.api.operator.AbstractHTMInferenceOperator.processElement(AbstractHTMInferenceOperator.java:102)
at org.numenta.nupic.flink.streaming.api.operator.KeyedHTMInferenceOperator.processElement(KeyedHTMInferenceOperator.java:95)
at org.apache.flink.streaming.runtime.io.StreamInputProcessor.processInput(StreamInputProcessor.java:176)
at org.apache.flink.streaming.runtime.tasks.OneInputStreamTask.run(OneInputStreamTask.java:66)
at org.apache.flink.streaming.runtime.tasks.StreamTask.invoke(StreamTask.java:266)
This seems overkill just to support a Pair class that could be provided numerous other ways. Can you provide a custom Pair implementation, or use a Pair implementation from an existing library dependency (e.g. chaschev.lang.Pair)?
The text was updated successfully, but these errors were encountered:
@skidder Yes, I am intending to change this (right now in my current PR actually) because I suspected weird handling of the bundled JavaFX (later on).
Feel free to add a Pair class to org.numenta.nupic.utils with a getFirst() / getLast() method or equivalent names of your choosing? ...and submit a PR and I will just use yours?
The JavaFX
javafx.util.Pair
is used by 3 classes in the productionhtm.java
codebase (src/main/java
). JavaFX isn't a problem on bare-metal hardware or virtual machines, but Docker deployments are more challenging. JavaFX requires a window manager that isn't available on container architectures. Most Docker base images with the JDK or JRE do not provide JavaFX at runtime, resulting in an exception like the following:This seems overkill just to support a
Pair
class that could be provided numerous other ways. Can you provide a custom Pair implementation, or use a Pair implementation from an existing library dependency (e.g.chaschev.lang.Pair
)?The text was updated successfully, but these errors were encountered: