You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@netbeans.apache.org by "Marvin P. Warble Jr." <mw...@corvusengineering.com.INVALID> on 2021/12/10 16:17:17 UTC

RE: Refactoring Exceptions

Posting some follow up information for this problem.

 

I just discovered that refactoring issues I’ve been having with 12 for over a year now seem to be related to the existence of nb-javac.  For some reason I thought nb-javac needed to be installed.  I think I made this assumption because I develop web apps and when NB installs the J2EE support for web apps, it also installs nb-javac giving the impression that nb-javac is needed for webapp development.

 

When I uninstalled the nb-javac plugin this week, my refactoring problems went away.  These problems consisted of NB throwing exceptions and mangling code when trying to rename classes or methods or moving classes to new packages when those classes / methods had more than a dozen or so dependencies.

 

With that said, this was the case for 12.5.  When I updated to 12.6 this week and tried to uninstall nb-javac, I ran into other problems.  I’ve since switched back to 12.5 as I don’t have time to try to troubleshoot why 12.6 isn’t working.

 

 

From: Geertjan Wielenga [mailto:geertjan.wielenga@googlemail.com.INVALID] 
Sent: Thursday, October 7, 2021 12:54 PM
To: Marvin P. Warble Jr. <mw...@corvusengineering.com.invalid>
Cc: NetBeans Mailing List <us...@netbeans.apache.org>
Subject: Re: Refactoring Exceptions

 

Also in 12.5?

 

Gj

 

 

 

On Thu, Oct 7, 2021 at 6:49 PM Marvin P. Warble Jr. <mwarble@corvusengineering.com.invalid <ma...@corvusengineering.com.invalid> > wrote:

I’ve posted about this before, but have been unable to provide any more information or get the issue resolved.

 

I’ve lost the ability to refactor classes that have more than about dozen dependents.  The problem is having a significant impact on my work.

 

Let me try to recap the problem.  I have web app project that in total with in-house developed libraries is over 500k lines of code.  When attempting to rename or move classes that have more than a dozen dependents, sometimes NB throws an exception during the Prepare process and sometimes the refactor executes but produces unwanted results.  For instance, many times the import statements of the dependent classes will get completely mangled and will require manual steps to fix.

 

I’ve also noticed that the Find Usages function will work, but after the first several results produces the wrong line numbers where the usage actually occurs.  It finds the correct file, but the lines displayed in the results window are off by several lines.  I suspect the refactoring issue and this issue are somehow related as both problems seem to occur when there are more than about a dozen dependents on the code being refactored or processed by the “Find Usages” function.

 

When exceptions are generated in IDE log, they don’t seem to be consistent.

 

For instance, the class I’m currently trying to rename will generate the following exception:

 

---------------------------------------------------------------------------------------------------------------------------

 

INFO [org.netbeans.modules.java.source.save.CasualDiff]: Illegal values: from = 1107; to = 1102.Please, attach your messages.log to new issue!

 

 

SEVERE [org.openide.util.Exceptions]

