Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Occasional OfflineOperationError when diffing pom files #6525

Closed
mbien opened this issue Oct 4, 2023 · 3 comments · Fixed by #6552
Closed

Occasional OfflineOperationError when diffing pom files #6525

mbien opened this issue Oct 4, 2023 · 3 comments · Fixed by #6552
Assignees
Labels
kind:bug Bug report or fix Maven [ci] enable "build tools" tests Regression This used to work!

Comments

@mbien
Copy link
Member

mbien commented Oct 4, 2023

Apache NetBeans version

build from master at 2cb4326 (NB 20 dev build)

What happened

noticed while testing the jgit changes. While browsing git history in diff view, the pom files sometimes fail to load and the exception is thrown. The diff view remains empty when that happens.

SEVERE [org.openide.util.RequestProcessor]: Error in RequestProcessor org.netbeans.modules.diff.builtin.visualizer.editable.EditableDiffView$2$1
org.netbeans.modules.maven.embedder.impl.OfflineOperationError
	at org.netbeans.modules.maven.embedder.impl.OfflineConnector.newInstance(OfflineConnector.java:43)
	at org.eclipse.aether.internal.impl.DefaultRepositoryConnectorProvider.newRepositoryConnector(DefaultRepositoryConnectorProvider.java:121)
	at org.eclipse.aether.internal.impl.DefaultArtifactResolver.performDownloads(DefaultArtifactResolver.java:521)
	at org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolve(DefaultArtifactResolver.java:435)
	at org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifacts(DefaultArtifactResolver.java:259)
	at org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifact(DefaultArtifactResolver.java:242)
	at org.eclipse.aether.internal.impl.DefaultRepositorySystem.resolveArtifact(DefaultRepositorySystem.java:277)
	at org.apache.maven.artifact.resolver.DefaultArtifactResolver.resolve(DefaultArtifactResolver.java:197)
	at org.apache.maven.artifact.resolver.DefaultArtifactResolver.resolveAlways(DefaultArtifactResolver.java:152)
	at org.netbeans.modules.maven.embedder.MavenEmbedder.resolveArtifact(MavenEmbedder.java:413)
	at org.netbeans.modules.maven.embedder.NBRepositoryModelResolver.resolveModel(NBRepositoryModelResolver.java:74)
	at org.netbeans.modules.maven.embedder.NBRepositoryModelResolver.resolveModel(NBRepositoryModelResolver.java:86)
	at org.apache.maven.model.building.DefaultModelBuilder.readParentExternally(DefaultModelBuilder.java:1009)
	at org.apache.maven.model.building.DefaultModelBuilder.readParent(DefaultModelBuilder.java:801)
	at org.apache.maven.model.building.DefaultModelBuilder.build(DefaultModelBuilder.java:327)
	at org.apache.maven.model.building.DefaultModelBuilder.build(DefaultModelBuilder.java:243)
	at org.netbeans.modules.maven.embedder.impl.NBModelBuilder.build(NBModelBuilder.java:53)
	at org.netbeans.modules.maven.embedder.MavenEmbedder.executeModelBuilder(MavenEmbedder.java:492)
	at org.netbeans.modules.maven.NbMavenProjectImpl.getRawModel(NbMavenProjectImpl.java:216)
	at org.netbeans.modules.maven.api.NbMavenProject.getRawModel(NbMavenProject.java:392)
	at org.netbeans.modules.maven.MavenProjectPropsImpl.lambda$get$0(MavenProjectPropsImpl.java:93)
	at org.netbeans.modules.openide.util.DefaultMutexImplementation.readAccess(DefaultMutexImplementation.java:188)
	at org.openide.util.Mutex.readAccess(Mutex.java:199)
	at org.netbeans.modules.maven.MavenProjectPropsImpl.get(MavenProjectPropsImpl.java:78)
	at org.netbeans.modules.maven.MavenProjectPropsImpl.get(MavenProjectPropsImpl.java:74)
	at org.netbeans.modules.maven.MavenProjectPropsImpl$PackagingProviderImpl.packaging(MavenProjectPropsImpl.java:306)
	at org.netbeans.modules.maven.api.NbMavenProject.getPackagingType(NbMavenProject.java:378)
	at org.netbeans.modules.maven.NbMavenProjectImpl$PackagingTypeDependentLookup.check(NbMavenProjectImpl.java:1050)
	at org.netbeans.modules.maven.NbMavenProjectImpl$PackagingTypeDependentLookup.<init>(NbMavenProjectImpl.java:1008)
	at org.netbeans.modules.maven.NbMavenProjectImpl.<init>(NbMavenProjectImpl.java:274)
	at org.netbeans.modules.maven.NbMavenProjectFactory.loadProject(NbMavenProjectFactory.java:98)
	at org.netbeans.modules.projectapi.nb.NbProjectManager.createProject(NbProjectManager.java:376)
	at org.netbeans.modules.projectapi.nb.NbProjectManager.access$300(NbProjectManager.java:69)
	at org.netbeans.modules.projectapi.nb.NbProjectManager$2.run(NbProjectManager.java:289)
	at org.netbeans.modules.projectapi.nb.NbProjectManager$2.run(NbProjectManager.java:218)
	at org.netbeans.modules.openide.util.DefaultMutexImplementation.readAccess(DefaultMutexImplementation.java:188)
	at org.openide.util.Mutex.readAccess(Mutex.java:232)
	at org.netbeans.modules.projectapi.nb.NbProjectManager.findProject(NbProjectManager.java:218)
	at org.netbeans.api.project.ProjectManager.findProject(ProjectManager.java:142)
	at org.netbeans.modules.projectapi.SimpleFileOwnerQueryImplementation.getOwner(SimpleFileOwnerQueryImplementation.java:144)
	at org.netbeans.api.project.FileOwnerQuery.getOwner(FileOwnerQuery.java:91)
	at org.netbeans.modules.projectapi.ProjectFileEncodingQueryImplementation.getEncoding(ProjectFileEncodingQueryImplementation.java:47)
	at org.netbeans.api.queries.FileEncodingQuery.getEncoding(FileEncodingQuery.java:71)
	at org.openide.text.DataEditorSupport.openDocument(DataEditorSupport.java:549)
	at org.netbeans.modules.diff.builtin.visualizer.editable.EditableDiffView.getSourceDocument(EditableDiffView.java:1200)
	at org.netbeans.modules.diff.builtin.visualizer.editable.EditableDiffView.access$1100(EditableDiffView.java:87)
	at org.netbeans.modules.diff.builtin.visualizer.editable.EditableDiffView$2$1.run(EditableDiffView.java:296)
	at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:1420)
	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:2035)
