Field

Ticket #142 (closed defect: fixed)

Opened 1 year ago

Last modified 1 year ago

First run failure (on 1.5?)

Reported by: marc Assigned to:
Priority: blocker Milestone: beta
Component: core Version:
Keywords: Cc:

Description (Last modified by marc)

On first run Field can set it's workspace incorrectly.

The tell-tale stack trace is:

"/usr/local/bin/hg" (in directory "/sers/frank/foobarbaz.field"):
error=2, No such file or directory
       at java.lang.ProcessBuilder.start(ProcessBuilder.java:459)
       at field.core.util.ExecuteCommand.go(ExecuteCommand.java:79)
       at field.core.util.ExecuteCommand.<init>(ExecuteCommand.java:32)
       at field.core.plugins.history.HGVersioningSystem.executeCommand(HGVersioningSystem.java:93)
       at field.core.plugins.history.HGVersioningSystem.scmAddDirectory(HGVersioningSystem.java:101)
       at field.core.plugins.history.VersioningSystem.<init>(VersioningSystem.java:129)
       at field.core.plugins.history.HGVersioningSystem.<init>(HGVersioningSystem.java:25)
       at field.core.plugins.history.VersioningSystem.newDefault(VersioningSystem.java:61)
       at field.core.StandardFluidSheet.versionedScratch(StandardFluidSheet.java)
       at field.core.execution.PhantomFluidSheet.<init>(PhantomFluidSheet.java:70)
       at field.core.ui.FieldMenus.openSheet(FieldMenus.java:407)
       at field.core.ui.FieldMenus.newFile(FieldMenus.java:673)
       at field.core.ui.FieldMenus$2.actionPerformed(FieldMenus.java:185)
       at java.awt.MenuItem.processActionEvent(MenuItem.java:627)
       at java.awt.MenuItem.processEvent(MenuItem.java:586)
       at java.awt.MenuComponent.dispatchEventImpl(MenuComponent.java:300)
       at java.awt.MenuComponent.dispatchEvent(MenuComponent.java:288)
       at java.awt.EventQueue.dispatchEvent(EventQueue.java:602)
       at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:300)
       at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:210)
       at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:200)
       at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:195)
       at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:187)
       at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)
Caused by: java.io.IOException: error=2, No such file or directory
       at java.lang.UNIXProcess.forkAndExec(Native Method)
       at java.lang.UNIXProcess.<init>(UNIXProcess.java:53)
       at java.lang.ProcessImpl.start(ProcessImpl.java:91)
       at java.lang.ProcessBuilder.start(ProcessBuilder.java:452)
       ... 23 more
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
       at field.core.util.ExecuteCommand.waitFor(ExecuteCommand.java:46)
       at field.core.plugins.history.HGVersioningSystem.executeCommand(HGVersioningSystem.java:94)
       at field.core.plugins.history.HGVersioningSystem.scmAddDirectory(HGVersioningSystem.java:101)
       at field.core.plugins.history.VersioningSystem.<init>(VersioningSystem.java:129)
       at field.core.plugins.history.HGVersioningSystem.<init>(HGVersioningSystem.java:25)
       at field.core.plugins.history.VersioningSystem.newDefault(VersioningSystem.java:61)
       at field.core.StandardFluidSheet.versionedScratch(StandardFluidSheet.java)
       at field.core.execution.PhantomFluidSheet.<init>(PhantomFluidSheet.java:70)
       at field.core.ui.FieldMenus.openSheet(FieldMenus.java:407)
       at field.core.ui.FieldMenus.newFile(FieldMenus.java:673)
       at field.core.ui.FieldMenus$2.actionPerformed(FieldMenus.java:185)
       at java.awt.MenuItem.processActionEvent(MenuItem.java:627)
       at java.awt.MenuItem.processEvent(MenuItem.java:586)
       at java.awt.MenuComponent.dispatchEventImpl(MenuComponent.java:300)
       at java.awt.MenuComponent.dispatchEvent(MenuComponent.java:288)
       at java.awt.EventQueue.dispatchEvent(EventQueue.java:602)
       at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:300)
       at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:210)
       at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:200)
       at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:195)
       at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:187)
       at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)

and workspace directory is set to the nonsensical /Applications/field.app/Contents/Resources/Java/Documents/FieldWorkspace

Possibly releated to first running Field under 1.5, but that's unconfirmed

Change History

02/06/09 15:38:13 changed by marc

  • status changed from new to assigned.

02/06/09 15:39:00 changed by marc

If anybody sees something like this,

I'd greatly appreciate it if you could do the following:

1) to get us a blank slate:

rm -r ~/Application\ Support/Field rm -r ~/Documents/FieldWorkspace

2) run Field from the command line on it's first invocation: /Applications/field.app/Contents/MacOS/JavaApplicationStub