java.lang.IllegalArgumentException: Copying to 4205 is greater then its size (3072).

         at org.netbeans.modules.java.source.save.CasualDiff.copyTo(CasualDiff.java:6108)

         at org.netbeans.modules.java.source.save.CasualDiff.copyTo(CasualDiff.java:6087)

         at org.netbeans.modules.java.source.save.CasualDiff.diffMethodDef(CasualDiff.java:1260)

         at org.netbeans.modules.java.source.save.CasualDiff.diffTreeImpl0(CasualDiff.java:5552)

         at org.netbeans.modules.java.source.save.CasualDiff.diffTreeImpl(CasualDiff.java:5443)

         at org.netbeans.modules.java.source.save.CasualDiff.diffTree(CasualDiff.java:5370)

         at org.netbeans.modules.java.source.save.CasualDiff.diffTree(CasualDiff.java:5341)

         at org.netbeans.modules.java.source.save.CasualDiff.diffList(CasualDiff.java:4176)

         at org.netbeans.modules.java.source.save.CasualDiff.diffClassDef(CasualDiff.java:1102)

         at org.netbeans.modules.java.source.save.CasualDiff.diffTreeImpl0(CasualDiff.java:5549)

         at org.netbeans.modules.java.source.save.CasualDiff.diffTreeImpl(CasualDiff.java:5443)

         at org.netbeans.modules.java.source.save.CasualDiff.diffTree(CasualDiff.java:5370)

         at org.netbeans.modules.java.source.save.CasualDiff.diffTree(CasualDiff.java:5341)

         at org.netbeans.modules.java.source.save.CasualDiff.diffList(CasualDiff.java:4176)

         at org.netbeans.modules.java.source.save.CasualDiff.diffTopLevel(CasualDiff.java:594)

         at org.netbeans.modules.java.source.save.CasualDiff.diffTreeImpl0(CasualDiff.java:5522)

         at org.netbeans.modules.java.source.save.CasualDiff.diffTreeImpl(CasualDiff.java:5443)

         at org.netbeans.modules.java.source.save.CasualDiff.diffTree(CasualDiff.java:5370)

         at org.netbeans.modules.java.source.save.CasualDiff.diffTree(CasualDiff.java:5353)

         at org.netbeans.modules.java.source.save.CasualDiff.diff(CasualDiff.java:350)

         at org.netbeans.api.java.source.WorkingCopy.processCurrentCompilationUnit(WorkingCopy.java:920)

         at org.netbeans.api.java.source.WorkingCopy.getChanges(WorkingCopy.java:1332)

         at org.netbeans.api.java.source.JavaSource$1.run(JavaSource.java:676)

         at org.netbeans.api.java.source.JavaSource$1.run(JavaSource.java:663)

         at org.netbeans.api.java.source.JavaSource$MultiTask.run(JavaSource.java:502)

         at org.netbeans.modules.parsing.impl.TaskProcessor.callUserTask(TaskProcessor.java:586)

         at org.netbeans.modules.parsing.api.ParserManager$MultiUserTaskAction.run(ParserManager.java:166)

         at org.netbeans.modules.parsing.api.ParserManager$MultiUserTaskAction.run(ParserManager.java:138)

         at org.netbeans.modules.parsing.impl.TaskProcessor$2.call(TaskProcessor.java:181)

         at org.netbeans.modules.parsing.impl.TaskProcessor$2.call(TaskProcessor.java:178)

         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.TaskProcessor.runUserTask(TaskProcessor.java:178)

         at org.netbeans.modules.parsing.api.ParserManager.parse(ParserManager.java:83)

         at org.netbeans.api.java.source.JavaSource.runUserActionTaskImpl(JavaSource.java:452)

         at org.netbeans.api.java.source.JavaSource.runUserActionTask(JavaSource.java:423)

         at org.netbeans.api.java.source.JavaSource.runModificationTask(JavaSource.java:684)

         at org.netbeans.modules.refactoring.java.spi.JavaRefactoringPlugin.processFiles(JavaRefactoringPlugin.java:323)

         at org.netbeans.modules.refactoring.java.spi.JavaRefactoringPlugin.processFiles(JavaRefactoringPlugin.java:264)

         at org.netbeans.modules.refactoring.java.spi.JavaRefactoringPlugin.processFiles(JavaRefactoringPlugin.java:246)

         at org.netbeans.modules.refactoring.java.spi.JavaRefactoringPlugin.createAndAddElements(JavaRefactoringPlugin.java:338)

         at org.netbeans.modules.refactoring.java.plugins.RenameRefactoringPlugin.prepare(RenameRefactoringPlugin.java:626)

[catch] at org.netbeans.modules.refactoring.api.AbstractRefactoring.pluginsPrepare2(AbstractRefactoring.java:417)

         at org.netbeans.modules.refactoring.api.AbstractRefactoring.pluginsPrepare(AbstractRefactoring.java:401)

         at org.netbeans.modules.refactoring.api.AbstractRefactoring.prepare(AbstractRefactoring.java:212)

         at org.netbeans.modules.refactoring.spi.impl.ParametersPanel$Prepare.run(ParametersPanel.java:1063)

         at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:1418)

         at org.netbeans.modules.openide.util.GlobalLookup.execute(GlobalLookup.java:45)

         at org.openide.util.lookup.Lookups.executeWith(Lookups.java:278)

         at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:2033)

 

 

Attempting to move another class will generate the following exception:

 