Caused: org.openide.util.RequestProcessor$SlowItem
	at org.openide.util.RequestProcessor.post(RequestProcessor.java:396)
	at org.netbeans.modules.diff.builtin.visualizer.editable.EditableDiffView$2.run(EditableDiffView.java:292)
	at org.netbeans.modules.diff.builtin.visualizer.editable.EditableDiffView.<init>(EditableDiffView.java:356)
	at org.netbeans.modules.diff.builtin.DefaultDiffControllerProvider.createEnhancedDiffController(DefaultDiffControllerProvider.java:45)
	at org.netbeans.api.diff.DiffController.createEnhanced(DiffController.java:87)
	at org.netbeans.modules.git.ui.history.DiffResultsView$ShowDiffTask$1.run(DiffResultsView.java:473)
	at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:318)
	at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:773)
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:720)
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:714)
	at java.base/java.security.AccessController.doPrivileged(AccessController.java:400)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:87)
	at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:742)
	at org.netbeans.core.TimableEventQueue.dispatchEvent(TimableEventQueue.java:136)
	at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
[catch] at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)

How to reproduce

unfortunately this doesn't seem to be always reproducible, still trying to figure out why:

  • clone https://github.com/apache/maven-indexer.git
  • right click -> git -> show history
  • right click on acf3329 (24-july-2023) (since it modified many poms) -> diff to previews
  • go through the poms and check if all diffs load, if it doesn't load, check log

Did this work correctly in an earlier version?

It seems to work fine in NB 19 so far

Operating System

linux

JDK

JDK 21

Apache NetBeans packaging

Own source build

Anything else

No response

Are you willing to submit a pull request?

Maybe

@mbien mbien added kind:bug Bug report or fix Maven [ci] enable "build tools" tests labels Oct 4, 2023
@mbien
Copy link
Member Author

mbien commented Oct 4, 2023

after reverting ba5ab52 of #6344 I can't reproduce it anymore. cc @sdedic

@mbien mbien added the Regression This used to work! label Oct 4, 2023
@sdedic sdedic self-assigned this Oct 4, 2023
@matthiasblaesing
Copy link
Contributor

I noticed this too at work, but did not have time to investigate. Thanks for doing what I should have done @mbien and thank you for looking into this @sdedic.

@sdedic
Copy link
Member

sdedic commented Oct 10, 2023

Revert is not a good solution: the thrown exception suggests that the execution (somehow) bypassed all the checks for RepositorySession.isOffline() or the session was misconfigured NOT to be offline.

The previous impl just hid / swallowed the error condition, most probably.

sdedic added a commit to sdedic/incubator-netbeans that referenced this issue Oct 10, 2023
sdedic added a commit to sdedic/incubator-netbeans that referenced this issue Oct 16, 2023
mbien added a commit that referenced this issue Oct 16, 2023
#6525: maven execution should setup LegacySupport before running Maven
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind:bug Bug report or fix Maven [ci] enable "build tools" tests Regression This used to work!
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants