Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Build fails with "The credential storage is not initialized yet." in credentials plugin version 2.4.0.RC1 #30

Closed
stefaneggerstorfer opened this issue Aug 11, 2016 · 6 comments
Assignees
Labels
Milestone

Comments

@stefaneggerstorfer
Copy link

stefaneggerstorfer commented Aug 11, 2016

The createCredentialsStorage call is now in a project.afterEvaluate block, causing the example below to fail, since in the configuration phase the credentials storage is not yet initialize.
Is this change intentional? How should the credentials now be accessed? (The same issue occurs when I want to use the credentials for a subversion task)

plugins {
    id 'de.qaware.seu.as.code.base' version '2.4.0'
    id 'de.qaware.seu.as.code.credentials' version '2.4.0.RC1'
}

ext {
    seuRoot = 'C:/'
    seuName = 'test'
}

repositories {
    mavenCentral()
    maven {
    url 'https://dl.bintray.com/seu-as-code/maven'
        credentials {
            username project.credentials['Nexus'].username
            password project.credentials['Nexus'].password
        }
    }
}

seuAsCode {
    seuHome = seuRoot
    projectName = seuName
}

task wrapper(type: Wrapper) {
    gradleVersion = '2.14.1'
}

The command-line output:

C:\workspaces\seu>gradlew  -s
> FAILURE: Build failed with an exception.

* Where:
Build file 'C:\workspaces\seu\build.gradle' line: 16

* What went wrong:
A problem occurred evaluating root project 'seu'.
The credential storage is not initialized yet.

* Try:
Run with --info or --debug option to get more log output.

* Exception is:
org.gradle.api.GradleScriptException: A problem occurred evaluating root project 'seu'.
        at org.gradle.groovy.scripts.internal.DefaultScriptRunnerFactory$ScriptRunnerImpl.run(DefaultScriptRunnerFactory.java:93)
        at org.gradle.configuration.DefaultScriptPluginFactory$ScriptPluginImpl$2.run(DefaultScriptPluginFactory.java:177)
        at org.gradle.configuration.ProjectScriptTarget.addConfiguration(ProjectScriptTarget.java:77)
        at org.gradle.configuration.DefaultScriptPluginFactory$ScriptPluginImpl.apply(DefaultScriptPluginFactory.java:182)
        at org.gradle.configuration.project.BuildScriptProcessor.execute(BuildScriptProcessor.java:38)
        at org.gradle.configuration.project.BuildScriptProcessor.execute(BuildScriptProcessor.java:25)
        at org.gradle.configuration.project.ConfigureActionsProjectEvaluator.evaluate(ConfigureActionsProjectEvaluator.java:34)
        at org.gradle.configuration.project.LifecycleProjectEvaluator.evaluate(LifecycleProjectEvaluator.java:55)
        at org.gradle.api.internal.project.AbstractProject.evaluate(AbstractProject.java:540)
        at org.gradle.api.internal.project.AbstractProject.evaluate(AbstractProject.java:93)
        at org.gradle.execution.TaskPathProjectEvaluator.configureHierarchy(TaskPathProjectEvaluator.java:42)
        at org.gradle.configuration.DefaultBuildConfigurer.configure(DefaultBuildConfigurer.java:35)
        at org.gradle.initialization.DefaultGradleLauncher$2.run(DefaultGradleLauncher.java:124)
        at org.gradle.internal.Factories$1.create(Factories.java:22)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:91)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:53)
        at org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:121)
        at org.gradle.initialization.DefaultGradleLauncher.access$200(DefaultGradleLauncher.java:32)
        at org.gradle.initialization.DefaultGradleLauncher$1.create(DefaultGradleLauncher.java:98)
        at org.gradle.initialization.DefaultGradleLauncher$1.create(DefaultGradleLauncher.java:92)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:91)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:63)
        at org.gradle.initialization.DefaultGradleLauncher.doBuild(DefaultGradleLauncher.java:92)
        at org.gradle.initialization.DefaultGradleLauncher.run(DefaultGradleLauncher.java:83)
        at org.gradle.launcher.exec.InProcessBuildActionExecuter$DefaultBuildController.run(InProcessBuildActionExecuter.java:99)
        at org.gradle.tooling.internal.provider.ExecuteBuildActionRunner.run(ExecuteBuildActionRunner.java:28)
        at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35)
        at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:48)
        at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:30)
        at org.gradle.launcher.exec.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:81)
        at org.gradle.launcher.exec.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:46)
        at org.gradle.launcher.daemon.server.exec.ExecuteBuild.doBuild(ExecuteBuild.java:52)
        at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
        at org.gradle.launcher.daemon.server.exec.WatchForDisconnection.execute(WatchForDisconnection.java:37)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
        at org.gradle.launcher.daemon.server.exec.ResetDeprecationLogger.execute(ResetDeprecationLogger.java:26)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
        at org.gradle.launcher.daemon.server.exec.RequestStopIfSingleUsedDaemon.execute(RequestStopIfSingleUsedDaemon.java:34)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
        at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:74)
        at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:72)
        at org.gradle.util.Swapper.swap(Swapper.java:38)
        at org.gradle.launcher.daemon.server.exec.ForwardClientInput.execute(ForwardClientInput.java:72)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
        at org.gradle.launcher.daemon.server.health.DaemonHealthTracker.execute(DaemonHealthTracker.java:47)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
        at org.gradle.launcher.daemon.server.exec.LogToClient.doBuild(LogToClient.java:60)
        at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
        at org.gradle.launcher.daemon.server.exec.EstablishBuildEnvironment.doBuild(EstablishBuildEnvironment.java:72)
        at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
        at org.gradle.launcher.daemon.server.health.HintGCAfterBuild.execute(HintGCAfterBuild.java:41)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
        at org.gradle.launcher.daemon.server.exec.StartBuildOrRespondWithBusy$1.run(StartBuildOrRespondWithBusy.java:50)
        at org.gradle.launcher.daemon.server.DaemonStateCoordinator$1.run(DaemonStateCoordinator.java:237)
        at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:54)
        at org.gradle.internal.concurrent.StoppableExecutorImpl$1.run(StoppableExecutorImpl.java:40)
