Details
-
Fix
-
Status: Released (View Workflow)
-
Minor
-
Resolution: Fixed
-
1.12, 1.13
-
None
-
None
Description
Current Situation
When the JobScheduler database password contains a special character e.g. "?" the JobScheduler at the time of installation does not create all the tables.
In the scheduler.log file we have the following error:
10 16:02:21.889 c.s.j.r.p.FactEventHandler [ERROR] - [onActivate]com.sos.hibernate.exceptions.SOSHibernateFactoryBuildException: [C:\ProgramData\sos-berlin.com\jobscheduler\ztscheduler37_test\config\reporting.hibernate.cfg.xml] com.sos.hibernate.exceptions.SOSHibernateConfigurationException: java.lang.IllegalArgumentException: Chunk [36] is not a valid entry com.sos.hibernate.exceptions.SOSHibernateFactoryBuildException: [C:\ProgramData\sos-berlin.com\jobscheduler\ztscheduler37_test\config\reporting.hibernate.cfg.xml]
The scheduler_install_tables.sh|cmd when executed shows the error as:
...the JobScheduler database management system is mysql ...installing JobScheduler tables in SQL database which not exist java.lang.Exception: connect to database failed: java.lang.Exception: Error occured creating connection object for class SOSMySQLConnection: null at sos.connection.SOSConnectionFileProcessor.init(SOSConnectionFileProcessor.java:55) at sos.connection.SOSConnectionFileProcessor.<init>(SOSConnectionFileProcessor.java:38) at sos.connection.SOSConnectionFileProcessor.main(SOSConnectionFileProcessor.java:211) Caused by: java.lang.Exception: Error occured creating connection object for class SOSMySQLConnection: null at sos.connection.SOSConnection.createInstance(SOSConnection.java:2496) at sos.connection.SOSConnection.createInstance(SOSConnection.java:351) at sos.connection.SOSConnectionFileProcessor.init(SOSConnectionFileProcessor.java:50) ... 2 more Caused by: java.lang.reflect.InvocationTargetException at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:423) at sos.connection.SOSConnection.createInstance(SOSConnection.java:2494) ... 4 more Caused by: java.lang.IllegalArgumentException: Chunk [word!] is not a valid entry at com.google.common.base.Preconditions.checkArgument(Preconditions.java:217) at com.google.common.base.Splitter$MapSplitter.split(Splitter.java:526) at com.sos.keepass.SOSKeePassPath.<init>(SOSKeePassPath.java:63) at com.sos.keepass.SOSKeePassResolver.getKeePassPath(SOSKeePassResolver.java:129) at com.sos.keepass.SOSKeePassResolver.resolve(SOSKeePassResolver.java:89) at sos.connection.SOSConnection.resolveCredentialStoreProperties(SOSConnection.java:248) at sos.connection.SOSConnection.<init>(SOSConnection.java:168) at sos.connection.SOSMySQLConnection.<init>(SOSMySQLConnection.java:37) ... 9 more
How to Reproduce
- Create a database with a password that contains a special character ("?") symbol.
- Install the JobScheduler with this database using the above database credentials.
- During installation, some database tables will be created but not able to create all the tables.
- When trying to access the JobScheduler the database is not connected.
Desired Behavior
The JobScheduler should able to access "?" in the database password