in an ideal world everything will work just fine, you'll select Documents, you'll get a workspace, you'll see some windows and you'll be off. If it doesn't attach all of the debug output to this bug.

3) if you are still reading, please confirm that Mac OS X complains about Field's request for a 1.6 VM and asks you if you want to use 1.5 If it doesn't then I suspect that you actually have a 1.6 on that machine. Running under 1.5 should work, but I bet none of my testers are running on it.

4) and then, try running it for a second time and attach that terminal output again.

02/06/09 15:39:31 changed by marc

  • priority set to blocker.
  • type set to defect.
  • component set to core.
  • milestone set to beta.

02/06/09 16:32:58 changed by marc

If there's a condition where mercurial does not create /usr/bin/hg then I believe we might get stuck in a loop with versioning.dir set but not valid.

beta3 will have a few more places to look for 'hg' in it. For now perhaps a sudo ln -s /usr/local/bin/hg /usr/bin/hg will rectify things.

02/06/09 17:48:19 changed by fwierzbicki

  • description changed.

There was no "~/Application\ Support/Field" to delete

I did 'sudo ln -s /usr/local/bin/hg /usr/bin/hg'

But still the same results, trace follows:

[frank@pacman ~]$ /Applications/field.app/Contents/MacOS/JavaApplicationStub {}

class to launch :field.Blank2

## trampoline <class field.bytecode.protect.StandardTrampoline:sun.misc.Launcher$AppClassLoader@e47858e>

jar <../../extensions> declares plugin <field.extras.graphics.FieldGraphicsPlugin?> jar <../../extensions> declares plugin <null> jar <../../extensions> declares plugin <null> jar <../../extensions> declares plugin <null> jar <../../extensions> declares plugin <field.extras.jsrscripting.JSRPlugin> jar <../../extensions> declares plugin <field.extras.plugins.hierarchy.HierarchyPlugin?> jar <../../extensions> declares plugin <null> jar <../../extensions> declares plugin <marc.plugins.topology.TopologyPlugin?> we are in thread <Thread[AWT-EventQueue?-0,6,main]>

java.lang.NullPointerException?: name

at java.util.zip.ZipFile?.getEntry(ZipFile?.java:144) at java.util.jar.JarFile?.getEntry(JarFile?.java:206) at java.util.jar.JarFile?.getJarEntry(JarFile?.java:189) at sun.misc.URLClassPath$JarLoader?.getResource(URLClassPath.java:754) at sun.misc.URLClassPath.getResource(URLClassPath.java:168) at sun.misc.URLClassPath.getResource(URLClassPath.java:220) at java.lang.ClassLoader?.getBootstrapResource(ClassLoader?.java:1168) at java.lang.ClassLoader?.getResource(ClassLoader?.java:1029) at java.lang.ClassLoader?.getResource(ClassLoader?.java:1027) at java.lang.Class.getResource(Class.java:2074) at ch.randelshofer.quaqua.QuaquaIconFactory?.composeOptionPaneIcon(QuaquaIconFactory?.java:266) at ch.randelshofer.quaqua.QuaquaIconFactory?.createErrorIcon(QuaquaIconFactory?.java:258) at ch.randelshofer.quaqua.QuaquaIconFactory?.access$100(QuaquaIconFactory?.java:58) at ch.randelshofer.quaqua.QuaquaIconFactory?$LazyOptionPaneIcon?$1.construct(QuaquaIconFactory?.java:82) at ch.randelshofer.quaqua.util.SwingWorker?$2.run(SwingWorker?.java:109) at java.lang.Thread.run(Thread.java:637)

java.lang.NullPointerException?: name

at java.util.zip.ZipFile?.getEntry(ZipFile?.java:144) at java.util.jar.JarFile?.getEntry(JarFile?.java:206) at java.util.jar.JarFile?.getJarEntry(JarFile?.java:189) at sun.misc.URLClassPath$JarLoader?.getResource(URLClassPath.java:754) at sun.misc.URLClassPath.getResource(URLClassPath.java:168) at sun.misc.URLClassPath.getResource(URLClassPath.java:220) at java.lang.ClassLoader?.getBootstrapResource(ClassLoader?.java:1168) at java.lang.ClassLoader?.getResource(ClassLoader?.java:1029) at java.lang.ClassLoader?.getResource(ClassLoader?.java:1027) at java.lang.Class.getResource(Class.java:2074) at ch.randelshofer.quaqua.QuaquaIconFactory?.composeOptionPaneIcon(QuaquaIconFactory?.java:266) at ch.randelshofer.quaqua.QuaquaIconFactory?.createWarningIcon(QuaquaIconFactory?.java:255) at ch.randelshofer.quaqua.QuaquaIconFactory?.access$000(QuaquaIconFactory?.java:58) at ch.randelshofer.quaqua.QuaquaIconFactory?$LazyOptionPaneIcon?$1.construct(QuaquaIconFactory?.java:80) at ch.randelshofer.quaqua.util.SwingWorker?$2.run(SwingWorker?.java:109) at java.lang.Thread.run(Thread.java:637)

