This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.

Bug 47261 - FNFE: .netbeans/dev/config/Editors/text/x-java/Settings.settings (No such file or directory)
Summary: FNFE: .netbeans/dev/config/Editors/text/x-java/Settings.settings (No such fil...
Status: CLOSED FIXED
Alias: None
Product: editor
Classification: Unclassified
Component: -- Other -- (show other bugs)
Version: 4.x
Hardware: PC Linux
: P2 blocker (vote)
Assignee: Martin Roskanin
URL:
Keywords:
: 47228 47287 47458 (view as bug list)
Depends on:
Blocks:
 
Reported: 2004-08-16 14:32 UTC by dmladek
Modified: 2007-11-05 13:44 UTC (History)
3 users (show)

See Also:
Issue Type: DEFECT
Exception Reporter:


Attachments
my editors settings [ZIP archive] (19.40 KB, application/octet-stream)
2004-08-16 14:34 UTC, dmladek
Details
stacktrace of FNFE (8.76 KB, text/plain)
2004-08-16 14:36 UTC, dmladek
Details
dumpstack (1.46 KB, patch)
2004-08-17 15:20 UTC, rmatous
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description dmladek 2004-08-16 14:32:03 UTC
Product Version       = NetBeans IDE Dev (Build
200408151800)
  Operating System      = Linux version
2.4.22-1.2115.nptl running on i386
  Java; VM; Vendor      = 1.5.0-rc; Java
HotSpot(TM) Client VM 1.5.0-rc-b63; Sun
Microsystems Inc.
  Java Home             = /usr/local/java/jdk1.5.0/jre
  System Locale; Encod. = cs_CZ (nb); ISO-8859-2
  Home Dir; Current Dir = /usr/local/home/delphym;
/usr/local/forte/forte3/NBdev-last/netbeans/bin
-------------------------------------------------------------------------------


Since then Editor stores its setting in XML files,
I copy its settings to new user_dir to keep my
settings available for work with DEV builds.

It was always OK, without any problems.But using
current dev build with previously used editor
settings invoke FileNotFoundException:
.../.netbeans/dev/config/Editors/text/plain/Settings.settings
(No such file or directory) 
or similar, like
FileNotFoundException:
.../.netbeans/dev/config/Editors/text/x-java/Settings.settings
(No such file or directory)
...

I'm attaching my Editor settings if you want to
check them.
There's no Settings.settings file. Also if you
don't copy any Editor settings and it creates its
new settings there's no Settings.settings file.
Comment 1 dmladek 2004-08-16 14:34:37 UTC
Created attachment 16846 [details]
my editors settings [ZIP archive]
Comment 2 dmladek 2004-08-16 14:36:12 UTC
Created attachment 16847 [details]
stacktrace of FNFE
Comment 3 dmladek 2004-08-16 14:42:40 UTC
Also if I copy my editor;s settings into:
$my_user_dir/config/Editors

then in NB GUI "Options" dialog under the node:
Options->Editing->Editor Settings,
I can see only following nodes:
 -CSS Editor
 -JSP Editor
 -Properties Editor
 -XML Editor
 -DTD EDitor

no -Java Editor
   -HTML
   -Plain Editor are available :-(
thus I can't set them anymore via gui :-/

Comment 4 dmladek 2004-08-16 15:16:03 UTC
Well, I discovered, that even if I import settings from 3.6
that EditorSettings causes troubles in a form of FNFE.

Settings are "imported": that means colours are transfered,
but GUI possibility is the same as I've already described:
-missing java Editor node, etc..

thus, IMHO it is supported scenario , increasing priority to P2
Comment 5 Miloslav Metelka 2004-08-16 15:29:47 UTC
The exceptions come from core/settings module. Reassigning.
Comment 6 _ ttran 2004-08-17 09:22:11 UTC
Yarda, can you pls have a look?  What's wrong here?  Especially in the
case of standard upgrade, not manual file copying
Comment 7 Jaroslav Tulach 2004-08-17 12:40:44 UTC
Obviously the MultiFileObject is in incorrect state, it points to an
AbstractFileObject that does not exists. Imho the
serialization/deserialization of MultiFileObject is the problem, it
might be written in better way recover from such situations. Here is
the stacktrace of the allocation of one of the settings objects:

org.openide.filesystems.AbstractFileObject.<init>(Unknown Source)
org.openide.filesystems.AbstractFileSystem.createFileObject(AbstractFileSystem.java:344)
org.openide.filesystems.AbstractFileObject.createFile(Unknown Source)
org.openide.filesystems.AbstractFolder.getChild(AbstractFolder.java:284)
org.openide.filesystems.AbstractFolder.getChildren(AbstractFolder.java:205)
org.openide.filesystems.MultiFileObject.list(MultiFileObject.java:316)
org.openide.filesystems.AbstractFolder.refreshFolder(AbstractFolder.java:637)
org.openide.filesystems.AbstractFolder.refresh(AbstractFolder.java:830)
org.openide.filesystems.AbstractFolder.refresh(AbstractFolder.java:601)
org.openide.filesystems.MultiFileObject.refresh(MultiFileObject.java:376)
org.openide.filesystems.AbstractFolder.check(AbstractFolder.java:537)
org.openide.filesystems.AbstractFolder.getChildren(AbstractFolder.java:196)
org.openide.filesystems.MultiFileObject.list(MultiFileObject.java:316)
org.openide.filesystems.AbstractFolder.refreshFolder(AbstractFolder.java:637)
org.openide.filesystems.AbstractFolder.refresh(AbstractFolder.java:830)
org.openide.filesystems.AbstractFolder.refresh(AbstractFolder.java:601)
org.openide.filesystems.MultiFileObject.refresh(MultiFileObject.java:376)
org.openide.filesystems.AbstractFolder.check(AbstractFolder.java:537)
org.openide.filesystems.AbstractFolder.find(AbstractFolder.java:225)
org.openide.filesystems.MultiFileSystem.findResource(MultiFileSystem.java:238)
org.openide.filesystems.AbstractFolder$Replace.readObject(AbstractFolder.java:909)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:324)
java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:838)
java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1746)
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1646)
java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1845)
java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1769)
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1646)
java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
java.io.ObjectInputStream.readObject(ObjectInputStream.java:324)
java.util.ArrayList.readObject(ArrayList.java:547)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:324)
java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:838)
java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1746)
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1646)
java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1845)
java.io.ObjectInputStream.defaultReadObject(ObjectInputStream.java:452)
org.openide.util.lookup.InheritanceTree$R.readObject(InheritanceTree.java:1077)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:324)
java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:838)
java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1746)
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1646)
java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
java.io.ObjectInputStream.readObject(ObjectInputStream.java:324)
java.util.ArrayList.readObject(ArrayList.java:547)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:324)
java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:838)
java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1746)
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1646)
java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1845)
java.io.ObjectInputStream.defaultReadObject(ObjectInputStream.java:452)
org.openide.util.lookup.InheritanceTree$R.readObject(InheritanceTree.java:1077)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:324)
java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:838)
java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1746)
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1646)
java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
java.io.ObjectInputStream.readObject(ObjectInputStream.java:324)
org.openide.util.lookup.InheritanceTree.readObject(InheritanceTree.java:127)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:324)
java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:838)
java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1746)
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1646)
java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1845)
java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1769)
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1646)
java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
java.io.ObjectInputStream.readObject(ObjectInputStream.java:324)
org.openide.loaders.FolderLookup$ProxyLkp.readObject(FolderLookup.java:306)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:324)
java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:838)
java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1746)
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1646)
java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
java.io.ObjectInputStream.readObject(ObjectInputStream.java:324)
org.netbeans.core.LookupCache.loadCache(LookupCache.java:287)
org.netbeans.core.LookupCache.load(LookupCache.java:65)
org.netbeans.core.NbTopManager$Lkp.doInitializeLookup(NbTopManager.java:753)
org.netbeans.core.NbTopManager$Lkp.modulesClassPathInitialized(NbTopManager.java:746)
org.netbeans.core.modules.NbInstaller.load(NbInstaller.java:231)
org.netbeans.core.modules.ModuleManager.enable(ModuleManager.java:869)
org.netbeans.core.modules.ModuleList.installNew(ModuleList.java:350)
org.netbeans.core.modules.ModuleList.trigger(ModuleList.java:284)
org.netbeans.core.modules.ModuleSystem.restore(ModuleSystem.java:253)
org.netbeans.core.NonGui.run(NonGui.java:369)
org.netbeans.core.Main.run(Main.java:168)
org.netbeans.core.NbTopManager.getNbTopManager(NbTopManager.java:232)
org.netbeans.core.NbTopManager.get(NbTopManager.java:187)
org.netbeans.core.Main.start(Main.java:310)
org.netbeans.core.TopThreadGroup.run(TopThreadGroup.java:90)
java.lang.Thread.run(Thread.java:534)
Comment 8 rmatous 2004-08-17 15:11:42 UTC
*** Issue 47228 has been marked as a duplicate of this issue. ***
Comment 9 rmatous 2004-08-17 15:18:29 UTC
Problem:

