'mvn -P developer -pl developer -Ddeploydb' greets me below error:

[INFO]
[INFO] --- exec-maven-plugin:1.2.1:java (create-schema) @ cloud-developer ---
========> WARNING: Provided file does not exist: 
/home/frank/dev/incubator-cloudstack/utils/conf/db.properties.override
[WARNING]
java.lang.reflect.InvocationTargetException
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:616)
        at org.codehaus.mojo.exec.ExecJavaMojo$1.run(ExecJavaMojo.java:297)
        at java.lang.Thread.run(Thread.java:679)
Caused by: java.lang.ExceptionInInitializerError
        at com.cloud.upgrade.DatabaseCreator.main(DatabaseCreator.java:160)
        ... 6 more
Caused by: com.cloud.utils.exception.CloudRuntimeException: File db.properties 
not found
        at 
com.cloud.utils.crypt.EncryptionSecretKeyChecker.check(EncryptionSecretKeyChecker.java:142)
        at com.cloud.utils.db.Transaction.<clinit>(Transaction.java:101)
        ... 7 more
Caused by: java.io.FileNotFoundException: 
file:/home/frank/.m2/repository/org/apache/cloudstack/cloud-utils/4.1.0-SNAPSHOT/cloud-utils-4.1.0-SNAPSHOT-tests.jar!/db.properties
 (No such file or directory)
        at java.io.FileInputStream.open(Native Method)
        at java.io.FileInputStream.<init>(FileInputStream.java:137)
        at 
com.cloud.utils.crypt.EncryptionSecretKeyChecker.check(EncryptionSecretKeyChecker.java:65)

after looking into it, I think it's a bug that everyone would encounter, but to 
my surprise it seems as if only I suffer it.

The cause is in EncryptionSecretKeyChecker.java

    @Override
    public void check() {
        //Get encryption type from db.properties
        final File dbPropsFile = PropertiesUtil.findConfigFile("db.properties");
        final Properties dbProps = new Properties();

        ... .... 

PropertiesUtil.findConfigFile will search file in classpath first, and 
unfortunately cloud-utils-4.1.0-SNAPSHOT-tests.jar does have db.properties 
packaged in it, then it's returned as the first match. 
As it's a file in JAR it can not be opened as ordinary file that why the 
exception happens.

I don't know why we have utils/conf/db.properties,  can anyone tell me its 
purpose? And does anyone else encountered this bug?

Reply via email to