@@ -87,7 +87,6 @@ public AgentConfiguration(Collection<String> callerFilterFiles,
8787 AgentMode agentMode ) {
8888 this .callerFilterFiles = callerFilterFiles ;
8989 this .accessFilterFiles = accessFilterFiles ;
90- addDefaultAccessFilter ();
9190 this .builtinCallerFilter = builtinCallerFilter ;
9291 this .builtinHeuristicFilter = builtinHeuristicFilter ;
9392 this .experimentalPredefinedClasses = experimentalPredefinedClasses ;
@@ -97,6 +96,7 @@ public AgentConfiguration(Collection<String> callerFilterFiles,
9796 }
9897
9998 public List <String > getAgentCommandLine () {
99+ addDefaultAccessFilter ();
100100 List <String > cmdLine = new ArrayList <>(agentMode .getAgentCommandLine ());
101101 appendOptionToValues ("caller-filter-file=" , callerFilterFiles , cmdLine );
102102 appendOptionToValues ("access-filter-file=" , accessFilterFiles , cmdLine );
@@ -137,11 +137,27 @@ private void addToCmd(String option, Boolean value, List<String> cmdLine) {
137137 }
138138
139139 private void addDefaultAccessFilter () {
140+ if (accessFilterFiles == null ) {
141+ // this could only happen if we instantiated disabled agent configuration
142+ return ;
143+ }
144+
145+ String tempDir = System .getProperty ("java.io.tmpdir" );
146+ Path agentDir = Path .of (tempDir ).resolve ("agent-config" );
147+ Path accessFilterFile = agentDir .resolve ("access-filter.json" );
148+ if (Files .exists (accessFilterFile )) {
149+ accessFilterFiles .add (accessFilterFile .toString ());
150+ return ;
151+ }
152+
140153 try (InputStream accessFilter = AgentConfiguration .class .getResourceAsStream (DEFAULT_ACCESS_FILTER_FILE )) {
141154 if (accessFilter != null ) {
142- Path accessFilterPath = Files .createTempFile ("access-filter" , ".json" );
143- Files .copy (accessFilter , accessFilterPath , StandardCopyOption .REPLACE_EXISTING );
144- accessFilterFiles .add (accessFilterPath .toString ());
155+ if (!Files .exists (agentDir )) {
156+ Files .createDirectory (agentDir );
157+ }
158+
159+ Files .copy (accessFilter , accessFilterFile , StandardCopyOption .REPLACE_EXISTING );
160+ accessFilterFiles .add (accessFilterFile .toString ());
145161 } else {
146162 throw new IOException ("Cannot find access-filter.json on default location: " + DEFAULT_ACCESS_FILTER_FILE );
147163 }
0 commit comments