Please use the Apache issue tracking system for new NetBeans issues (https://issues.apache.org/jira/projects/NETBEANS0/issues) !!

Bug 238679

Summary: Directory name is shown as lowercase on project tree node in Mac
Product: platform Reporter: junichi11
Component: FilesystemsAssignee: Jaroslav Havlin <jhavlin>
Status: RESOLVED FIXED QA Contact: issues <issues.netbeans.org>
Priority: P3 CC: jmail, obrejla, tmysik
Version: 7.4   
Target Milestone: 8.0   
Hardware: PC   
OS: Mac OS X   
Whiteboard:
Issue Type: DEFECT Exception Report:
Attachments: Proposed Patch
Proposed Patch v2
Proposed Patch v2
Proposed Patch v3

Description junichi11 2013-11-22 04:31:51 UTC
Unfortunately, I don't have a Mac environment.
But I got this issue in cakephp plugin issue[1].

It seems that some directory names are shown as lowercase on project tree node.(e.g. Config -> config)
Actually, I got lowercase names with FileObject.getName()(embedded some logs, got directory name of "app" directory children).

environment:
- Mac
- NetBeans 7.4

steps:
1. download NetBeans7.4
2. download CakePHP [2] and unzip it
3. new project > PHP > PHP Application with Existing Source
4. select cakephp folder of step2 as source folder

app/Config or app/Console is shown as app/config or app/console.

This issue is also occurred when we don't install cakephp plugin.

[1] https://github.com/junichi11/cakephp-netbeans/issues/66
[2] https://github.com/cakephp/cakephp/archive/2.4.2.zip

Thanks.
Comment 1 Tomas Mysik 2013-12-04 10:01:30 UTC
*** Bug 238633 has been marked as a duplicate of this bug. ***
Comment 2 Tomas Mysik 2013-12-04 10:02:26 UTC
Please note that issue #238633 is reproducible on Windows.

Thanks.
Comment 3 jmail 2014-01-20 16:13:50 UTC
unfortunately I have downloaded Beans 8.0 beta without CakePHP. Problem still exists. app/Config and app/Console are changed to lowercase
Comment 4 snelgman 2014-02-12 19:35:37 UTC
Based on tests on my Windows machine, the problem appears to be in the "Nette2 Framework" and "Symfony2 Framework" plugins.

- Disabling Nette2 plugin fixes capitalization of app/Config

- Disabling Symfony2 plugin fixes app/Console

Note that the unwanted lowercasing happens regardless of whether the frameworks are "Enabled" for a project. It affects all PHP projects.
Comment 5 jmail 2014-02-12 23:22:52 UTC
snelgman@netbeans.org 

Tested on Beans 7.4, 8.0 Beta - works like a charm afteactivation of Nette2 and Symphony2

Thank you snelgman - for my luck I don't uset nette and symphony :)
Comment 6 junichi11 2014-02-13 13:04:55 UTC
We should not change this issue status because this problem is not resolved yet.
It's just workaround that other plugins are disabled.

@Tomas,
I guess that other plugins search app/console and app/config directories with auto-detection.
AFAIR, if a project has uppercase directory, directory name is changed to lowercase when we get FileObeject with lowercase name in Windows.(Is this bug of FileObject? or correct behavior?) e.g. getFileObject("app/console") is not null when project has app/Console directory.
CakePHP 1.x has app/console but CakePHP 2.xx has app/Console. So, I'm checking uppercase directory name at first when I check directory at the moment.

Thanks.
Comment 7 Tomas Mysik 2014-02-13 13:15:46 UTC
Not sure about FS questions. Jardo, could you please answer?

Thanks.
Comment 8 Ondrej Vrabec 2014-02-13 13:26:44 UTC
likely a FS problem
Comment 9 Jaroslav Havlin 2014-02-13 16:29:04 UTC
Created attachment 145160 [details]
Proposed Patch

The problem is caused by Filesystems, but fixing this there is quite risky.

1. The Nette2 module checks whether app/config exists.
2. It exists (with different case, but it isn't a problem on Mac or Win).
3. The FileName object is cached (with name app/config, instead of app/Config).
4. The Projects window uses the cached file name.

I'm sorry, I'm afraid that making changes to the code in Filesystems could cause some regressions, we are too close to code freeze for such modifications.

Please check the patch with workaround and apply it if you find it safe.
Thank you.
Comment 10 Tomas Mysik 2014-02-14 06:20:44 UTC
Ondro, have a look at the patch Jarda has attached. If you are OK with it, could you please apply it? Symfony2 part of the patch seems fine to me...

Thanks.
Comment 11 Ondrej Brejla 2014-02-14 09:50:03 UTC
Patch applied.

Fixed in web-main #93cff6f486cb
Comment 12 Jaroslav Havlin 2014-02-14 10:02:56 UTC
Created attachment 145185 [details]
Proposed Patch v2

Thank you, Ondra.

Unfortunately, I've just realized that the fix could cause problems when the Config (resp. Console) directory is a symbolic link. File.getCanonicalFile() resolves symbolic links on Linux, which is something we don't want to do.

I'm attaching updated patch.
I'm sorry for the inconvenience.
Comment 13 Jaroslav Havlin 2014-02-14 10:05:21 UTC
Created attachment 145186 [details]
Proposed Patch v2

I'm sorry, I've attached an incorrect diff file.
Comment 14 Ondrej Brejla 2014-02-14 10:12:44 UTC
Applied, thanks.

web-main #5ff4c648de17
Comment 15 Jaroslav Havlin 2014-02-14 11:08:48 UTC
Created attachment 145193 [details]
Proposed Patch v3

Improved patch, as suggested by Ondrej Vrabec.
Comment 16 Quality Engineering 2014-02-15 05:12:57 UTC
Integrated into 'main-silver', will be available in build *201402150001* on http://bits.netbeans.org/dev/nightly/ (upload may still be in progress)

Changeset: http://hg.netbeans.org/main-silver/rev/93cff6f486cb
User: Ondrej Brejla <obrejla@netbeans.org>
Log: #238679 - Directory name is shown as lowercase on project tree node in Mac
Comment 17 Jaroslav Havlin 2014-02-18 10:13:56 UTC
> Improved patch, as suggested by Ondrej Vrabec.
http://hg.netbeans.org/core-main/rev/c8b84371c314
Comment 18 Quality Engineering 2014-02-19 02:47:18 UTC
Integrated into 'main-silver', will be available in build *201402190001* on http://bits.netbeans.org/dev/nightly/ (upload may still be in progress)

Changeset: http://hg.netbeans.org/main-silver/rev/c8b84371c314
User: Jaroslav Havlin <jhavlin@netbeans.org>
Log: #238679: Directory name is shown as lowercase on project tree node - simplified
By use of this website, you agree to the NetBeans Policies and Terms of Use. © 2014, Oracle Corporation and/or its affiliates. Sponsored by Oracle logo