BaseOptions.setColoringMap calls 
firePropertyChange(COLORING_MAP_PROP, null, null) which is captured by
settings infra. and there is created new delegate on writable layer
(user dir). Such created delegate is then silently deleted via
java.io.File (see attachment).

Really, really ugly.
Comment 10 rmatous 2004-08-17 15:20:05 UTC
Created attachment 16892 [details]
dumpstack
Comment 11 Jaroslav Tulach 2004-08-17 15:24:37 UTC
Direct manipulation with File must be avoided. If you really need to
have things under control consider writing your own convertor, but
please do not touch java.io.File.
Comment 12 Martin Roskanin 2004-08-18 09:11:26 UTC
*** Issue 47287 has been marked as a duplicate of this issue. ***
Comment 13 Martin Roskanin 2004-08-18 09:52:45 UTC
fixed in [maintrunk]

Quick fix: Stopping firing the property change that causes unwanted
serialization of Settings.settings. Editor settings aren't serialized,
they are xmlized. And although BaseOptions still extends SystemOption,
it is not valid SystemOption, it just supports deserialization of old
editor settings from NB 3.2 and earlier... 

I believe that there is no need to support deserialization of settings
from NB3.2, so the better fix would be to not extend SystemOption, I
will fix it later (#issue 47353), it needs to be tested properly...


/cvs/editor/src/org/netbeans/modules/editor/options/BaseOptions.java,v
 <--  BaseOptions.java
new revision: 1.91; previous revision: 1.90

/cvs/editor/src/org/netbeans/modules/editor/options/OptionSupport.java,v
 <--  OptionSupport.java
new revision: 1.27; previous revision: 1.26
Comment 14 Jaroslav Tulach 2004-08-18 10:24:57 UTC
The code that works with File was deleted, so I think the fix is in
the right direction. Btw. system option has method putProperty
(Object, Object) which does not do any firing. You might use it
instead of overriding firePropertyChange.
Comment 15 dmladek 2004-08-19 09:30:46 UTC
seems it's fixed. But I'm using Beta1 candidate #200408181510
Is it possible? I thought that it was fixed only in TRUNK
Comment 16 Martin Roskanin 2004-08-19 09:36:32 UTC
I haven't integrated the changes to q-build branch [QBE200408101800]
It seems it is not always reproducible... (I couldn't reproduce it)
Comment 17 rmatous 2004-08-19 09:47:22 UTC
I hope it has no use to fix it into q-branche cause this issue was  of
a little importance until InstanceDataObject rev. 1.15 (see
notifyFileChanged in stacktrace) .
Comment 18 dmladek 2004-08-19 10:04:05 UTC
aha.... then I understand it:-) It can't never occure in q-build/beta
branche 

I'll verify it soon on TRUNK.


thanks for explanation, Radek
Comment 19 Martin Roskanin 2004-08-19 13:29:29 UTC
*** Issue 47458 has been marked as a duplicate of this issue. ***
Comment 20 Roman Strobl 2005-07-14 14:52:28 UTC
Verified.