|
Re: [EMFStore] Mixed environment problem [message #1284267 is a reply to message #1282995] |
Fri, 04 April 2014 09:29 |
Edgar Mueller Messages: 89 Registered: March 2011 |
Member |
|
|
Hi Scott,
actually we were aware of this problem when writing the checksum
computation and successfully tested it, but for some reason, which we
need to inspect further, whitespace differences nevertheless lead to
different results as you pointed out.
Yet, I think we found a fix for this issue, which will make into the 1.2
release today, so I hope that this will solve your problem.
Cheers
Edgar
Am 03.04.2014 03:05, schrieb scott@xxxxxxxx:
> Having trouble running a Windows EMFStore client against a Linux-based
> EMFStore server.
>
> If I run my application's client and the EMFStore server both on
> Windows, no problems. But if I then point the exact same client running
> on Windows at a Linux-based EMFStore server, it returns a checksum
> error. I built the servers at the same time using the emfstore.product
> targeting Windows and Linux and both start normally.
>
> I compared the workspace files to see if the Windows client workspace
> differed from the Linux server workspace. Diff -ab (ignoring whitespace
> differences, using the -ab option) shows no differences between these
> files (except for whitespace):
>
> operations.eoc = changepackage-1.ucp
> project.ecp = projectstate-1.ups
>
> I am able to replicate the problem using the EMFStore example helloworld
> application, so it seems unrelated to my application code. The example
> code runs fine in a Windows client / Windows server configuration, but
> fails with a checksum error with Windows client / Linux server. Are you
> able to replicate this problem as well?
>
> BTW, I'm running a very recent drop of the 1.2.0 code --- pulled from
> Git a week or so ago.
>
> $cott
>
> Here's the stack trace:
>
> Commiting changes:........Connection to Server failed!
> org.eclipse.emf.emfstore.server.exceptions.ESException: Commit cancelled
> by checksum error handler due to invalid checksum.
> at
> org.eclipse.emf.emfstore.internal.client.model.controller.CommitController.handleChecksumProcessing(CommitController.java:215)
>
> at
> org.eclipse.emf.emfstore.internal.client.model.controller.CommitController.commit(CommitController.java:181)
>
> at
> org.eclipse.emf.emfstore.internal.client.model.controller.CommitController.run(CommitController.java:102)
>
> at
> org.eclipse.emf.emfstore.internal.client.model.controller.CommitController.run(CommitController.java:1)
>
> at
> org.eclipse.emf.emfstore.internal.client.model.connectionmanager.ServerCall.run(ServerCall.java:249)
>
> at
> org.eclipse.emf.emfstore.internal.client.model.connectionmanager.SessionManager.executeCall(SessionManager.java:126)
>
> at
> org.eclipse.emf.emfstore.internal.client.model.connectionmanager.SessionManager.execute(SessionManager.java:65)
>
> at
> org.eclipse.emf.emfstore.internal.client.model.connectionmanager.ServerCall.execute(ServerCall.java:269)
>
> at
> org.eclipse.emf.emfstore.internal.client.model.impl.ProjectSpaceBase.commit(ProjectSpaceBase.java:347)
>
> at
> org.eclipse.emf.emfstore.internal.client.model.impl.api.ESLocalProjectImpl$11.call(ESLocalProjectImpl.java:383)
>
> at
> org.eclipse.emf.emfstore.internal.client.model.impl.api.ESLocalProjectImpl$11.call(ESLocalProjectImpl.java:1)
>
> at
> org.eclipse.emf.emfstore.client.util.RunESCommand$WithException$1.doRun(RunESCommand.java:60)
>
> at
> org.eclipse.emf.emfstore.internal.client.model.util.EMFStoreCommandWithResult.commandBody(EMFStoreCommandWithResult.java:31)
>
> at
> org.eclipse.emf.emfstore.internal.client.model.util.AbstractEMFStoreCommand.execute(AbstractEMFStoreCommand.java:64)
>
> at
> org.eclipse.emf.common.command.BasicCommandStack.execute(BasicCommandStack.java:78)
>
> at
> org.eclipse.emf.emfstore.internal.client.model.changeTracking.commands.EMFStoreBasicCommandStack.execute(EMFStoreBasicCommandStack.java:72)
>
> at
> org.eclipse.emf.emfstore.internal.client.model.util.AbstractEMFStoreCommand.aRun(AbstractEMFStoreCommand.java:108)
>
> at
> org.eclipse.emf.emfstore.internal.client.model.util.EMFStoreCommandWithResult.run(EMFStoreCommandWithResult.java:59)
>
> at
> org.eclipse.emf.emfstore.client.util.RunESCommand$WithException.runWithResult(RunESCommand.java:77)
>
> at
> org.eclipse.emf.emfstore.internal.client.model.impl.api.ESLocalProjectImpl.commit(ESLocalProjectImpl.java:378)
>
> at
> org.eclipse.emf.emfstore.example.helloworld.TestCaseApplication2.runClient(TestCaseApplication2.java:177)
>
> at
> org.eclipse.emf.emfstore.example.helloworld.TestCaseApplication2.start(TestCaseApplication2.java:70)
>
> at
> org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
>
> at
> org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
>
> at
> org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
>
> at
> org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:354)
>
> at
> org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:181)
>
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>
> at java.lang.reflect.Method.invoke(Method.java:597)
> at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:636)
> at org.eclipse.equinox.launcher.Main.basicRun(Main.java:591)
> at org.eclipse.equinox.launcher.Main.run(Main.java:1450)
> at org.eclipse.equinox.launcher.Main.main(Main.java:1426)
--
Edgar Mueller
Get Professional Eclipse Support: http://eclipsesource.com/munich
|
|
|
Re: [EMFStore] Mixed environment problem [message #1284475 is a reply to message #1284267] |
Fri, 04 April 2014 14:20 |
Scott Dybiec Messages: 148 Registered: July 2009 |
Senior Member |
|
|
I noticed that your ModelUtil.copiedEObjectToString(EObject copy,
XMIResource resource) tries to deal with whitespace serialization
differences between platforms, such as line separators and encodings.
Would passing in this EMF serialization option to Resource.save()
eliminate whitespace altogether?
getResourceSaveOptions().put(XMLResource.OPTION_FORMATTED, Boolean.FALSE);
EMF's binary format might be an option, too.
I look forward to the patch. Once the fix is in, could you let me know
what code changed so I can patch it on my side?
$cott
On 4/4/2014 5:29 AM, Edgar Mueller wrote:
> Hi Scott,
>
> actually we were aware of this problem when writing the checksum
> computation and successfully tested it, but for some reason, which we
> need to inspect further, whitespace differences nevertheless lead to
> different results as you pointed out.
> Yet, I think we found a fix for this issue, which will make into the 1.2
> release today, so I hope that this will solve your problem.
>
> Cheers
> Edgar
>
> Am 03.04.2014 03:05, schrieb scott@xxxxxxxx:
>> Having trouble running a Windows EMFStore client against a Linux-based
>> EMFStore server.
>>
>> If I run my application's client and the EMFStore server both on
>> Windows, no problems. But if I then point the exact same client running
>> on Windows at a Linux-based EMFStore server, it returns a checksum
>> error. I built the servers at the same time using the emfstore.product
>> targeting Windows and Linux and both start normally.
>>
>> I compared the workspace files to see if the Windows client workspace
>> differed from the Linux server workspace. Diff -ab (ignoring whitespace
>> differences, using the -ab option) shows no differences between these
>> files (except for whitespace):
>>
>> operations.eoc = changepackage-1.ucp
>> project.ecp = projectstate-1.ups
>>
>> I am able to replicate the problem using the EMFStore example helloworld
>> application, so it seems unrelated to my application code. The example
>> code runs fine in a Windows client / Windows server configuration, but
>> fails with a checksum error with Windows client / Linux server. Are you
>> able to replicate this problem as well?
>>
>> BTW, I'm running a very recent drop of the 1.2.0 code --- pulled from
>> Git a week or so ago.
>>
>> $cott
>>
>> Here's the stack trace:
>>
>> Commiting changes:........Connection to Server failed!
>> org.eclipse.emf.emfstore.server.exceptions.ESException: Commit cancelled
>> by checksum error handler due to invalid checksum.
>> at
>> org.eclipse.emf.emfstore.internal.client.model.controller.CommitController.handleChecksumProcessing(CommitController.java:215)
>>
>> at
>> org.eclipse.emf.emfstore.internal.client.model.controller.CommitController.commit(CommitController.java:181)
>>
>> at
>> org.eclipse.emf.emfstore.internal.client.model.controller.CommitController.run(CommitController.java:102)
>>
>> at
>> org.eclipse.emf.emfstore.internal.client.model.controller.CommitController.run(CommitController.java:1)
>>
>> at
>> org.eclipse.emf.emfstore.internal.client.model.connectionmanager.ServerCall.run(ServerCall.java:249)
>>
>> at
>> org.eclipse.emf.emfstore.internal.client.model.connectionmanager.SessionManager.executeCall(SessionManager.java:126)
>>
>> at
>> org.eclipse.emf.emfstore.internal.client.model.connectionmanager.SessionManager.execute(SessionManager.java:65)
>>
>> at
>> org.eclipse.emf.emfstore.internal.client.model.connectionmanager.ServerCall.execute(ServerCall.java:269)
>>
>> at
>> org.eclipse.emf.emfstore.internal.client.model.impl.ProjectSpaceBase.commit(ProjectSpaceBase.java:347)
>>
>> at
>> org.eclipse.emf.emfstore.internal.client.model.impl.api.ESLocalProjectImpl$11.call(ESLocalProjectImpl.java:383)
>>
>> at
>> org.eclipse.emf.emfstore.internal.client.model.impl.api.ESLocalProjectImpl$11.call(ESLocalProjectImpl.java:1)
>>
>> at
>> org.eclipse.emf.emfstore.client.util.RunESCommand$WithException$1.doRun(RunESCommand.java:60)
>>
>> at
>> org.eclipse.emf.emfstore.internal.client.model.util.EMFStoreCommandWithResult.commandBody(EMFStoreCommandWithResult.java:31)
>>
>> at
>> org.eclipse.emf.emfstore.internal.client.model.util.AbstractEMFStoreCommand.execute(AbstractEMFStoreCommand.java:64)
>>
>> at
>> org.eclipse.emf.common.command.BasicCommandStack.execute(BasicCommandStack.java:78)
>>
>> at
>> org.eclipse.emf.emfstore.internal.client.model.changeTracking.commands.EMFStoreBasicCommandStack.execute(EMFStoreBasicCommandStack.java:72)
>>
>> at
>> org.eclipse.emf.emfstore.internal.client.model.util.AbstractEMFStoreCommand.aRun(AbstractEMFStoreCommand.java:108)
>>
>> at
>> org.eclipse.emf.emfstore.internal.client.model.util.EMFStoreCommandWithResult.run(EMFStoreCommandWithResult.java:59)
>>
>> at
>> org.eclipse.emf.emfstore.client.util.RunESCommand$WithException.runWithResult(RunESCommand.java:77)
>>
>> at
>> org.eclipse.emf.emfstore.internal.client.model.impl.api.ESLocalProjectImpl.commit(ESLocalProjectImpl.java:378)
>>
>> at
>> org.eclipse.emf.emfstore.example.helloworld.TestCaseApplication2.runClient(TestCaseApplication2.java:177)
>>
>> at
>> org.eclipse.emf.emfstore.example.helloworld.TestCaseApplication2.start(TestCaseApplication2.java:70)
>>
>> at
>> org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
>>
>> at
>> org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
>>
>> at
>> org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
>>
>> at
>> org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:354)
>>
>> at
>> org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:181)
>>
>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>> at
>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>>
>> at
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>>
>> at java.lang.reflect.Method.invoke(Method.java:597)
>> at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:636)
>> at org.eclipse.equinox.launcher.Main.basicRun(Main.java:591)
>> at org.eclipse.equinox.launcher.Main.run(Main.java:1450)
>> at org.eclipse.equinox.launcher.Main.main(Main.java:1426)
>
>
|
|
|
Powered by
FUDForum. Page generated in 0.01906 seconds