Uploaded image for project: 'OptaPlanner'
  1. OptaPlanner
  2. PLANNER-2174

Kotlin: all open classes wrongly trigger fail fast "parameterized collection with an unsupported type argument"

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • Minor
    • 8.0.0.Beta1
    • None
    • optaplanner-core
    • None
    • 3
    • Undefined
    • NEW
    • NEW

    Description

      Kotlin: all open classes wrongly trigger fail fast "parameterized collection with an unsupported type argument"
      Probably also occurs in java when using wildcard typed collections.

      Caused by: java.lang.IllegalArgumentException: The solutionClass (class org.acme.kotlin.schooltimetabling.domain.TimeTable) has a ProblemFactCollectionProperty annotated member (roomList) with a member type (interface java.util.List) which is parameterized collection with an unsupported type argument (? extends org.acme.kotlin.schooltimetabling.domain.Room).
              at org.optaplanner.core.config.util.ConfigUtils.extractCollectionGenericTypeParameter(ConfigUtils.java:375)
              at org.optaplanner.core.impl.score.stream.InnerConstraintFactory.lambda$assertValidFromType$1(InnerConstraintFactory.java:96)
              at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195)
              at java.base/java.util.Iterator.forEachRemaining(Iterator.java:133)
              at java.base/java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1801)
              at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)
              at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
              at java.base/java.util.stream.StreamSpliterators$WrappingSpliterator.forEachRemaining(StreamSpliterators.java:312)
              at java.base/java.util.stream.Streams$ConcatSpliterator.forEachRemaining(Streams.java:735)
              at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)
              at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
              at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:913)
              at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
              at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:578)
              at org.optaplanner.core.impl.score.stream.InnerConstraintFactory.assertValidFromType(InnerConstraintFactory.java:101)
              at org.optaplanner.core.impl.score.stream.drools.DroolsConstraintFactory.fromUnfiltered(DroolsConstraintFactory.java:61)
              at org.optaplanner.core.impl.score.stream.InnerConstraintFactory.from(InnerConstraintFactory.java:52)
              at org.optaplanner.core.impl.score.stream.InnerConstraintFactory.fromUniquePair(InnerConstraintFactory.java:78)
              at org.optaplanner.core.api.score.stream.ConstraintFactory.fromUniquePair(ConstraintFactory.java:208)
              at org.optaplanner.core.api.score.stream.ConstraintFactory.fromUniquePair(ConstraintFactory.java:140)
              at org.acme.kotlin.schooltimetabling.solver.TimeTableConstraintProvider.roomConflict(TimeTableConstraintProvider.kt:46)
              at org.acme.kotlin.schooltimetabling.solver.TimeTableConstraintProvider.defineConstraints(TimeTableConstraintProvider.kt:32)
              at org.optaplanner.core.impl.score.director.stream.ConstraintStreamScoreDirectorFactory.<init>(ConstraintStreamScoreDirectorFactory.java:62)
              at org.optaplanner.core.impl.score.director.ScoreDirectorFactoryFactory.buildConstraintStreamScoreDirectorFactory(ScoreDirectorFactoryFactory.java:182)
              at org.optaplanner.core.impl.score.director.ScoreDirectorFactoryFactory.decideMultipleScoreDirectorFactories(ScoreDirectorFactoryFactory.java:103)
              at org.optaplanner.core.impl.score.director.ScoreDirectorFactoryFactory.buildScoreDirectorFactory(ScoreDirectorFactoryFactory.java:72)
              at org.optaplanner.core.impl.solver.DefaultSolverFactory.buildScoreDirectorFactory(DefaultSolverFactory.java:114)
              at org.optaplanner.core.impl.solver.DefaultSolverFactory.getScoreDirectorFactory(DefaultSolverFactory.java:73)
              at org.optaplanner.core.api.score.ScoreManager.create(ScoreManager.java:56)
              at org.optaplanner.quarkus.OptaPlannerBeanProvider.scoreManager_workaroundHardSoftScore(OptaPlannerBeanProvider.java:98)
              at org.optaplanner.quarkus.OptaPlannerBeanProvider_ProducerMethod_scoreManager_workaroundHardSoftScore_1360553260a851d9f7b6b1b95692caf27b4074a0_Bean.create(OptaPlannerBeanProvider_ProducerMethod_scoreManager_workaroundHardSoftScore_1360553260a851d9f7b6b1b95692caf27b4074a0_Bean.zig:208)
              at org.optaplanner.quarkus.OptaPlannerBeanProvider_ProducerMethod_scoreManager_workaroundHardSoftScore_1360553260a851d9f7b6b1b95692caf27b4074a0_Bean.create(OptaPlannerBeanProvider_ProducerMethod_scoreManager_workaroundHardSoftScore_1360553260a851d9f7b6b1b95692caf27b4074a0_Bean.zig:232)
              at io.quarkus.arc.impl.AbstractSharedContext.createInstanceHandle(AbstractSharedContext.java:96)
              at io.quarkus.arc.impl.AbstractSharedContext.access$000(AbstractSharedContext.java:14)
              at io.quarkus.arc.impl.AbstractSharedContext$1.get(AbstractSharedContext.java:29)
              at io.quarkus.arc.impl.AbstractSharedContext$1.get(AbstractSharedContext.java:26)
              at io.quarkus.arc.impl.LazyValue.get(LazyValue.java:26)
              at io.quarkus.arc.impl.ComputingCache.computeIfAbsent(ComputingCache.java:69)
              at io.quarkus.arc.impl.AbstractSharedContext.get(AbstractSharedContext.java:26)
              at org.optaplanner.quarkus.OptaPlannerBeanProvider_ProducerMethod_scoreManager_workaroundHardSoftScore_1360553260a851d9f7b6b1b95692caf27b4074a0_Bean.get(OptaPlannerBeanProvider_ProducerMethod_scoreManager_workaroundHardSoftScore_1360553260a851d9f7b6b1b95692caf27b4074a0_Bean.zig:264)
              at org.optaplanner.quarkus.OptaPlannerBeanProvider_ProducerMethod_scoreManager_workaroundHardSoftScore_1360553260a851d9f7b6b1b95692caf27b4074a0_Bean.get(OptaPlannerBeanProvider_ProducerMethod_scoreManager_workaroundHardSoftScore_1360553260a851d9f7b6b1b95692caf27b4074a0_Bean.zig:280)
              at org.acme.kotlin.schooltimetabling.rest.TimeTableResource_Bean.create(TimeTableResource_Bean.zig:290)
              ... 40 more
      
      

      Attachments

        Activity

          People

            gdesmet@redhat.com Geoffrey De Smet (Inactive)
            gdesmet@redhat.com Geoffrey De Smet (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: