@@ -192,15 +192,25 @@ def map_java_to_class(project, logger=None):
192
192
to_resources = project_files .to_codebase ().has_no_relation ()
193
193
194
194
to_resources_dot_class = to_resources .filter (extension = ".class" )
195
- resource_count = to_resources_dot_class .count ()
196
- if logger :
197
- logger (f"Mapping { resource_count :,d} .class resources to .java" )
195
+ from_resources_dot_java = (
196
+ from_resources .filter (extension = ".java" )
197
+ # The "java_package" extra_data value is set during the `find_java_packages`,
198
+ # it is required to build the index.
199
+ .filter (extra_data__java_package__isnull = False )
200
+ )
201
+ to_resource_count = to_resources_dot_class .count ()
202
+ from_resource_count = from_resources_dot_java .count ()
198
203
199
- from_resources_dot_java = from_resources .filter (extension = ".java" )
200
- if not from_resources_dot_java .exists ():
204
+ if not from_resource_count :
201
205
logger ("No .java resources to map." )
202
206
return
203
207
208
+ if logger :
209
+ logger (
210
+ f"Mapping { to_resource_count :,d} .class resources to "
211
+ f"{ from_resource_count :,d} .java"
212
+ )
213
+
204
214
# build an index using from-side Java fully qualified class file names
205
215
# built from the "java_package" and file name
206
216
indexables = get_indexable_qualified_java_paths (from_resources_dot_java )
@@ -209,7 +219,7 @@ def map_java_to_class(project, logger=None):
209
219
from_classes_index = pathmap .build_index (indexables , with_subpaths = False )
210
220
211
221
resource_iterator = to_resources_dot_class .iterator (chunk_size = 2000 )
212
- progress = LoopProgress (resource_count , logger )
222
+ progress = LoopProgress (to_resource_count , logger )
213
223
214
224
for to_resource in progress .iter (resource_iterator ):
215
225
_map_java_to_class_resource (to_resource , from_resources , from_classes_index )
@@ -228,11 +238,8 @@ def get_indexable_qualified_java_paths_from_values(resource_values):
228
238
(123, "org/apache/commons/LoggerImpl.java")
229
239
"""
230
240
for resource_id , resource_name , resource_extra_data in resource_values :
231
- java_package = resource_extra_data and resource_extra_data .get ("java_package" )
232
- if not java_package :
233
- continue
234
241
fully_qualified = jvm .get_fully_qualified_java_path (
235
- java_package ,
242
+ java_package = resource_extra_data . get ( "java_package" ) ,
236
243
filename = resource_name ,
237
244
)
238
245
yield resource_id , fully_qualified
0 commit comments