--- into workspace directory, in search of bug #142:

versioning dir is set to </Applications/field.app/Contents/Resources/Java/Documents/FieldWorkspace> which exists? <false>

user home is </Users/frank> since this file doesn't exist, we're goping to ask for one got ok <0> got file </Users/frank/Documents> </Users/frank/Documents> </Users/frank/Documents> directory made successfully 2 <true> directory already exists making it into a repository

:::::::::::::::::::::::::::::::::::: init java.io.IOException: Cannot run program "/usr/local/bin/hg" (in directory "/Users/frank/Documents/FieldWorkspace"): error=2, No such file or directory

at java.lang.ProcessBuilder?.start(ProcessBuilder?.java:459) at field.core.util.ExecuteCommand?.go(ExecuteCommand?.java:79) at field.core.util.ExecuteCommand?.<init>(ExecuteCommand?.java:32) at field.util.WorkspaceDirectory?.makeIntoRepository(WorkspaceDirectory?.java:129) at field.util.WorkspaceDirectory?.<init>(WorkspaceDirectory?.java:99) at field.Blank2.launch(Blank2.java:41) at field.bytecode.protect.Trampoline2$6.run(Trampoline2.java:520) at java.awt.event.InvocationEvent?.dispatch(InvocationEvent?.java:199) at java.awt.EventQueue?.dispatchEvent(EventQueue?.java:597) at java.awt.EventDispatchThread?.pumpOneEventForFilters(EventDispatchThread?.java:300) at java.awt.EventDispatchThread?.pumpEventsForFilter(EventDispatchThread?.java:210) at java.awt.EventDispatchThread?.pumpEventsForHierarchy(EventDispatchThread?.java:200) at java.awt.EventDispatchThread?.pumpEvents(EventDispatchThread?.java:195) at java.awt.EventDispatchThread?.pumpEvents(EventDispatchThread?.java:187) at java.awt.EventDispatchThread?.run(EventDispatchThread?.java:121)

Caused by: java.io.IOException: error=2, No such file or directory

at java.lang.UNIXProcess.forkAndExec(Native Method) at java.lang.UNIXProcess.<init>(UNIXProcess.java:53) at java.lang.ProcessImpl?.start(ProcessImpl?.java:91) at java.lang.ProcessBuilder?.start(ProcessBuilder?.java:452) ... 14 more

java.lang.NullPointerException?

at field.core.util.ExecuteCommand?.waitFor(ExecuteCommand?.java:46) at field.core.util.ExecuteCommand?.waitFor(ExecuteCommand?.java:41) at field.util.WorkspaceDirectory?.makeIntoRepository(WorkspaceDirectory?.java:130) at field.util.WorkspaceDirectory?.<init>(WorkspaceDirectory?.java:99) at field.Blank2.launch(Blank2.java:41) at field.bytecode.protect.Trampoline2$6.run(Trampoline2.java:520) at java.awt.event.InvocationEvent?.dispatch(InvocationEvent?.java:199) at java.awt.EventQueue?.dispatchEvent(EventQueue?.java:597) at java.awt.EventDispatchThread?.pumpOneEventForFilters(EventDispatchThread?.java:300) at java.awt.EventDispatchThread?.pumpEventsForFilter(EventDispatchThread?.java:210) at java.awt.EventDispatchThread?.pumpEventsForHierarchy(EventDispatchThread?.java:200) at java.awt.EventDispatchThread?.pumpEvents(EventDispatchThread?.java:195) at java.awt.EventDispatchThread?.pumpEvents(EventDispatchThread?.java:187) at java.awt.EventDispatchThread?.run(EventDispatchThread?.java:121)

02/06/09 18:17:23 changed by marc

  • description changed.

02/06/09 18:18:00 changed by marc

  • description changed.

02/06/09 19:20:32 changed by marc

  • resolution set to fixed.
  • description changed.

Further investigation shows a broken Mercurial installation (with scripts that are refering to a non-existant python interpreter).

I just found (and deleted) some very suspicious looking setup.py cache files in Field's internal mercurial installer. I'd say that this is a likely cause of the DOA hg installation.

02/26/09 06:10:50 changed by marc

This bug is still being encountered by people with "different" OS X python installations. e.g.:

cat .pydistutils.cfg [install] install_lib = ~/Library/Python/$py_version_short/site-packages install_scripts = ~/bin

will put mercurial into ~/bin/hg where Field can't find it.

Three things:

1) add ~/bin/hg to the search list inside Field 2) add an option to just tell Field where mercurial is 3) make Field work without mercurial.

03/01/09 06:13:31 changed by marc

1 & 2 are in beta5.

03/22/09 08:04:16 changed by marc

  • status changed from assigned to closed.