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

Incorrect string value: '\x8C' #955

Open
sortjiajun opened this issue May 9, 2024 · 2 comments
Open

Incorrect string value: '\x8C' #955

sortjiajun opened this issue May 9, 2024 · 2 comments

Comments

@sortjiajun
Copy link

ch.vorburger.exec.ManagedProcessException: An error occurred while running a script file sourced from the classpath at: dbconf/dml/vip_ocim_admin/ocim_admin_dml.sql
at ch.vorburger.mariadb4j.DB.run(DB.java:371)
at ch.vorburger.mariadb4j.DB.source(DB.java:306)
at ch.vorburger.mariadb4j.DB.source(DB.java:287)
at com.vip.ocim.report.testsuite.TestDBInitializer.initDBOcimAdmin(TestDBInitializer.java:168)
at com.vip.ocim.report.testsuite.TestDBInitializer.initDB(TestDBInitializer.java:70)
at com.vip.ocim.report.testsuite.TestDBInitializer.postConstruct(TestDBInitializer.java:37)
at com.vip.ocim.report.testsuite.UnitTestBase.init(UnitTestBase.java:64)
at com.vip.ocim.report.testsuite.UnitTestBase.(UnitTestBase.java:47)
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 org.junit.runners.BlockJUnit4ClassRunner.createTest(BlockJUnit4ClassRunner.java:250)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTest(SpringJUnit4ClassRunner.java:226)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner$1.runReflectiveCall(SpringJUnit4ClassRunner.java:289)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.methodBlock(SpringJUnit4ClassRunner.java:291)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:246)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:97)
at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)
at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61)
at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70)
at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
at org.junit.runners.ParentRunner.run(ParentRunner.java:413)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:190)
at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:69)
at com.intellij.rt.junit.IdeaTestRunner$Repeater$1.execute(IdeaTestRunner.java:38)
at com.intellij.rt.execution.junit.TestsRepeater.repeat(TestsRepeater.java:11)
at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:35)
at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:235)
at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:54)
Caused by: ch.vorburger.exec.ManagedProcessException: Program [D:\apps\svr\cfgbackup\memdb\bin\mysql.exe, -uroot, -Dvip_ocim_admin, --port=3306] (in working directory D:\apps\svr\cfgbackup\memdb) failed, exitValue=-559038737, last 100 lines of console:
ERROR 1366 (22007) at line 1: Incorrect string value: '\x8C' for column 'tenant_description' at row 1
at ch.vorburger.exec.ManagedProcess.checkResult(ManagedProcess.java:310)
at ch.vorburger.exec.ManagedProcess.startExecute(ManagedProcess.java:216)
at ch.vorburger.exec.ManagedProcess.start(ManagedProcess.java:155)
at ch.vorburger.mariadb4j.DB.run(DB.java:368)
... 35 more
Caused by: org.apache.commons.exec.ExecuteException: Execution failed (Exit value: -559038737. Caused by java.io.IOException: Stream Closed)
at org.apache.commons.exec.DefaultExecutor$1.run(DefaultExecutor.java:205)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.io.IOException: Stream Closed
at java.io.FileOutputStream.writeBytes(Native Method)
at java.io.FileOutputStream.write(FileOutputStream.java:326)
at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:82)
at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:140)
at java.io.FilterOutputStream.close(FilterOutputStream.java:158)
at org.apache.commons.exec.DefaultExecutor.closeProcessStreams(DefaultExecutor.java:306)
at org.apache.commons.exec.DefaultExecutor.executeInternal(DefaultExecutor.java:387)
at org.apache.commons.exec.DefaultExecutor.access$200(DefaultExecutor.java:48)
at org.apache.commons.exec.DefaultExecutor$1.run(DefaultExecutor.java:200)
... 1 more

insert sql DML

error line: db.source("dbconf/dml/vipshop_webim/webim_dml.sql", "root", "", dbName);

Contains Chinese strings

how to solve this problem

@vorburger
Copy link
Collaborator

vorburger commented May 10, 2024

Contains Chinese strings

@sortjiajun this is likely an "encoding" issue... are you using MariaDB4j "professionally" (at work) and would be willing to pay for support for me to fix this for you?

@vorburger
Copy link
Collaborator

@sortjiajun this is likely an "encoding" issue...

It's because years ago I had (wrongly) hard-coded a Charset.defaultCharset() here...

... it may be better to use the configuration.getDefaultCharacterSet() instead of Charset.defaultCharset(), there.

This would mix the "DB Encoding" with the "Encoding of Resources on the Classpath" - but that's probably still better than a hard-coded Charset.defaultCharset(). (If anyone reading along here has an alternative suggestion, e.g. thinks we should have 2 separate properties on DBConfiguration for this, please chime in here!)

@sortjiajun would you like to try changing that and raising a Pull Request with your proposed fix for this?

If you would like me to make this fix for you, then please (README quote) support on OpenCollective, via GitHub Sponsoring or through a Tidelift subscription** to ensure active maintenance of this project used by hundreds, since 2011! 🫶

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants