@@ -192,15 +192,25 @@ def map_java_to_class(project, logger=None):
192192 to_resources = project_files .to_codebase ().has_no_relation ()
193193
194194 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 ()
198203
199- from_resources_dot_java = from_resources .filter (extension = ".java" )
200- if not from_resources_dot_java .exists ():
204+ if not from_resource_count :
201205 logger ("No .java resources to map." )
202206 return
203207
208+ if logger :
209+ logger (
210+ f"Mapping { to_resource_count :,d} .class resources to "
211+ f"{ from_resource_count :,d} .java"
212+ )
213+
204214 # build an index using from-side Java fully qualified class file names
205215 # built from the "java_package" and file name
206216 indexables = get_indexable_qualified_java_paths (from_resources_dot_java )
@@ -209,7 +219,7 @@ def map_java_to_class(project, logger=None):
209219 from_classes_index = pathmap .build_index (indexables , with_subpaths = False )
210220
211221 resource_iterator = to_resources_dot_class .iterator (chunk_size = 2000 )
212- progress = LoopProgress (resource_count , logger )
222+ progress = LoopProgress (to_resource_count , logger )
213223
214224 for to_resource in progress .iter (resource_iterator ):
215225 _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):
228238 (123, "org/apache/commons/LoggerImpl.java")
229239 """
230240 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
234241 fully_qualified = jvm .get_fully_qualified_java_path (
235- java_package ,
242+ java_package = resource_extra_data . get ( "java_package" ) ,
236243 filename = resource_name ,
237244 )
238245 yield resource_id , fully_qualified
0 commit comments