at org.netbeans.api.lexer.TokenSequence.checkTokenNotNull(TokenSequence.java:771)

         at org.netbeans.api.lexer.TokenSequence.offset(TokenSequence.java:243)

         at org.netbeans.modules.java.source.save.CasualDiff.diffPackage(CasualDiff.java:871)

         at org.netbeans.modules.java.source.save.CasualDiff.diffTopLevel(CasualDiff.java:588)

         at org.netbeans.modules.java.source.save.CasualDiff.diffTreeImpl0(CasualDiff.java:5522)

         at org.netbeans.modules.java.source.save.CasualDiff.diffTreeImpl(CasualDiff.java:5443)

         at org.netbeans.modules.java.source.save.CasualDiff.diffTree(CasualDiff.java:5370)

         at org.netbeans.modules.java.source.save.CasualDiff.diffTree(CasualDiff.java:5353)

         at org.netbeans.modules.java.source.save.CasualDiff.diff(CasualDiff.java:350)

         at org.netbeans.api.java.source.WorkingCopy.processCurrentCompilationUnit(WorkingCopy.java:920)

         at org.netbeans.api.java.source.WorkingCopy.getChanges(WorkingCopy.java:1332)

         at org.netbeans.api.java.source.JavaSource$1.run(JavaSource.java:676)

         at org.netbeans.api.java.source.JavaSource$1.run(JavaSource.java:663)

         at org.netbeans.api.java.source.JavaSource$MultiTask.run(JavaSource.java:502)

         at org.netbeans.modules.parsing.impl.TaskProcessor.callUserTask(TaskProcessor.java:586)

         at org.netbeans.modules.parsing.api.ParserManager$MultiUserTaskAction.run(ParserManager.java:166)

         at org.netbeans.modules.parsing.api.ParserManager$MultiUserTaskAction.run(ParserManager.java:138)

         at org.netbeans.modules.parsing.impl.TaskProcessor$2.call(TaskProcessor.java:181)

         at org.netbeans.modules.parsing.impl.TaskProcessor$2.call(TaskProcessor.java:178)

         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.TaskProcessor.runUserTask(TaskProcessor.java:178)

         at org.netbeans.modules.parsing.api.ParserManager.parse(ParserManager.java:83)

         at org.netbeans.api.java.source.JavaSource.runUserActionTaskImpl(JavaSource.java:452)

         at org.netbeans.api.java.source.JavaSource.runUserActionTask(JavaSource.java:423)

         at org.netbeans.api.java.source.JavaSource.runModificationTask(JavaSource.java:684)

         at org.netbeans.modules.refactoring.java.spi.JavaRefactoringPlugin.processFiles(JavaRefactoringPlugin.java:323)

         at org.netbeans.modules.refactoring.java.spi.JavaRefactoringPlugin.processFiles(JavaRefactoringPlugin.java:264)

         at org.netbeans.modules.refactoring.java.spi.JavaRefactoringPlugin.processFiles(JavaRefactoringPlugin.java:246)

         at org.netbeans.modules.refactoring.java.spi.JavaRefactoringPlugin.createAndAddElements(JavaRefactoringPlugin.java:338)

         at org.netbeans.modules.refactoring.java.spi.JavaRefactoringPlugin.createAndAddElements(JavaRefactoringPlugin.java:354)

         at org.netbeans.modules.refactoring.java.plugins.MoveFileRefactoringPlugin.prepare(MoveFileRefactoringPlugin.java:571)

[catch] at org.netbeans.modules.refactoring.api.AbstractRefactoring.pluginsPrepare2(AbstractRefactoring.java:417)

         at org.netbeans.modules.refactoring.api.AbstractRefactoring.pluginsPrepare(AbstractRefactoring.java:401)

         at org.netbeans.modules.refactoring.api.AbstractRefactoring.prepare(AbstractRefactoring.java:212)

         at org.netbeans.modules.refactoring.spi.impl.ParametersPanel$Prepare.run(ParametersPanel.java:1063)

         at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:1418)

         at org.netbeans.modules.openide.util.GlobalLookup.execute(GlobalLookup.java:45)

         at org.openide.util.lookup.Lookups.executeWith(Lookups.java:278)

         at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:2033)

 

 

---------------------------------------------------------------------------------------------------------------------------

 

Previously, in NB 12.4 I would receive this exception when trying refactor certain classes:

 

java.lang.NullPointerException: Cannot invoke "java.util.Collection.contains(Object)" because "sourceFiles" is null

         at com.sun.tools.javac.comp.Todo.retainFiles(Todo.java:98)

         at org.netbeans.modules.java.source.parsing.JavacParser.moveToPhase(JavacParser.java:727)

         at org.netbeans.modules.java.source.parsing.CompilationInfoImpl.toPhase(CompilationInfoImpl.java:399)

         at org.netbeans.api.java.source.CompilationController.toPhase(CompilationController.java:88)

         at org.netbeans.api.java.source.WorkingCopy.toPhase(WorkingCopy.java:193)

         at org.netbeans.modules.refactoring.java.spi.RefactoringVisitor.setWorkingCopy(RefactoringVisitor.java:111)

         at org.netbeans.modules.refactoring.java.plugins.MoveTransformer.setWorkingCopy(MoveTransformer.java:74)

         at org.netbeans.modules.refactoring.java.spi.JavaRefactoringPlugin$TransformTask.run(JavaRefactoringPlugin.java:435)

         at org.netbeans.modules.refactoring.java.spi.JavaRefactoringPlugin$TransformTask.run(JavaRefactoringPlugin.java:418)

         at org.netbeans.modules.refactoring.java.spi.JavaRefactoringPlugin.lambda$processFiles$0(JavaRefactoringPlugin.java:323)

         at org.netbeans.api.java.source.JavaSource$1.run(JavaSource.java:673)

         at org.netbeans.api.java.source.JavaSource$1.run(JavaSource.java:663)

         at org.netbeans.api.java.source.JavaSource$MultiTask.run(JavaSource.java:502)

         at org.netbeans.modules.parsing.impl.TaskProcessor.callUserTask(TaskProcessor.java:586)

         at org.netbeans.modules.parsing.api.ParserManager$MultiUserTaskAction.run(ParserManager.java:166)

         at org.netbeans.modules.parsing.api.ParserManager$MultiUserTaskAction.run(ParserManager.java:138)

         at org.netbeans.modules.parsing.impl.TaskProcessor$2.call(TaskProcessor.java:181)

         at org.netbeans.modules.parsing.impl.TaskProcessor$2.call(TaskProcessor.java:178)

         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.TaskProcessor.runUserTask(TaskProcessor.java:178)

         at org.netbeans.modules.parsing.api.ParserManager.parse(ParserManager.java:83)

         at org.netbeans.api.java.source.JavaSource.runUserActionTaskImpl(JavaSource.java:452)

         at org.netbeans.api.java.source.JavaSource.runUserActionTask(JavaSource.java:423)

         at org.netbeans.api.java.source.JavaSource.runModificationTask(JavaSource.java:684)

         at org.netbeans.modules.refactoring.java.spi.JavaRefactoringPlugin.processFiles(JavaRefactoringPlugin.java:321)

         at org.netbeans.modules.refactoring.java.spi.JavaRefactoringPlugin.processFiles(JavaRefactoringPlugin.java:264)

         at org.netbeans.modules.refactoring.java.spi.JavaRefactoringPlugin.processFiles(JavaRefactoringPlugin.java:246)

         at org.netbeans.modules.refactoring.java.spi.JavaRefactoringPlugin.createAndAddElements(JavaRefactoringPlugin.java:336)

         at org.netbeans.modules.refactoring.java.spi.JavaRefactoringPlugin.createAndAddElements(JavaRefactoringPlugin.java:352)

         at org.netbeans.modules.refactoring.java.plugins.MoveFileRefactoringPlugin.prepare(MoveFileRefactoringPlugin.java:571)

         at org.netbeans.modules.refactoring.api.AbstractRefactoring.pluginsPrepare2(AbstractRefactoring.java:417)

         at org.netbeans.modules.refactoring.api.AbstractRefactoring.pluginsPrepare(AbstractRefactoring.java:401)

         at org.netbeans.modules.refactoring.api.AbstractRefactoring.prepare(AbstractRefactoring.java:212)

         at org.netbeans.modules.refactoring.spi.impl.ParametersPanel$Prepare.run(ParametersPanel.java:1063)

         at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:1418)

         at org.netbeans.modules.openide.util.GlobalLookup.execute(GlobalLookup.java:45)

         at org.openide.util.lookup.Lookups.executeWith(Lookups.java:278)

         at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:2033)

 

---------------------------------------------------------------------------------------------------------------------------

 

All 3 exception travel through AbstractRefactoring.java:212 however.

 

I have recreated projects from scratch and re-added my source code hoping the problem may just be corrupted project files; however, the problem persists.

 

I am highly dependent on Netbeans for commercial product development and have no desire to migrate to another IDE.  I have tried all the top Java IDE’s and Netbeans is my IDE of choice.   However, this problem is costing significant amounts of lost time trying to work around this issue.

 

Would it be possible to pay a Netbeans developer to track down the source of these problems and get them fixed ASAP?

 

Thank you.