Missing write access to proparse temp directory when generating BusinessEntity

If proparse does not have write access to prorefactor\temp in the Business Entity Designer’s temp-directory, an AccessDeniedException with the message “Missing write permissions for prorefactor/Temp directory!” is thrown. In older versions (before 2021-07-05) this was a NullPointerException instead.

An application error has occured (Consultingwerk.Studio.Proparse.ProparseException)

org.prorefactor.refactor.RefactorException: Error parsing CustomerBusinessEntity.cls Original Exception: c:\Work\OpenEdge123_64\prorefactor\temp\listingfile.txt: Missing write permissions for prorefactor/temp directory! java.nio.file.AccessDeniedException: c:\Work\OpenEdge123_64\prorefactor\temp\listingfile.txt: Missing write permissions for prorefactor/temp directory! at com.joanju.proparse.DoParse.doParse(DoParse.java:223) at org.prorefactor.treeparser.ParseUnit.parse(ParseUnit.java:271) at org.prorefactor.treeparser.ParseUnit.parse(ParseUnit.java:226) at org.prorefactor.treeparser.ParseUnit.treeParser01(ParseUnit.java:348) at cli.Progress.ClrBridge.ClrApi.InvokeMethod(Unknown Source) at cli.Progress.ClrBridge.BrgClrToPro.HandleUIEvent(Unknown Source) at cli.InfragisticsWinUltraWinToolbarsUltraToolbarsManagerToolClickReceiver.OnToolClick(Unknown Source) at cli.Infragistics.Win.UltraWinToolbars.ToolClickEventHandler.Invoke(Unknown Source) at cli.Infragistics.Win.UltraWinToolbars.UltraToolbarsManager.OnToolClick(Unknown Source) at cli.Consultingwerk.SmartComponents.Implementation.SmartToolbarController.BASEOnToolClick(Unknown Source) at cli.Progress.ClrBridge.ClrApi.InvokeMethod(Unknown Source) at cli.Progress.ClrBridge.ClrApi.InvokeBaseMethod(Unknown Source) at cli.Progress.ClrBridge.BrgClrToPro.InvokeMethod(Unknown Source) at cli.Consultingwerk.SmartComponents.Implementation.SmartToolbarController.OnToolClick(AblProxy.cs:53) at cli.Infragistics.Win.UltraWinToolbars.UltraToolbarsManager.FireEvent(Unknown Source) at cli.Infragistics.Win.UltraWinToolbars.ButtonToolUIElement.DoClickProcessing(Unknown Source) at cli.Infragistics.Win.UltraWinToolbars.ButtonToolUIElement.OnMouseUp(Unknown Source) at cli.Infragistics.Win.ControlUIElementBase.ProcessMouseUpHelper(Unknown Source) at cli.Infragistics.Win.ControlUIElementBase.ProcessMouseUp(Unknown Source) at cli.Infragistics.Win.Utilities.ProcessEvent(Unknown Source) at cli.Infragistics.Win.UltraWinToolbars.UltraToolbarsDockArea.OnMouseUp(Unknown Source) at cli.System.Windows.Forms.Control.WmMouseUp(Unknown Source) at cli.System.Windows.Forms.Control.WndProc(Unknown Source) at cli.System.Windows.Forms.NativeWindow.Callback(Unknown Source) at cli.System.Windows.Forms.NativeWindow.DefWndProc(Unknown Source) at cli.Infragistics.Win.UIAutomation.UiaProviderControlNativeWindow.WndProc(Unknown Source) at cli.System.Windows.Forms.NativeWindow.Callback(Unknown Source) at cli.System.Windows.Forms.NativeWindow.DefWndProc(Unknown Source) at cli.Infragistics.Win.UltraWinToolbars.UltraToolbarsDockArea$DockAreaSubClasser.WndProc(Unknown Source) at cli.System.Windows.Forms.NativeWindow.Callback(Unknown Source) at cli.System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(Unknown Source) at cli.System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(Unknown Source) at cli.System.Windows.Forms.Application$ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(Unknown Source) at cli.System.Windows.Forms.Application$ThreadContext.RunMessageLoopInner(Unknown Source) at cli.System.Windows.Forms.Application$ThreadContext.RunMessageLoop(Unknown Source) at cli.Progress.ClrBridge.ClrApi.InvokeMethod(Unknown Source) java.nio.file.AccessDeniedException: Missing write permissions for prorefactor/temp directory!

Call Stack:

ParseFile Consultingwerk.Studio.Proparse.ProparseHelper at line 1898 (.\Consultingwerk\Studio\Proparse\ProparseHelper.r) AnnotationParser Consultingwerk.Studio.AnnotationParser at line 558 (.\Consultingwerk\Studio\AnnotationParser.r) UpdateBusinessEntityCalculatedFields Consultingwerk.BusinessEntityDesigner.Generator.BusinessEntityGenerator at line 4234 (.\Consultingwerk\BusinessEntityDesigner\Generator\BusinessEntityGenerator.r) GenerateBusinessEntity Consultingwerk.BusinessEntityDesigner.Generator.BusinessEntityGenerator at line 2079 (.\Consultingwerk\BusinessEntityDesigner\Generator\BusinessEntityGenerator.r) GenerateCode Consultingwerk.BusinessEntityDesigner.Generator.BusinessEntityGenerator at line 2210 (.\Consultingwerk\BusinessEntityDesigner\Generator\BusinessEntityGenerator.r) GenerateSource Consultingwerk.BusinessEntityDesigner.Services.BusinessEntityDatasetController at line 4721 (.\Consultingwerk\BusinessEntityDesigner\Services\BusinessEntityDatasetController.r) GenerateSource Consultingwerk.BusinessEntityDesigner.UI.BusinessEntityDesignerForm at line 1873 (.\Consultingwerk\BusinessEntityDesigner\UI\BusinessEntityDesignerForm.r) smartToolbarController1_ToolClick Consultingwerk.BusinessEntityDesigner.UI.BusinessEntityDesignerForm at line 6789 (.\Consultingwerk\BusinessEntityDesigner\UI\BusinessEntityDesignerForm.r) OnToolClick Consultingwerk.SmartComponents.Implementation.SmartToolbarController at line 2511 (.\Consultingwerk\SmartComponents\Implementation\SmartToolbarController.r) Startup Consultingwerk.Framework.GuiClientStartupManager at line 1284 (.\Consultingwerk\Framework\GuiClientStartupManager.r) initialize Consultingwerk.Framework.Server.AppServerStartupManager at line 1865 (.\Consultingwerk\Framework\Server\AppServerStartupManager.r) Consultingwerk/BusinessEntityDesigner/startup-json.p at line 628 (.\Consultingwerk\BusinessEntityDesigner\startup-json.p) Original Stack Trace: ParseFile Consultingwerk.Studio.Proparse.ProparseHelper at line 1888 (.\Consultingwerk\Studio\Proparse\ProparseHelper.r) AnnotationParser Consultingwerk.Studio.AnnotationParser at line 558 (.\Consultingwerk\Studio\AnnotationParser.r) UpdateBusinessEntityCalculatedFields Consultingwerk.BusinessEntityDesigner.Generator.BusinessEntityGenerator at line 4234 (.\Consultingwerk\BusinessEntityDesigner\Generator\BusinessEntityGenerator.r) GenerateBusinessEntity Consultingwerk.BusinessEntityDesigner.Generator.BusinessEntityGenerator at line 2079 (.\Consultingwerk\BusinessEntityDesigner\Generator\BusinessEntityGenerator.r) GenerateCode Consultingwerk.BusinessEntityDesigner.Generator.BusinessEntityGenerator at line 2210 (.\Consultingwerk\BusinessEntityDesigner\Generator\BusinessEntityGenerator.r) GenerateSource Consultingwerk.BusinessEntityDesigner.Services.BusinessEntityDatasetController at line 4721 (.\Consultingwerk\BusinessEntityDesigner\Services\BusinessEntityDatasetController.r) GenerateSource Consultingwerk.BusinessEntityDesigner.UI.BusinessEntityDesignerForm at line 1873 (.\Consultingwerk\BusinessEntityDesigner\UI\BusinessEntityDesignerForm.r) smartToolbarController1_ToolClick Consultingwerk.BusinessEntityDesigner.UI.BusinessEntityDesignerForm at line 6789 (.\Consultingwerk\BusinessEntityDesigner\UI\BusinessEntityDesignerForm.r) OnToolClick Consultingwerk.SmartComponents.Implementation.SmartToolbarController at line 2511 (.\Consultingwerk\SmartComponents\Implementation\SmartToolbarController.r) Startup Consultingwerk.Framework.GuiClientStartupManager at line 1284 (.\Consultingwerk\Framework\GuiClientStartupManager.r) initialize Consultingwerk.Framework.Server.AppServerStartupManager at line 1865 (.\Consultingwerk\Framework\Server\AppServerStartupManager.r) Consultingwerk/BusinessEntityDesigner/startup-json.p at line 628 (.\Consultingwerk\BusinessEntityDesigner\startup-json.p) Shown by: ShowErrorMessage Consultingwerk.Util.ErrorHelper at line 3136 (.\Consultingwerk\Util\ErrorHelper.r) smartToolbarController1_ToolClick Consultingwerk.BusinessEntityDesigner.UI.BusinessEntityDesignerForm at line 6897 (.\Consultingwerk\BusinessEntityDesigner\UI\BusinessEntityDesignerForm.r) OnToolClick Consultingwerk.SmartComponents.Implementation.SmartToolbarController at line 2511 (.\Consultingwerk\SmartComponents\Implementation\SmartToolbarController.r) Startup Consultingwerk.Framework.GuiClientStartupManager at line 1284 (.\Consultingwerk\Framework\GuiClientStartupManager.r) initialize Consultingwerk.Framework.Server.AppServerStartupManager at line 1865 (.\Consultingwerk\Framework\Server\AppServerStartupManager.r) Consultingwerk/BusinessEntityDesigner/startup-json.p at line 628 (.\Consultingwerk\BusinessEntityDesigner\startup-json.p)

 

If you are working with an older version of Proparse (before 4.1.0.1222 from July 05 2021) you would get a java.lang.NullPointerException instead.

An application error has occured (Consultingwerk.Studio.Proparse.ProparseException)

org.prorefactor.refactor.RefactorException: Error parsing OrderLineDataAccess.cls Original Exception: null java.lang.NullPointerException at com.joanju.proparse.DoParse.doParse(DoParse.java:226) at org.prorefactor.treeparser.ParseUnit.parse(ParseUnit.java:270) at org.prorefactor.treeparser.ParseUnit.parse(ParseUnit.java:226) at org.prorefactor.treeparser.ParseUnit.treeParser01(ParseUnit.java:348) at cli.Progress.ClrBridge.ClrApi.InvokeMethod(Unknown Source) at cli.Progress.ClrBridge.BrgClrToPro.HandleUIEvent(Unknown Source) at cli.InfragisticsWinUltraWinToolbarsUltraToolbarsManagerToolClickReceiver.OnToolClick(Unknown Source) at cli.Infragistics.Win.UltraWinToolbars.ToolClickEventHandler.Invoke(Unknown Source) at cli.Infragistics.Win.UltraWinToolbars.UltraToolbarsManager.OnToolClick(Unknown Source) at cli.Infragistics.Win.UltraWinToolbars.UltraToolbarsManager.FireEvent(Unknown Source) at cli.Infragistics.Win.UltraWinToolbars.PopupMenuItemUIElement.DoClickProcessing(Unknown Source) at cli.Infragistics.Win.UltraWinToolbars.PopupMenuItemUIElement.OnMouseUp(Unknown Source) at cli.Infragistics.Win.TextUIElementBase.OnMouseUp(Unknown Source) at cli.Infragistics.Win.ControlUIElementBase.ProcessMouseUpHelper(Unknown Source) at cli.Infragistics.Win.ControlUIElementBase.ProcessMouseUp(Unknown Source) at cli.Infragistics.Win.Utilities.ProcessEvent(Unknown Source) at cli.Infragistics.Win.UltraWinToolbars.PopupControlBase.OnMouseUp(Unknown Source) at cli.System.Windows.Forms.Control.WmMouseUp(Unknown Source) at cli.System.Windows.Forms.Control.WndProc(Unknown Source) at cli.System.Windows.Forms.NativeWindow.Callback(Unknown Source) at cli.System.Windows.Forms.NativeWindow.DefWndProc(Unknown Source) at cli.Infragistics.Win.UIAutomation.UiaProviderControlNativeWindow.WndProc(Unknown Source) at cli.System.Windows.Forms.NativeWindow.Callback(Unknown Source) at cli.System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(Unknown Source) at cli.System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(Unknown Source) at cli.System.Windows.Forms.Application$ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(Unknown Source) at cli.System.Windows.Forms.Application$ThreadContext.RunMessageLoopInner(Unknown Source) at cli.System.Windows.Forms.Application$ThreadContext.RunMessageLoop(Unknown Source) at cli.Progress.ClrBridge.ClrApi.InvokeMethod(Unknown Source) java.lang.NullPointerException:

In that case please update your Proparse to the current version to get the correct error-message.

Solution

Find the directory used as temp-directory by the Business Entity Designer from its session info ( in the upper left corner). The temp-directory is set in the startup parameter -T. 

In that directory find the prorefactor/temp sub-directory.

Right-click it -> Properties -> Security

Ensure that you (Authenticated users) have read and write access (checkmarks at Allow, nothing at Deny).