micronaut-projects / micronaut-core

Micronaut Application Framework
http://micronaut.io
Apache License 2.0
6.04k stars 1.06k forks source link

Application won't start: Invalid Initial Delay definition #1237

Closed ejohnsonw closed 5 years ago

ejohnsonw commented 5 years ago

Application breaks when migrating from 1.0.1 to 1.0.3. Error shown is Invalid Initial Delay definition , please see stacktrace. Seems like 1.0.4 does not execute the register method in TimeConverterRegistrar.

15:23:35.437 [ForkJoinPool.commonPool-worker-1] ERROR i.m.context.DefaultBeanContext - Error processing bean method Definition: io.micronaut.management.health.monitor.HealthMonitorTask.void monitor() with processor (io.micronaut.scheduling.processor.ScheduledMethodProcessor@7b11ff9a): Invalid @Scheduled definition for method: void monitor() - **Reason: Invalid initial delay definition: 1m**
io.micronaut.scheduling.exceptions.SchedulerConfigurationException: Invalid @Scheduled definition for method: void monitor() - Reason: Invalid initial delay definition: 1m
    at io.micronaut.scheduling.processor.ScheduledMethodProcessor.lambda$process$0(ScheduledMethodProcessor.java:91)
    at java.util.Optional.orElseThrow(Optional.java:290)
    at io.micronaut.scheduling.processor.ScheduledMethodProcessor.process(ScheduledMethodProcessor.java:90)
    at io.micronaut.context.DefaultBeanContext.lambda$null$24(DefaultBeanContext.java:1096)
    at java.util.concurrent.ForkJoinTask$RunnableExecuteAction.exec(ForkJoinTask.java:1402)
    at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289)
    at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056)
    at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1692)
    at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157)
15:23:35.437 [ForkJoinPool.commonPool-worker-2] ERROR i.m.context.DefaultBeanContext - Error processing bean method Definition: io.micronaut.health.HeartbeatTask.void pulsate() with processor (io.micronaut.scheduling.processor.ScheduledMethodProcessor@7b11ff9a): Invalid @Scheduled definition for method: _void pulsate()_ - **Reason: Invalid initial delay definition: 5s**
io.micronaut.scheduling.exceptions.SchedulerConfigurationException: Invalid @Scheduled definition for method: void pulsate() - Reason: Invalid initial delay definition: 5s
    at io.micronaut.scheduling.processor.ScheduledMethodProcessor.lambda$process$0(ScheduledMethodProcessor.java:91)
    at java.util.Optional.orElseThrow(Optional.java:290)
    at io.micronaut.scheduling.processor.ScheduledMethodProcessor.process(ScheduledMethodProcessor.java:90)
    at io.micronaut.context.DefaultBeanContext.lambda$null$24(DefaultBeanContext.java:1096)
    at java.util.concurrent.ForkJoinTask$RunnableExecuteAction.exec(ForkJoinTask.java:1402)
    at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289)
    at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056)
    at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1692)
    at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157)

Task List

Steps to Reproduce

Expected Behaviour

Application starts normally

Actual Behaviour

Application breaks

Environment Information

Example Application

ejohnsonw commented 5 years ago

build.gradle:

ext {
//tag::extGorm[]
    gormVersion = '6.1.9.RELEASE'
    micronautVersion = '1.0.1' <== change to 1.0.3 application breaks
    springCloudVersion = 'Greenwich.RELEASE'
    tomcatJdbcVersion = '8.5.28'
    springSecurityCryptoVersion = '4.2.5.RELEASE'
//end::extGorm[]
}

buildscript {
    repositories {
        mavenCentral()
        maven { url "https://plugins.gradle.org/m2/" }
        maven { url "http://ci2:9081/repository/travelful-snapshots/" }
    }
    dependencies {
        classpath "com.github.jengelman.gradle.plugins:shadow:4.0.0"
        classpath "io.spring.gradle:dependency-management-plugin:1.0.6.RELEASE"
        classpath "co.travelful.microservices.gradle:deploy-plugin:1.6.26-SNAPSHOT"
        classpath 'org.hidetake:gradle-ssh-plugin:2.9.0'
    }
}

version "0.5"
group "co.travelful.facade"

