-
Notifications
You must be signed in to change notification settings - Fork 917
Open
Labels
PHP[ci] enable extra PHP tests (php/php.editor)[ci] enable extra PHP tests (php/php.editor)Platform[ci] enable platform tests (platform/*)[ci] enable platform tests (platform/*)kind:bugBug report or fixBug report or fixneeds:triageRequires attention from one of the committersRequires attention from one of the committers
Description
Apache NetBeans version
Apache NetBeans 24
What happened
I am building a netbeans module for my PHP project and require that it resolves *.php files as "text/x-php" instead of current "text/x-php5" MIME type.
I have created a class:
package Classes.MIMEResolvers;
import org.openide.filesystems.FileObject;
import org.openide.filesystems.MIMEResolver;
/**
*
* @author User
*/
@MIMEResolver.Registration(
displayName = "PHP Files",
position = 100,
resource = "/main/resources/mime/MIME-PHP.resolver.xml"
)
public class PHPFileResolver extends MIMEResolver {
public PHPFileResolver(){
super("text/x-php5");
}
@Override
public String findMIMEType(FileObject fo) {
// Use FileObject's own attributes or metadata for MIME type resolution
String ext = fo.getExt();
System.out.println("RESOLVING MIME FOR: " + fo.getNameExt());
if (ext != null && "php".equalsIgnoreCase(ext)) {
return "text/x-php";
}
return null; // Delegate to other resolvers if not recognized
}
}
However, when I run the nbm package to launch the custom netbeans module, I get the following log, and the PHP projects fail to open:
java.lang.AssertionError: FileUtil.getMIMEType(String extension) is deprecated. Please, use FileUtil.getMIMEType(FileObject).
at org.openide.filesystems.FileUtil.getMIMEType(FileUtil.java:1374)
at org.netbeans.modules.openide.filesystems.declmime.FileElement$Type.getMIMEType(FileElement.java:503)
at org.netbeans.modules.openide.filesystems.declmime.FileElement$Type.accept(FileElement.java:531)
at org.netbeans.modules.openide.filesystems.declmime.FileElement$Type.access$300(FileElement.java:133)
at org.netbeans.modules.openide.filesystems.declmime.FileElement.resolve(FileElement.java:76)
at org.netbeans.modules.openide.filesystems.declmime.MIMEResolverImpl$Impl.findMIMEType(MIMEResolverImpl.java:426)
at org.openide.filesystems.MIMESupport$CachedFileObject.resolveMIME(MIMESupport.java:346)
at org.openide.filesystems.MIMESupport$CachedFileObject.getMIMEType(MIMESupport.java:287)
at org.openide.filesystems.MIMESupport.findMIMEType(MIMESupport.java:111)
at org.openide.filesystems.FileUtil.getMIMEType(FileUtil.java:1388)
at org.openide.filesystems.FileObject.getMIMEType(FileObject.java:642)
at org.openide.filesystems.AbstractFileObject.getMIMEType(AbstractFileObject.java:169)
at org.netbeans.modules.parsing.api.Source.create(Source.java:120)
at org.netbeans.modules.parsing.impl.indexing.RepositoryUpdater$Work.indexEmbedding(RepositoryUpdater.java:3134)
at org.netbeans.modules.parsing.impl.indexing.RepositoryUpdater$Work.doIndex(RepositoryUpdater.java:2861)
at org.netbeans.modules.parsing.impl.indexing.RepositoryUpdater$Work.lambda$index$0(RepositoryUpdater.java:2626)
at org.netbeans.modules.parsing.impl.indexing.errors.TaskCache.refreshTransaction(TaskCache.java:540)
at org.netbeans.modules.parsing.impl.indexing.RepositoryUpdater$Work.index(RepositoryUpdater.java:2625)
at org.netbeans.modules.parsing.impl.indexing.RepositoryUpdater$AbstractRootsWork.lambda$scanSource$3(RepositoryUpdater.java:5735)
at org.netbeans.modules.parsing.impl.indexing.RepositoryUpdater.lambda$runInContext$4(RepositoryUpdater.java:2119)
at org.openide.util.lookup.Lookups.executeWith(Lookups.java:288)
at org.netbeans.modules.parsing.impl.indexing.RepositoryUpdater.runInContext(RepositoryUpdater.java:2117)
at org.netbeans.modules.parsing.impl.indexing.RepositoryUpdater.runInContext(RepositoryUpdater.java:2098)
at org.netbeans.modules.parsing.impl.indexing.RepositoryUpdater.access$1400(RepositoryUpdater.java:135)
at org.netbeans.modules.parsing.impl.indexing.RepositoryUpdater$AbstractRootsWork.scanSource(RepositoryUpdater.java:5770)
at org.netbeans.modules.parsing.impl.indexing.RepositoryUpdater$AbstractRootsWork.scanSources(RepositoryUpdater.java:5443)
at org.netbeans.modules.parsing.impl.indexing.RepositoryUpdater$RootsWork.getDone(RepositoryUpdater.java:5075)
at org.netbeans.modules.parsing.impl.indexing.RepositoryUpdater$InitialRootsWork.getDone(RepositoryUpdater.java:5842)
[catch] at org.netbeans.modules.parsing.impl.indexing.RepositoryUpdater$Work.doTheWork(RepositoryUpdater.java:3452)
at org.netbeans.modules.parsing.impl.indexing.RepositoryUpdater$Task._run(RepositoryUpdater.java:6197)
at org.netbeans.modules.parsing.impl.indexing.RepositoryUpdater$Task.access$3400(RepositoryUpdater.java:5855)
at org.netbeans.modules.parsing.impl.indexing.RepositoryUpdater$Task$2.lambda$call$0(RepositoryUpdater.java:6116)
at org.openide.util.lookup.Lookups.executeWith(Lookups.java:288)
at org.netbeans.modules.parsing.impl.RunWhenScanFinishedSupport.performScan(RunWhenScanFinishedSupport.java:83)
at org.netbeans.modules.parsing.impl.indexing.RepositoryUpdater$Task$2.call(RepositoryUpdater.java:6116)
at org.netbeans.modules.parsing.impl.indexing.RepositoryUpdater$Task$2.call(RepositoryUpdater.java:6112)
at org.netbeans.modules.masterfs.filebasedfs.utils.FileChangedManager.priorityIO(FileChangedManager.java:153)
at org.netbeans.modules.masterfs.providers.ProvidedExtensions.priorityIO(ProvidedExtensions.java:335)
at org.netbeans.modules.parsing.nb.DataObjectEnvFactory.runPriorityIO(DataObjectEnvFactory.java:118)
at org.netbeans.modules.parsing.impl.Utilities.runPriorityIO(Utilities.java:67)
at org.netbeans.modules.parsing.impl.indexing.RepositoryUpdater$Task.run(RepositoryUpdater.java:6112)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:572)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:1403)
at org.netbeans.modules.openide.util.GlobalLookup.execute(GlobalLookup.java:45)
at org.openide.util.lookup.Lookups.executeWith(Lookups.java:287)
at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:2018)
Language / Project Type / NetBeans Component
NetBeans Module Project
How to reproduce
- Create class as specified in problem description.
- Right-click and run project
- Create or open PHP project.
Project should fail to open and error should be thrown in Project output.
Did this work correctly in an earlier version?
No / Don't know
Operating System
Windows 11
JDK
JDK 23
Apache NetBeans packaging
Apache NetBeans provided installer
Anything else
No response
Are you willing to submit a pull request?
No
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
PHP[ci] enable extra PHP tests (php/php.editor)[ci] enable extra PHP tests (php/php.editor)Platform[ci] enable platform tests (platform/*)[ci] enable platform tests (platform/*)kind:bugBug report or fixBug report or fixneeds:triageRequires attention from one of the committersRequires attention from one of the committers