Closed fengyingkong closed 1 year ago
Hi,
It looks like there is an error in the XML configuration file. For a simple file share you would specify a local folder for the data and another folder for the deleted files :-
There are more details on how to configure the JFileServer here - https://www.filesys.org/wiki/index.php/Configuring_JFileServer
Cheers
Gary K. Spencer @.***
On 6 Feb 2023, at 08:26, fengyingkong @.***> wrote:
An error is reported as soon as it starts. /Library/Java/JavaVirtualMachines/jdk1.8.0_333.jdk/Contents/Home/bin/java -Dmaven.multiModuleProjectDirectory=/Users/cs/Documents/tencent/identity_safe/smb-server/jfileserver "-Dmaven.home=/Applications/IntelliJ IDEA.app/Contents/plugins/maven/lib/maven3" "-Dclassworlds.conf=/Applications/IntelliJ IDEA.app/Contents/plugins/maven/lib/maven3/bin/m2.conf" "-Dmaven.ext.class.path=/Applications/IntelliJ IDEA.app/Contents/plugins/maven/lib/maven-event-listener.jar" "-javaagent:/Applications/IntelliJ IDEA.app/Contents/lib/idea_rt.jar=53190:/Applications/IntelliJ IDEA.app/Contents/bin" -Dfile.encoding=UTF-8 -classpath "/Applications/IntelliJ IDEA.app/Contents/plugins/maven/lib/maven3/boot/plexus-classworlds.license:/Applications/IntelliJ IDEA.app/Contents/plugins/maven/lib/maven3/boot/plexus-classworlds-2.6.0.jar" org.codehaus.classworlds.Launcher -Didea.version=2020.2.4 exec:java [INFO] Scanning for projects... [INFO] Inspecting build with total of 1 modules... [INFO] Installing Nexus Staging features: [INFO] ... total of 1 executions of maven-deploy-plugin replaced with nexus-staging-maven-plugin [INFO] [INFO] ----------------------< org.filesys:jfileserver >----------------------- [INFO] Building org.filesys:jfileserver 1.3.13 [INFO] --------------------------------[ jar ]--------------------------------- [INFO] [INFO] --- exec-maven-plugin:1.6.0:java (default-cli) @ jfileserver --- %% Failed to load server configuration org.filesys.server.config.InvalidConfigurationException: XML error at org.filesys.app.SMBOnlyXMLServerConfiguration.loadConfiguration(SMBOnlyXMLServerConfiguration.java:187) at org.filesys.app.SMBOnlyXMLServerConfiguration.loadConfiguration(SMBOnlyXMLServerConfiguration.java:155) at org.filesys.app.FileServer.loadConfiguration(FileServer.java:610) at org.filesys.app.FileServer.start(FileServer.java:201) at org.filesys.app.FileServer.main(FileServer.java:141) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.codehaus.mojo.exec.ExecJavaMojo$1.run(ExecJavaMojo.java:282) at java.lang.Thread.run(Thread.java:750) Caused by: org.filesys.server.config.InvalidConfigurationException: XML error at org.filesys.app.XMLServerConfiguration.loadConfiguration(XMLServerConfiguration.java:133) at org.filesys.app.SMBOnlyXMLServerConfiguration.loadConfiguration(SMBOnlyXMLServerConfiguration.java:182) ... 10 more Caused by: org.filesys.server.config.InvalidConfigurationException: Driver context error at org.filesys.app.SMBOnlyXMLServerConfiguration.addDiskShare(SMBOnlyXMLServerConfiguration.java:2249) at org.filesys.app.SMBOnlyXMLServerConfiguration.procSharesElement(SMBOnlyXMLServerConfiguration.java:1340) at org.filesys.app.XMLServerConfiguration.loadConfiguration(XMLServerConfiguration.java:113) ... 11 more Caused by: org.filesys.server.core.DeviceContextException: Trashcan folder does not exist - /Volumes/1TB-SSD/JFileServer/trashcan at org.filesys.smb.server.disk.JavaNIODeviceContext.initialize(JavaNIODeviceContext.java:121) at org.filesys.smb.server.disk.JavaNIODeviceContext.
(JavaNIODeviceContext.java:80) at org.filesys.smb.server.disk.JavaNIODiskDriver.createContext(JavaNIODiskDriver.java:1028) at org.filesys.app.SMBOnlyXMLServerConfiguration.addDiskShare(SMBOnlyXMLServerConfiguration.java:2189) ... 13 more [WARNING] thread Thread[FileSrvWorker1,5,org.filesys.app.FileServer] was interrupted but is still alive after waiting at least 14999msecs [WARNING] thread Thread[FileSrvWorker1,5,org.filesys.app.FileServer] will linger despite being asked to die via interruption [WARNING] thread Thread[FileSrvWorker2,5,org.filesys.app.FileServer] will linger despite being asked to die via interruption [WARNING] thread Thread[FileSrvWorker3,5,org.filesys.app.FileServer] will linger despite being asked to die via interruption [WARNING] thread Thread[FileSrvWorker4,5,org.filesys.app.FileServer] will linger despite being asked to die via interruption [WARNING] thread Thread[FileSrvWorker5,5,org.filesys.app.FileServer] will linger despite being asked to die via interruption [WARNING] thread Thread[FileSrvWorker6,5,org.filesys.app.FileServer] will linger despite being asked to die via interruption [WARNING] thread Thread[FileSrvWorker7,5,org.filesys.app.FileServer] will linger despite being asked to die via interruption [WARNING] thread Thread[FileSrvWorker8,5,org.filesys.app.FileServer] will linger despite being asked to die via interruption [WARNING] thread Thread[FileSrvWorker9,5,org.filesys.app.FileServer] will linger despite being asked to die via interruption [WARNING] thread Thread[FileSrvWorker10,5,org.filesys.app.FileServer] will linger despite being asked to die via interruption [WARNING] thread Thread[FileSrvWorker11,5,org.filesys.app.FileServer] will linger despite being asked to die via interruption [WARNING] thread Thread[FileSrvWorker12,5,org.filesys.app.FileServer] will linger despite being asked to die via interruption [WARNING] thread Thread[FileSrvWorker13,5,org.filesys.app.FileServer] will linger despite being asked to die via interruption [WARNING] thread Thread[FileSrvWorker14,5,org.filesys.app.FileServer] will linger despite being asked to die via interruption [WARNING] thread Thread[FileSrvWorker15,5,org.filesys.app.FileServer] will linger despite being asked to die via interruption [WARNING] thread Thread[FileSrvWorker16,5,org.filesys.app.FileServer] will linger despite being asked to die via interruption [WARNING] thread Thread[FileSrvWorker17,5,org.filesys.app.FileServer] will linger despite being asked to die via interruption [WARNING] thread Thread[FileSrvWorker18,5,org.filesys.app.FileServer] will linger despite being asked to die via interruption [WARNING] thread Thread[FileSrvWorker19,5,org.filesys.app.FileServer] will linger despite being asked to die via interruption [WARNING] thread Thread[FileSrvWorker20,5,org.filesys.app.FileServer] will linger despite being asked to die via interruption [WARNING] thread Thread[FileSrvWorker21,5,org.filesys.app.FileServer] will linger despite being asked to die via interruption [WARNING] thread Thread[FileSrvWorker22,5,org.filesys.app.FileServer] will linger despite being asked to die via interruption [WARNING] thread Thread[FileSrvWorker23,5,org.filesys.app.FileServer] will linger despite being asked to die via interruption [WARNING] thread Thread[FileSrvWorker24,5,org.filesys.app.FileServer] will linger despite being asked to die via interruption [WARNING] thread Thread[FileSrvWorker25,5,org.filesys.app.FileServer] will linger despite being asked to die via interruption [WARNING] thread Thread[TimedRequestProcessor,5,org.filesys.app.FileServer] will linger despite being asked to die via interruption [WARNING] NOTE: 26 thread(s) did not finish despite being asked to via interruption. This is not a problem with exec:java, it is a problem with the running code. Although not serious, it should be remedied. [WARNING] Couldn't destroy threadgroup org.codehaus.mojo.exec.ExecJavaMojo$IsolatedThreadGroup[name=org.filesys.app.FileServer,maxpri=10] java.lang.IllegalThreadStateException at java.lang.ThreadGroup.destroy (ThreadGroup.java:778) at org.codehaus.mojo.exec.ExecJavaMojo.execute (ExecJavaMojo.java:321) at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:137) at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:210) at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:156) at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:148) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81) at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56) at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128) at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305) at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192) at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105) at org.apache.maven.cli.MavenCli.execute (MavenCli.java:957) at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:289) at org.apache.maven.cli.MavenCli.main (MavenCli.java:193) at sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke (Method.java:498) at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282) at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225) at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406) at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347) at org.codehaus.classworlds.Launcher.main (Launcher.java:47) [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 16.649 s [INFO] Finished at: 2023-02-06T15:13:49+08:00 [INFO] ------------------------------------------------------------------------ — Reply to this email directly, view it on GitHub https://github.com/FileSysOrg/jfileserver/issues/6, or unsubscribe https://github.com/notifications/unsubscribe-auth/AKH3TKKB3RHDLSDFOKHMM2LWWCYTRANCNFSM6AAAAAAUSL4QLM. You are receiving this because you are subscribed to this thread.
thank you.
Can you recommend an open source java smb client for testing?
I've used this library for some testing - https://github.com/hierynomus/smbj
But most testing is done using a mapped drive/mount from Windows, macOS, linux clients.
thank you. Our project can support smb2 ? i think the https://github.com/hierynomus/smbj can not support smb1?
How to print stack information? i have some errors.
`[SMB] Created session T3, keepAlive=true [SMB] Connection from /127.0.0.1:53765, handler=[SMB,TCP-SMB,ALL:445], sess=T3 [SMB] Waiting for new connection ... [SMB] Register session with request handler, handler=SMBRequestHandler_1, sess=T3 [T3] Negotiate context: [NegCtx dialects=[dialects=[NT LM 0.12] strs=NT LM 0.12]] [T3] Negotiated SMB dialect - NT LM 0.12 [T3] Assigned protocol handler - org.filesys.smb.server.NTProtocolHandler [T3:1] State changed to SMB_SESSSETUP [SMB] NT Session setup SPNEGO, MID=2, UID=0, PID=4372 [SMB] Process security blob=[NTLMSSP secBlob=[offset=63,len=56] Unicode, respBlob=null] [SMB] Received NTLM Type1/Negotiate - [Type1:0x20083205,Domain:127.0.0.1,Wks:JCIFS143_150_23] [SMB] Two stage logon (NTLMSSP) [SMB] Two stage logon (NTLMSSP) [SMB] NT Session setup SPNEGO, MID=3, UID=65535, PID=4372 [SMB] Process security blob=[NTLMSSP secBlob=[offset=63,len=288] Unicode, respBlob=null] [SMB] Received NTLM Type3/Authenticate - [Type3:,LM:27a871f957f0db911e8dbbd98f1249bf7d7fea1cedd68153,NTLM:0e43491d8c414b530ec3c68bc4a1e7d4010100000000000020772ee80f3ad901411d601adbeda6ac00000000020010004a00460049004c004500530052005600010010004a00460049004c004500530052005600040010006a00660069006c006500730072007600030010006a00660069006c0065007300720076000700080060a22ce80f3ad9010000000000000000,Dom:127.0.0.1,User:root,Wks:JCIFS143_150_23] [SMB] User does not exist, root [T3:1] Error : Cmd = [V1 cmd=SessionSetupAndX] - Logon failure Received null packet, closing session sess=T3, addr=127.0.0.1
[T3:1] State changed to SESS_HANGUP [T3:1] Cleanup session, vcircuits=null, changeNotify=0 [SMB] Closed session 3, sessions=0 [T3:1] State changed to SESS_HANGUP [T3:1] Closed packet handler for client: null [SMB] Closed session 3, sessions=0 [T3:1] Server session closed [SMB] Request handler SMBRequestHandler_1 waiting for session ... `
For an SMB1 client library the older JCIFS library should work - https://www.jcifs.org
An error is reported as soon as it starts.
/Library/Java/JavaVirtualMachines/jdk1.8.0_333.jdk/Contents/Home/bin/java -Dmaven.multiModuleProjectDirectory=/Users/cs/Documents/tencent/identity_safe/smb-server/jfileserver "-Dmaven.home=/Applications/IntelliJ IDEA.app/Contents/plugins/maven/lib/maven3" "-Dclassworlds.conf=/Applications/IntelliJ IDEA.app/Contents/plugins/maven/lib/maven3/bin/m2.conf" "-Dmaven.ext.class.path=/Applications/IntelliJ IDEA.app/Contents/plugins/maven/lib/maven-event-listener.jar" "-javaagent:/Applications/IntelliJ IDEA.app/Contents/lib/idea_rt.jar=53190:/Applications/IntelliJ IDEA.app/Contents/bin" -Dfile.encoding=UTF-8 -classpath "/Applications/IntelliJ IDEA.app/Contents/plugins/maven/lib/maven3/boot/plexus-classworlds.license:/Applications/IntelliJ IDEA.app/Contents/plugins/maven/lib/maven3/boot/plexus-classworlds-2.6.0.jar" org.codehaus.classworlds.Launcher -Didea.version=2020.2.4 exec:java [INFO] Scanning for projects... [INFO] Inspecting build with total of 1 modules... [INFO] Installing Nexus Staging features: [INFO] ... total of 1 executions of maven-deploy-plugin replaced with nexus-staging-maven-plugin [INFO] [INFO] ----------------------< org.filesys:jfileserver >----------------------- [INFO] Building org.filesys:jfileserver 1.3.13 [INFO] --------------------------------[ jar ]--------------------------------- [INFO] [INFO] --- exec-maven-plugin:1.6.0:java (default-cli) @ jfileserver --- %% Failed to load server configuration org.filesys.server.config.InvalidConfigurationException: XML error at org.filesys.app.SMBOnlyXMLServerConfiguration.loadConfiguration(SMBOnlyXMLServerConfiguration.java:187) at org.filesys.app.SMBOnlyXMLServerConfiguration.loadConfiguration(SMBOnlyXMLServerConfiguration.java:155) at org.filesys.app.FileServer.loadConfiguration(FileServer.java:610) at org.filesys.app.FileServer.start(FileServer.java:201) at org.filesys.app.FileServer.main(FileServer.java:141) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.codehaus.mojo.exec.ExecJavaMojo$1.run(ExecJavaMojo.java:282) at java.lang.Thread.run(Thread.java:750) Caused by: org.filesys.server.config.InvalidConfigurationException: XML error at org.filesys.app.XMLServerConfiguration.loadConfiguration(XMLServerConfiguration.java:133) at org.filesys.app.SMBOnlyXMLServerConfiguration.loadConfiguration(SMBOnlyXMLServerConfiguration.java:182) ... 10 more Caused by: org.filesys.server.config.InvalidConfigurationException: Driver context error at org.filesys.app.SMBOnlyXMLServerConfiguration.addDiskShare(SMBOnlyXMLServerConfiguration.java:2249) at org.filesys.app.SMBOnlyXMLServerConfiguration.procSharesElement(SMBOnlyXMLServerConfiguration.java:1340) at org.filesys.app.XMLServerConfiguration.loadConfiguration(XMLServerConfiguration.java:113) ... 11 more Caused by: org.filesys.server.core.DeviceContextException: Trashcan folder does not exist - /Volumes/1TB-SSD/JFileServer/trashcan at org.filesys.smb.server.disk.JavaNIODeviceContext.initialize(JavaNIODeviceContext.java:121) at org.filesys.smb.server.disk.JavaNIODeviceContext.<init>(JavaNIODeviceContext.java:80) at org.filesys.smb.server.disk.JavaNIODiskDriver.createContext(JavaNIODiskDriver.java:1028) at org.filesys.app.SMBOnlyXMLServerConfiguration.addDiskShare(SMBOnlyXMLServerConfiguration.java:2189) ... 13 more [WARNING] thread Thread[FileSrvWorker1,5,org.filesys.app.FileServer] was interrupted but is still alive after waiting at least 14999msecs [WARNING] thread Thread[FileSrvWorker1,5,org.filesys.app.FileServer] will linger despite being asked to die via interruption [WARNING] thread Thread[FileSrvWorker2,5,org.filesys.app.FileServer] will linger despite being asked to die via interruption [WARNING] thread Thread[FileSrvWorker3,5,org.filesys.app.FileServer] will linger despite being asked to die via interruption [WARNING] thread Thread[FileSrvWorker4,5,org.filesys.app.FileServer] will linger despite being asked to die via interruption [WARNING] thread Thread[FileSrvWorker5,5,org.filesys.app.FileServer] will linger despite being asked to die via interruption [WARNING] thread Thread[FileSrvWorker6,5,org.filesys.app.FileServer] will linger despite being asked to die via interruption [WARNING] thread Thread[FileSrvWorker7,5,org.filesys.app.FileServer] will linger despite being asked to die via interruption [WARNING] thread Thread[FileSrvWorker8,5,org.filesys.app.FileServer] will linger despite being asked to die via interruption [WARNING] thread Thread[FileSrvWorker9,5,org.filesys.app.FileServer] will linger despite being asked to die via interruption [WARNING] thread Thread[FileSrvWorker10,5,org.filesys.app.FileServer] will linger despite being asked to die via interruption [WARNING] thread Thread[FileSrvWorker11,5,org.filesys.app.FileServer] will linger despite being asked to die via interruption [WARNING] thread Thread[FileSrvWorker12,5,org.filesys.app.FileServer] will linger despite being asked to die via interruption [WARNING] thread Thread[FileSrvWorker13,5,org.filesys.app.FileServer] will linger despite being asked to die via interruption [WARNING] thread Thread[FileSrvWorker14,5,org.filesys.app.FileServer] will linger despite being asked to die via interruption [WARNING] thread Thread[FileSrvWorker15,5,org.filesys.app.FileServer] will linger despite being asked to die via interruption [WARNING] thread Thread[FileSrvWorker16,5,org.filesys.app.FileServer] will linger despite being asked to die via interruption [WARNING] thread Thread[FileSrvWorker17,5,org.filesys.app.FileServer] will linger despite being asked to die via interruption [WARNING] thread Thread[FileSrvWorker18,5,org.filesys.app.FileServer] will linger despite being asked to die via interruption [WARNING] thread Thread[FileSrvWorker19,5,org.filesys.app.FileServer] will linger despite being asked to die via interruption [WARNING] thread Thread[FileSrvWorker20,5,org.filesys.app.FileServer] will linger despite being asked to die via interruption [WARNING] thread Thread[FileSrvWorker21,5,org.filesys.app.FileServer] will linger despite being asked to die via interruption [WARNING] thread Thread[FileSrvWorker22,5,org.filesys.app.FileServer] will linger despite being asked to die via interruption [WARNING] thread Thread[FileSrvWorker23,5,org.filesys.app.FileServer] will linger despite being asked to die via interruption [WARNING] thread Thread[FileSrvWorker24,5,org.filesys.app.FileServer] will linger despite being asked to die via interruption [WARNING] thread Thread[FileSrvWorker25,5,org.filesys.app.FileServer] will linger despite being asked to die via interruption [WARNING] thread Thread[TimedRequestProcessor,5,org.filesys.app.FileServer] will linger despite being asked to die via interruption [WARNING] NOTE: 26 thread(s) did not finish despite being asked to via interruption. This is not a problem with exec:java, it is a problem with the running code. Although not serious, it should be remedied. [WARNING] Couldn't destroy threadgroup org.codehaus.mojo.exec.ExecJavaMojo$IsolatedThreadGroup[name=org.filesys.app.FileServer,maxpri=10] java.lang.IllegalThreadStateException at java.lang.ThreadGroup.destroy (ThreadGroup.java:778) at org.codehaus.mojo.exec.ExecJavaMojo.execute (ExecJavaMojo.java:321) at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:137) at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:210) at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:156) at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:148) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81) at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56) at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128) at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305) at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192) at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105) at org.apache.maven.cli.MavenCli.execute (MavenCli.java:957) at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:289) at org.apache.maven.cli.MavenCli.main (MavenCli.java:193) at sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke (Method.java:498) at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282) at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225) at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406) at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347) at org.codehaus.classworlds.Launcher.main (Launcher.java:47) [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 16.649 s [INFO] Finished at: 2023-02-06T15:13:49+08:00 [INFO] ------------------------------------------------------------------------