Caused by: java.lang.IllegalStateException: The credential storage is not initialized yet.
        at de.qaware.seu.as.code.plugins.credentials.CredentialsProperty.get(CredentialsProperty.java:81)
        at build_20dy052n3rzl6e8x8v5c2qvoj$_run_closure2$_closure5$_closure6.doCall(C:\workspaces\seu - Copy\build.gradle:16)
        at org.gradle.api.internal.ClosureBackedAction.execute(ClosureBackedAction.java:67)
        at org.gradle.api.internal.artifacts.repositories.AuthenticationSupporter.credentials(AuthenticationSupporter.java:79)
        at org.gradle.api.internal.artifacts.repositories.AuthenticationSupporter.credentials(AuthenticationSupporter.java:74)
        at org.gradle.api.internal.artifacts.repositories.AbstractAuthenticationSupportedRepository.credentials(AbstractAuthenticationSupportedRepository.java:59)
        at org.gradle.api.internal.artifacts.repositories.DefaultMavenArtifactRepository_Decorated.credentials(Unknown Source)
        at build_20dy052n3rzl6e8x8v5c2qvoj$_run_closure2$_closure5.doCall(C:\workspaces\seu\build.gradle:15)
        at org.gradle.api.internal.ClosureBackedAction.execute(ClosureBackedAction.java:67)
        at org.gradle.api.internal.artifacts.DefaultArtifactRepositoryContainer.addRepository(DefaultArtifactRepositoryContainer.java:87)
        at org.gradle.api.internal.artifacts.dsl.DefaultRepositoryHandler.maven(DefaultRepositoryHandler.java:89)
        at org.gradle.api.internal.artifacts.dsl.DefaultRepositoryHandler.maven(DefaultRepositoryHandler.java:93)
        at org.gradle.internal.metaobject.BeanDynamicObject$MetaClassAdapter.invokeMethod(BeanDynamicObject.java:374)
        at org.gradle.internal.metaobject.BeanDynamicObject.invokeMethod(BeanDynamicObject.java:169)
        at org.gradle.internal.metaobject.CompositeDynamicObject.invokeMethod(CompositeDynamicObject.java:96)
        at org.gradle.internal.metaobject.MixInClosurePropertiesAsMethodsDynamicObject.invokeMethod(MixInClosurePropertiesAsMethodsDynamicObject.java:30)
        at org.gradle.internal.metaobject.CompositeDynamicObject.invokeMethod(CompositeDynamicObject.java:96)
        at org.gradle.internal.metaobject.MixInClosurePropertiesAsMethodsDynamicObject.invokeMethod(MixInClosurePropertiesAsMethodsDynamicObject.java:30)
        at org.gradle.internal.metaobject.ConfigureDelegate.invokeMethod(ConfigureDelegate.java:59)
        at build_20dy052n3rzl6e8x8v5c2qvoj$_run_closure2.doCall(C:\workspaces\seu\build.gradle:13)
        at org.gradle.api.internal.ClosureBackedAction.execute(ClosureBackedAction.java:67)
        at org.gradle.util.ConfigureUtil.configureSelf(ConfigureUtil.java:137)
        at org.gradle.api.internal.artifacts.DefaultArtifactRepositoryContainer.configure(DefaultArtifactRepositoryContainer.java:66)
        at org.gradle.api.internal.artifacts.DefaultArtifactRepositoryContainer.configure(DefaultArtifactRepositoryContainer.java:33)
        at org.gradle.util.ConfigureUtil.configure(ConfigureUtil.java:104)
        at org.gradle.api.internal.project.AbstractProject.repositories(AbstractProject.java:903)
        at org.gradle.internal.metaobject.BeanDynamicObject$MetaClassAdapter.invokeMethod(BeanDynamicObject.java:374)
        at org.gradle.internal.metaobject.BeanDynamicObject.invokeMethod(BeanDynamicObject.java:169)
        at org.gradle.internal.metaobject.CompositeDynamicObject.invokeMethod(CompositeDynamicObject.java:96)
        at org.gradle.internal.metaobject.MixInClosurePropertiesAsMethodsDynamicObject.invokeMethod(MixInClosurePropertiesAsMethodsDynamicObject.java:30)
        at org.gradle.internal.metaobject.AbstractDynamicObject.invokeMethod(AbstractDynamicObject.java:163)
        at org.gradle.groovy.scripts.BasicScript.methodMissing(BasicScript.java:79)
        at build_20dy052n3rzl6e8x8v5c2qvoj.run(C:\workspaces\seu\build.gradle:11)
        at org.gradle.groovy.scripts.internal.DefaultScriptRunnerFactory$ScriptRunnerImpl.run(DefaultScriptRunnerFactory.java:91)
        ... 58 more

