Skip to content
This repository has been archived by the owner on Oct 8, 2022. It is now read-only.

[sync] Accented characters are replaced by "?". #28

Closed
tdurieux opened this issue Mar 24, 2014 · 2 comments
Closed

[sync] Accented characters are replaced by "?". #28

tdurieux opened this issue Mar 24, 2014 · 2 comments
Assignees
Milestone

Comments

@tdurieux
Copy link
Member

Accentuations in paper text are replaced by a "?". This problem is not to be attributed to the compilation because tex files contain also the "?".

An other problem probably linked:
if a paper contains an accented characters (written directly to the file) the server response with an error 500.

Request

u:test
F:0:w2d55931a5b9f4281.tex
r:1:

Response

{
  "name":"sync_error",
  "description":"Something went wrong when processing synchronization session for w2d55931a5b9f4281"
}

Log

[ERROR] [03/24/2014 23:19:49.271] [bundle-5-ActorSystem-akka.actor.default-dispatcher-473] [akka://bundle-5-ActorSystem/user/sync-dispatcher/w2d55931a5b9f4281] Input length = 1
java.nio.charset.MalformedInputException: Input length = 1
    at java.nio.charset.CoderResult.throwException(CoderResult.java:277)
    at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:338)
    at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:177)
    at java.io.InputStreamReader.read(InputStreamReader.java:184)
    at java.io.BufferedReader.fill(BufferedReader.java:154)
    at java.io.BufferedReader.read(BufferedReader.java:175)
    at scala.io.BufferedSource$$anonfun$iter$1$$anonfun$apply$mcI$sp$1.apply$mcI$sp(BufferedSource.scala:38)
    at scala.io.Codec.wrap(Codec.scala:68)
    at scala.io.BufferedSource$$anonfun$iter$1.apply(BufferedSource.scala:38)
    at scala.io.BufferedSource$$anonfun$iter$1.apply(BufferedSource.scala:38)
    at scala.collection.Iterator$$anon$9.next(Iterator.scala:162)
    at scala.collection.Iterator$$anon$17.hasNext(Iterator.scala:511)
    at scala.collection.Iterator$$anon$11.hasNext(Iterator.scala:327)
    at scala.io.Source.hasNext(Source.scala:226)
    at scala.collection.Iterator$class.foreach(Iterator.scala:727)
    at scala.io.Source.foreach(Source.scala:178)
    at scala.collection.TraversableOnce$class.addString(TraversableOnce.scala:320)
    at scala.io.Source.addString(Source.scala:178)
    at scala.collection.TraversableOnce$class.mkString(TraversableOnce.scala:286)
    at scala.io.Source.mkString(Source.scala:178)
    at scala.collection.TraversableOnce$class.mkString(TraversableOnce.scala:288)
    at scala.io.Source.mkString(Source.scala:178)
    at scala.collection.TraversableOnce$class.mkString(TraversableOnce.scala:290)
    at scala.io.Source.mkString(Source.scala:178)
    at gnieh.blue.sync.impl.store.FsStore$$anonfun$load$2.apply(FsStore.scala:53)
    at gnieh.blue.sync.impl.store.FsStore$$anonfun$load$2.apply(FsStore.scala:52)
    at resource.AbstractManagedResource$$anonfun$5.apply(AbstractManagedResource.scala:86)
    at scala.util.control.Exception$Catch$$anonfun$either$1.apply(Exception.scala:124)
    at scala.util.control.Exception$Catch$$anonfun$either$1.apply(Exception.scala:124)
    at scala.util.control.Exception$Catch.apply(Exception.scala:102)
    at scala.util.control.Exception$Catch.either(Exception.scala:124)
    at resource.AbstractManagedResource.acquireFor(AbstractManagedResource.scala:86)
    at resource.ManagedResourceOperations$class.acquireAndGet(ManagedResourceOperations.scala:25)
    at resource.AbstractManagedResource.acquireAndGet(AbstractManagedResource.scala:48)
    at gnieh.blue.sync.impl.store.FsStore.load(FsStore.scala:52)
    at gnieh.blue.sync.impl.SyncActor$$anonfun$2.apply(SyncDispatcher.scala:125)
    at gnieh.blue.sync.impl.SyncActor$$anonfun$2.apply(SyncDispatcher.scala:125)
    at scala.collection.MapLike$class.getOrElse(MapLike.scala:128)
    at scala.collection.AbstractMap.getOrElse(Map.scala:58)
    at gnieh.blue.sync.impl.SyncActor.applyAction(SyncDispatcher.scala:125)
    at gnieh.blue.sync.impl.SyncActor$$anonfun$receive$1$$anonfun$1.apply(SyncDispatcher.scala:102)
    at gnieh.blue.sync.impl.SyncActor$$anonfun$receive$1$$anonfun$1.apply(SyncDispatcher.scala:97)
    at scala.collection.TraversableLike$$anonfun$flatMap$1.apply(TraversableLike.scala:251)
    at scala.collection.TraversableLike$$anonfun$flatMap$1.apply(TraversableLike.scala:251)
    at scala.collection.immutable.List.foreach(List.scala:318)
    at scala.collection.TraversableLike$class.flatMap(TraversableLike.scala:251)
    at scala.collection.AbstractTraversable.flatMap(Traversable.scala:105)
    at gnieh.blue.sync.impl.SyncActor$$anonfun$receive$1.applyOrElse(SyncDispatcher.scala:97)
    at akka.actor.ActorCell.receiveMessage(ActorCell.scala:498)
    at akka.actor.ActorCell.invoke(ActorCell.scala:456)
    at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:237)
    at akka.dispatch.Mailbox.run(Mailbox.scala:219)
    at akka.dispatch.ForkJoinExecutorConfigurator$AkkaForkJoinTask.exec(AbstractDispatcher.scala:386)
    at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260)
    at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339)
    at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979)
    at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)

23:19:49.781 [ServerExecutorPool-0-0] ERROR org.gnieh.blue.sync:bversion - Could not process synchronization session for paper w2d55931a5b9f4281
gnieh.blue.common.SynchroFailureException: Unable to get reponse from synchro dispatcher
    at gnieh.blue.sync.impl.SyncServer.session(SyncServer.scala:62) ~[blue-sync_2.10-0.7-SNAPSHOT.jar:0.7-SNAPSHOT]
    at gnieh.blue.sync.impl.let.QLet$$anonfun$roleAct$1$$anonfun$apply$1.apply(QLet.scala:67) [blue-sync_2.10-0.7-SNAPSHOT.jar:0.7-SNAPSHOT]
    at gnieh.blue.sync.impl.let.QLet$$anonfun$roleAct$1$$anonfun$apply$1.apply(QLet.scala:65) [blue-sync_2.10-0.7-SNAPSHOT.jar:0.7-SNAPSHOT]
    at scala.collection.immutable.List.foreach(List.scala:318) [scala-library-2.10.3.jar:na]
    at gnieh.blue.sync.impl.let.QLet$$anonfun$roleAct$1.apply(QLet.scala:65) [blue-sync_2.10-0.7-SNAPSHOT.jar:0.7-SNAPSHOT]
    at scala.util.Try$.apply(Try.scala:161) [scala-library-2.10.3.jar:na]
    at gnieh.blue.sync.impl.let.QLet.roleAct(QLet.scala:57) [blue-sync_2.10-0.7-SNAPSHOT.jar:0.7-SNAPSHOT]
    at gnieh.blue.http.SyncRoleLet$$anonfun$authenticatedAct$1.apply(BlueLet.scala:241) [blue-common_2.10-0.7-SNAPSHOT.jar:0.7-SNAPSHOT]
    at gnieh.blue.http.SyncRoleLet$$anonfun$authenticatedAct$1.apply(BlueLet.scala:240) [blue-common_2.10-0.7-SNAPSHOT.jar:0.7-SNAPSHOT]
    at scala.util.Success.flatMap(Try.scala:200) [scala-library-2.10.3.jar:na]
    at gnieh.blue.http.SyncRoleLet.authenticatedAct(BlueLet.scala:240) [blue-common_2.10-0.7-SNAPSHOT.jar:0.7-SNAPSHOT]
    at gnieh.blue.http.SyncAuthenticatedLet$$anonfun$act$1.apply(BlueLet.scala:177) [blue-common_2.10-0.7-SNAPSHOT.jar:0.7-SNAPSHOT]
    at gnieh.blue.http.SyncAuthenticatedLet$$anonfun$act$1.apply(BlueLet.scala:175) [blue-common_2.10-0.7-SNAPSHOT.jar:0.7-SNAPSHOT]
    at scala.util.Success.flatMap(Try.scala:200) [scala-library-2.10.3.jar:na]
    at gnieh.blue.http.SyncAuthenticatedLet$class.act(BlueLet.scala:175) [blue-common_2.10-0.7-SNAPSHOT.jar:0.7-SNAPSHOT]
    at gnieh.blue.http.SyncRoleLet.act(BlueLet.scala:228) [blue-common_2.10-0.7-SNAPSHOT.jar:0.7-SNAPSHOT]
    at gnieh.blue.http.SyncRoleLet.act(BlueLet.scala:228) [blue-common_2.10-0.7-SNAPSHOT.jar:0.7-SNAPSHOT]
    at gnieh.blue.http.SyncBlueLet.aact(BlueLet.scala:140) [blue-common_2.10-0.7-SNAPSHOT.jar:0.7-SNAPSHOT]
    at tiscaf.HAcceptor.talk(HAcceptor.scala:246) [tiscaf_2.10-0.9-SNAPSHOT.jar:na]
    at tiscaf.HSimplePeer$class.doTalkItself$1(HPeer.scala:101) [tiscaf_2.10-0.9-SNAPSHOT.jar:na]
    at tiscaf.HSimplePeer$$anonfun$readChannel$1.apply$mcV$sp(HPeer.scala:114) [tiscaf_2.10-0.9-SNAPSHOT.jar:na]
    at tiscaf.HSimplePeer$$anonfun$readChannel$1.apply(HPeer.scala:111) [tiscaf_2.10-0.9-SNAPSHOT.jar:na]
    at tiscaf.HSimplePeer$$anonfun$readChannel$1.apply(HPeer.scala:111) [tiscaf_2.10-0.9-SNAPSHOT.jar:na]
    at scala.concurrent.impl.Future$PromiseCompletingRunnable.liftedTree1$1(Future.scala:24) [scala-library-2.10.3.jar:na]
    at scala.concurrent.impl.Future$PromiseCompletingRunnable.run(Future.scala:24) [scala-library-2.10.3.jar:na]
    at tiscaf.sync.SyncQuExecutionContext$$anon$1.run(SyncQuExecutionContext.scala:69) [tiscaf_2.10-0.9-SNAPSHOT.jar:na]
Caused by: java.util.concurrent.TimeoutException: Futures timed out after [500 milliseconds]
    at scala.concurrent.impl.Promise$DefaultPromise.ready(Promise.scala:219) ~[scala-library-2.10.3.jar:na]
    at scala.concurrent.impl.Promise$DefaultPromise.result(Promise.scala:223) ~[scala-library-2.10.3.jar:na]
    at scala.concurrent.Await$$anonfun$result$1.apply(package.scala:107) ~[scala-library-2.10.3.jar:na]
    at scala.concurrent.BlockContext$DefaultBlockContext$.blockOn(BlockContext.scala:53) ~[scala-library-2.10.3.jar:na]
    at scala.concurrent.Await$.result(package.scala:107) ~[scala-library-2.10.3.jar:na]
    at gnieh.blue.sync.impl.SyncServer$$anonfun$1.apply(SyncServer.scala:57) ~[blue-sync_2.10-0.7-SNAPSHOT.jar:0.7-SNAPSHOT]
    at gnieh.blue.sync.impl.SyncServer$$anonfun$1.apply(SyncServer.scala:58) ~[blue-sync_2.10-0.7-SNAPSHOT.jar:0.7-SNAPSHOT]
    at scala.util.Try$.apply(Try.scala:161) [scala-library-2.10.3.jar:na]
    at gnieh.blue.sync.impl.SyncServer.session(SyncServer.scala:57) ~[blue-sync_2.10-0.7-SNAPSHOT.jar:0.7-SNAPSHOT]
    ... 25 common frames omitted
@satabin satabin added this to the v1.0 milestone Mar 25, 2014
chemicalstorm added a commit to chemicalstorm/bluelatex that referenced this issue Mar 25, 2014
There was in fact two problems:
- Encoding was never specified when a file was read/written to FS
- Synchronization actor missed the proprer encoding handling in delta/raw
  command: mobwrite original specifications requires to be able to process and
  produce compatible input/output as the JS encodeURI function

Closes gnieh#28
chemicalstorm added a commit to chemicalstorm/bluelatex that referenced this issue Apr 2, 2014
When compiling a paper, we first check its last modification date set by the
synchronization server. If the document was not modified, there is no need to
re-compile it.

Closes gnieh#28
@chemicalstorm
Copy link
Member

There is still a missing call to URLEncoder.encode: in case of conflict, the server sends back to the client a full dump of the shadowBackup, which is currently un-encoded.

@chemicalstorm
Copy link
Member

Still not right... The URLEncode function converts spaces to '+', which should not be done

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

No branches or pull requests

3 participants