apply plugin: "io.spring.dependency-management"
apply plugin: "com.github.johnrengelman.shadow"
apply plugin: "application"
apply plugin: "groovy"
apply plugin: "idea"
apply plugin: "co.travelful.gradle.deploy"

repositories {
    mavenLocal()
    mavenCentral()
    maven { url "https://jcenter.bintray.com" }
    maven { url "http://ci2:9081/repository/travelful-snapshots/" }
}

dependencyManagement {
    imports {
        mavenBom "io.micronaut:micronaut-bom:$micronautVersion"
//        mavenBom "org.springframework.cloud:spring-cloud-dependencies:${springCloudVersion}"
    }
}

dependencies {
    annotationProcessor "io.micronaut:micronaut-inject-java"
    compile "io.micronaut:micronaut-http-client"
    compile "io.micronaut:micronaut-http-server-netty"
    compile "io.micronaut:micronaut-runtime-groovy"
    compile "io.micronaut:micronaut-inject"
    compile "io.micronaut:micronaut-runtime"
    compile "io.micronaut.configuration:micronaut-hibernate-validator"
    compile "io.micronaut.configuration:micronaut-hibernate-gorm"
    compile("org.grails:grails-datastore-gorm-hibernate5:${gormVersion}") {
        //exclude group:"javax.el", module:"javax.el-api"
    }
    compile group: 'com.amazonaws', name: 'aws-java-sdk-s3', version: '1.11.301'
    //  compile "org.apache.commons:commons-imaging:1.0-SNAPSHOT"
    compile group: 'org.codehaus.groovy', name: 'groovy-sql', version: '2.5.1'
    compile group: 'org.codehaus.groovy', name: 'groovy-json', version: '2.5.1'
    compile "io.micronaut.configuration:micronaut-kafka"
    compile "io.micronaut:micronaut-discovery-client"
//    compile "com.generatron.microservices.explorers:micronaut-explorer:0.7.14-SNAPSHOT"
    compile "co.travelful.common:grails-utils:1.2-SNAPSHOT"
    compile fileTree(dir: 'lib', include: '*.jar')
    compile group: 'commons-io', name: 'commons-io', version: '2.4'
    compile "io.micronaut:micronaut-tracing"

//    implementation 'org.springframework.cloud:spring-cloud-starter-consul-discovery'
//    implementation 'org.springframework.cloud:spring-cloud-starter-netflix-zuul'

    runtime group: 'mysql', name: 'mysql-connector-java', version: '8.0.12'
    runtime "org.apache.tomcat:tomcat-jdbc:$tomcatJdbcVersion"
    compileOnly "io.micronaut:micronaut-inject-groovy"

    compile "io.micronaut:micronaut-security"
    compile "org.springframework.security:spring-security-crypto:${springSecurityCryptoVersion}"
    compile "io.micronaut:micronaut-security-jwt"
    compileOnly "io.micronaut:micronaut-inject-java"
    runtime "ch.qos.logback:logback-classic:1.2.3"
    testCompile "io.micronaut:micronaut-inject-groovy"
    testCompile("org.spockframework:spock-core:1.1-groovy-2.4") {
        exclude group: "org.codehaus.groovy", module: "groovy-all"
    }
}

shadowJar {
    mergeServiceFiles()
}

//jar.dependsOn(copyToLib)

run.jvmArgs('-noverify', '-XX:TieredStopAtLevel=1')

mainClassName = "co.travelful.facade.Application"
graemerocher commented 5 years ago

Please could you try with the snapshot of 1.0.5. Might be related to https://github.com/micronaut-projects/micronaut-core/issues/1215

Change build.gradle:

repositories {
    ...
    maven { url "https://oss.sonatype.org/content/repositories/snapshots/" }
}

And specifying the snapshot version as your BOM:

dependencyManagement {
    imports {
        mavenBom 'io.micronaut:micronaut-bom:1.0.5.BUILD-SNAPSHOT'
    }
}
ejohnsonw commented 5 years ago

It works, and I do have a bootstrap.yml

stefanofornari commented 3 months ago

I ran into this issue as well with latest version. Can you please share how it can be worked around?

Additional information: it does not work if I start the server standalone with the shaded jar. It works if I run it with mvn mn:run