BUILD FAILED
Total time: 0.798 secs
@lreimer lreimer added the ready label Aug 12, 2016
@lreimer lreimer self-assigned this Aug 12, 2016
@lreimer lreimer added the bug label Aug 12, 2016
@lreimer
Copy link
Collaborator

lreimer commented Aug 12, 2016

I can see the problem. I will try to find a workaround and implement the plugin configuration differently.

@lreimer
Copy link
Collaborator

lreimer commented Aug 12, 2016

Please try again with the latest plugin version 2.4.0.RC2

plugins {
    id 'de.qaware.seu.as.code.credentials' version '2.4.0.RC2'
}

Also in your build.gradle file I saw that you use credentials to access the Bintray repository. No credentials should be required to access this repo.

@stefaneggerstorfer
Copy link
Author

Thanks for the quick fix, but now it fails with a NoClassDefFoundError in JNA:

Caused by: java.lang.NoClassDefFoundError: Could not initialize class com.sun.jna.platform.win32.WinCrypt$DATA_BLOB
        at com.sun.jna.platform.win32.Crypt32Util.cryptUnprotectData(Crypt32Util.java:121)
        at com.sun.jna.platform.win32.Crypt32Util.cryptUnprotectData(Crypt32Util.java:103)
        at com.sun.jna.platform.win32.Crypt32Util.cryptUnprotectData(Crypt32Util.java:90)
        at de.qaware.seu.as.code.plugins.credentials.win.DPAPIEncryptor.decrypt(DPAPIEncryptor.java:34)
        at de.qaware.seu.as.code.plugins.credentials.win.PropertyCredentialsStorage.findCredentials(PropertyCredentialsStorage.java:118)
        at de.qaware.seu.as.code.plugins.credentials.DisplayCredentialsTask.onAction(DisplayCredentialsTask.java:43)
        at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:75)
        at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$StandardTaskAction.doExecute(AnnotationProcessingTaskFactory.java:228)
        at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$StandardTaskAction.execute(AnnotationProcessingTaskFactory.java:221)
        at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$StandardTaskAction.execute(AnnotationProcessingTaskFactory.java:210)
        at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:621)
        at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:604)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:80)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:61)
        ... 68 more

This is related to java-native-access/jna#668 on Windows 10, JNA 4.2.0 (instead of 4.2.2) works, tested with following workaround:

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath "net.java.dev.jna:jna:4.2.0"
        classpath "net.java.dev.jna:jna-platform:4.2.0"
        classpath("de.qaware.seu.as.code:seuac-credentials-plugin:2.4.0.RC2") {
            exclude group: "net.java.dev.jna"
        }
        classpath "de.qaware.seu.as.code:seuac-svn-plugin:2.1.1"
    }
}

apply plugin: "de.qaware.seu.as.code.credentials"
apply plugin: "de.qaware.seu.as.code.svn"

@lreimer
Copy link
Collaborator

lreimer commented Aug 12, 2016

Thanks for this finding. I will check on my Win10 machine tonight, I have been on Mac most of the time recently. I don't see any problem downgrading the JNA dependencies to 4.2.0.
So I will check an prepare a RC3.

@lreimer lreimer reopened this Aug 12, 2016
@lreimer
Copy link
Collaborator

lreimer commented Aug 12, 2016

I am still on the train, so I can't check on my Win10 machine. Still, I have downgraded to JNA 4.2.0 and published RC3 to Bintray and Gradle plugin repo. Please give it a try.

plugins {
    id 'de.qaware.seu.as.code.credentials' version '2.4.0.RC3'
}

@stefaneggerstorfer
Copy link
Author

Works now, thanks 👍

@lreimer lreimer closed this as completed Aug 13, 2016
@lreimer lreimer added this to the v2.4.0 milestone Aug 13, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants