If I do something using the bzr command line client that acquires a lock (e.g. "bzr update" or "bzr ci") and bzr4j runs bzr whilst the lock is held then bzr4j throws an exception.
Steps to reproduce:
1) Modify a file
2) From a shell prompt type "bzr ci myfile". This will open a text editor for the commit message - leave the editor open.
3) Switch back to IntelliJ. bzr4j does something (checks the current status?) and throws the exception below.
bzr4j 2.3.0
IntelliJ 9.0.2 EAP 94.273
Java 1.6.0_17
Mac OS X 10.6.2
bzr 2.1.0 (also happened with 2.0.2)
bzr-xmloutput 0.8.6 (also happened with 0.8.4)
Thanks for your work on bzr4j :-)
Francis
sax fatal: Premature end of file.
org.xml.sax.SAXParseException: Premature end of file.
at org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(Unknown Source)
at org.apache.xerces.util.ErrorHandlerWrapper.fatalError(Unknown Source)
at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
at org.apache.xerces.impl.XMLScanner.reportFatalError(Unknown Source)
at org.apache.xerces.impl.XMLDocumentScannerImpl$PrologDispatcher.dispatch(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
at org.apache.xerces.jaxp.SAXParserImpl.parse(Unknown Source)
at javax.xml.parsers.SAXParser.parse(SAXParser.java:198)
at org.emergent.bzr4j.core.cli.BzrXmlResult$1.run(BzrXmlResult.java:66)
at java.lang.Thread.run(Thread.java:637)
org.emergent.bzr4j.core.cli.BzrExecException: Exit value: 3 ; Working dir: "/Users/francis/Code/Bright/asset-bank/svn-trunk"
--- STDERR ---
<?xml version="1.0" encoding="UTF-8"?><error><class>LockContention</class><dict><key>msg</key><value>[Errno 35] Resource temporarily unavailable</value><key>lock</key><value>/Users/francis/Code/Bright/asset-bank/svn-trunk/.bzr/checkout/dirstate</value></dict><message>Could not acquire lock "/Users/francis/Code/Bright/asset-bank/svn-trunk/.bzr/checkout/dirstate": (35, 'Resource temporarily unavailable')</message></error>/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/bzrlib/lock.py:163: UserWarning: lock on <open file u'/Users/francis/Code/Bright/asset-bank/svn-trunk/.bzr/checkout/dirstate', mode 'rb' at 0x101fb9828> not released
warn("lock on %r not released" % self.f)
---- ARGS ----
/opt/local/bin/bzr
xmlls
--no-aliases
--ignored
--------------
at org.emergent.bzr4j.core.cli.BzrAbstractResult.validate(BzrAbstractResult.java:135)
at org.emergent.bzr4j.core.cli.BzrAbstractExec.exec(BzrAbstractExec.java:175)
at org.emergent.bzr4j.intellij.command.BzrIdeaExec.exec(BzrIdeaExec.java:76)
at org.emergent.bzr4j.core.cli.BzrExecService.execute(BzrExecService.java:19)
at org.emergent.bzr4j.intellij.command.ShellCommandService.execute(ShellCommandService.java:126)
at org.emergent.bzr4j.intellij.command.ShellCommandService.execute(ShellCommandService.java:38)
at org.emergent.bzr4j.core.cli.BzrExecService.execute(BzrExecService.java:14)
at org.emergent.bzr4j.intellij.provider.BzrChangeProvider.collectIgnored(BzrChangeProvider.java:179)
at org.emergent.bzr4j.intellij.provider.BzrChangeProvider.process(BzrChangeProvider.java:133)
at org.emergent.bzr4j.intellij.provider.BzrChangeProvider.getChanges(BzrChangeProvider.java:88)
at com.intellij.openapi.vcs.changes.ChangeListManagerImpl.a(ChangeListManagerImpl.java:395)
at com.intellij.openapi.vcs.changes.ChangeListManagerImpl.a(ChangeListManagerImpl.java:318)
at com.intellij.openapi.vcs.changes.ChangeListManagerImpl.access$600(ChangeListManagerImpl.java:68)
at com.intellij.openapi.vcs.changes.ChangeListManagerImpl$ActualUpdater.execute(ChangeListManagerImpl.java:230)
at com.intellij.openapi.vcs.changes.UpdateRequestsQueue$MyRunnable.run(UpdateRequestsQueue.java:184)
at com.intellij.lifecycle.SlowlyClosingAlarm$MyWrapper.run(SlowlyClosingAlarm.java:234)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:98)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:207)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:637)
org.xml.sax.SAXParseException: Premature end of file.
at org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(Unknown Source)
at org.apache.xerces.util.ErrorHandlerWrapper.fatalError(Unknown Source)
at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
at org.apache.xerces.impl.XMLVersionDetector.determineDocVersion(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
at org.apache.xerces.jaxp.SAXParserImpl.parse(Unknown Source)
at javax.xml.parsers.SAXParser.parse(SAXParser.java:198)
at org.emergent.bzr4j.core.cli.BzrXmlResult$1.run(BzrXmlResult.java:66)
at java.lang.Thread.run(Thread.java:637)
org.emergent.bzr4j.core.cli.BzrExecException: Exit value: 3 ; Working dir: "/Users/francis/Code/Bright/asset-bank/svn-trunk"
--- STDERR ---
<?xml version="1.0" encoding="UTF-8"?><error><class>LockContention</class><dict><key>msg</key><value>[Errno 35] Resource temporarily unavailable</value><key>lock</key><value>/Users/francis/Code/Bright/asset-bank/svn-trunk/.bzr/checkout/dirstate</value></dict><message>Could not acquire lock "/Users/francis/Code/Bright/asset-bank/svn-trunk/.bzr/checkout/dirstate": (35, 'Resource temporarily unavailable')</message></error>/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/bzrlib/lock.py:163: UserWarning: lock on <open file u'/Users/francis/Code/Bright/asset-bank/svn-trunk/.bzr/checkout/dirstate', mode 'rb' at 0x101fb88b0> not released
warn("lock on %r not released" % self.f)
---- ARGS ----
/opt/local/bin/bzr
xmlstatus
--no-aliases
--------------
at org.emergent.bzr4j.core.cli.BzrAbstractResult.validate(BzrAbstractResult.java:135)
at org.emergent.bzr4j.core.cli.BzrAbstractExec.exec(BzrAbstractExec.java:175)
at org.emergent.bzr4j.intellij.command.BzrIdeaExec.exec(BzrIdeaExec.java:76)
at org.emergent.bzr4j.core.cli.BzrExecService.execute(BzrExecService.java:19)
at org.emergent.bzr4j.intellij.command.ShellCommandService.execute(ShellCommandService.java:126)
at org.emergent.bzr4j.intellij.command.ShellCommandService.execute(ShellCommandService.java:38)
at org.emergent.bzr4j.core.cli.BzrExecService.execute(BzrExecService.java:14)
at org.emergent.bzr4j.intellij.provider.BzrChangeProvider.collectChanges(BzrChangeProvider.java:203)
at org.emergent.bzr4j.intellij.provider.BzrChangeProvider.process(BzrChangeProvider.java:152)
at org.emergent.bzr4j.intellij.provider.BzrChangeProvider.getChanges(BzrChangeProvider.java:88)
at com.intellij.openapi.vcs.changes.ChangeListManagerImpl.a(ChangeListManagerImpl.java:395)
at com.intellij.openapi.vcs.changes.ChangeListManagerImpl.a(ChangeListManagerImpl.java:318)
at com.intellij.openapi.vcs.changes.ChangeListManagerImpl.access$600(ChangeListManagerImpl.java:68)
at com.intellij.openapi.vcs.changes.ChangeListManagerImpl$ActualUpdater.execute(ChangeListManagerImpl.java:230)
at com.intellij.openapi.vcs.changes.UpdateRequestsQueue$MyRunnable.run(UpdateRequestsQueue.java:184)
at com.intellij.lifecycle.SlowlyClosingAlarm$MyWrapper.run(SlowlyClosingAlarm.java:234)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:98)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:207)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:637)