@@ -24,7 +24,7 @@ public Map<String, String> hashAllBazelTargets(Set<Path> modifiedFilepaths) thro
2424 Set <BazelSourceFileTarget > bazelSourcefileTargets = bazelClient .convertFilepathsToSourceTargets (modifiedFilepaths );
2525 List <BazelTarget > allTargets = bazelClient .queryAllTargets ();
2626 Map <String , String > targetHashes = new HashMap <>();
27- Map <String , MessageDigest > ruleHashes = new HashMap <>();
27+ Map <String , byte [] > ruleHashes = new HashMap <>();
2828 Map <String , BazelRule > allRulesMap = new HashMap <>();
2929 for (BazelTarget target : allTargets ) {
3030 String targetName = getNameForTarget (target );
@@ -38,14 +38,14 @@ public Map<String, String> hashAllBazelTargets(Set<Path> modifiedFilepaths) thro
3838 if (targetName == null ) {
3939 continue ;
4040 }
41- MessageDigest targetDigest = createDigestForTarget (
41+ byte [] targetDigest = createDigestForTarget (
4242 target ,
4343 allRulesMap ,
4444 bazelSourcefileTargets ,
4545 ruleHashes
4646 );
4747 if (targetDigest != null ) {
48- targetHashes .put (targetName , digestToString (targetDigest ));
48+ targetHashes .put (targetName , convertByteArrayToString (targetDigest ));
4949 }
5050 }
5151 return targetHashes ;
@@ -67,11 +67,11 @@ public Set<String> getImpactedTargets(
6767 return bazelClient .queryForImpactedTargets (impactedTargets , avoidQuery );
6868 }
6969
70- private MessageDigest createDigestForTarget (
70+ private byte [] createDigestForTarget (
7171 BazelTarget target ,
7272 Map <String , BazelRule > allRulesMap ,
7373 Set <BazelSourceFileTarget > bazelSourcefileTargets ,
74- Map <String , MessageDigest > ruleHashes
74+ Map <String , byte [] > ruleHashes
7575 ) throws NoSuchAlgorithmException {
7676 BazelRule targetRule = target .getRule ();
7777 if (target .hasSourceFile ()) {
@@ -80,23 +80,23 @@ private MessageDigest createDigestForTarget(
8080 MessageDigest digest = MessageDigest .getInstance ("SHA-256" );
8181 byte [] sourceTargetDigestBytes = getDigestForSourceTargetName (sourceFileName , bazelSourcefileTargets );
8282 if (sourceTargetDigestBytes != null ) {
83- digest .update (getDigestForSourceTargetName ( sourceFileName , bazelSourcefileTargets ) );
83+ digest .update (sourceTargetDigestBytes );
8484 }
85- return digest ;
85+ return digest . digest (). clone () ;
8686 }
8787 }
88- return createHashForRule (targetRule , allRulesMap , ruleHashes , bazelSourcefileTargets );
88+ return createDigestForRule (targetRule , allRulesMap , ruleHashes , bazelSourcefileTargets );
8989 }
9090
91- private MessageDigest createHashForRule (
91+ private byte [] createDigestForRule (
9292 BazelRule rule ,
9393 Map <String , BazelRule > allRulesMap ,
94- Map <String , MessageDigest > ruleHashes ,
94+ Map <String , byte [] > ruleHashes ,
9595 Set <BazelSourceFileTarget > bazelSourcefileTargets
9696 ) throws NoSuchAlgorithmException {
97- MessageDigest existingMessage = ruleHashes .get (rule .getName ());
98- if (existingMessage != null ) {
99- return existingMessage ;
97+ byte [] existingByteArray = ruleHashes .get (rule .getName ());
98+ if (existingByteArray != null ) {
99+ return existingByteArray ;
100100 }
101101 MessageDigest digest = MessageDigest .getInstance ("SHA-256" );
102102 digest .update (rule .getDigest ());
@@ -105,21 +105,22 @@ private MessageDigest createHashForRule(
105105 BazelRule inputRule = allRulesMap .get (ruleInput );
106106 byte [] sourceFileDigest = getDigestForSourceTargetName (ruleInput , bazelSourcefileTargets );
107107 if (inputRule != null ) {
108- MessageDigest ruleInputDigest = createHashForRule (
108+ byte [] ruleInputHash = createDigestForRule (
109109 inputRule ,
110110 allRulesMap ,
111111 ruleHashes ,
112112 bazelSourcefileTargets
113113 );
114- if (ruleInputDigest != null ) {
115- digest .update (ruleInputDigest . digest () );
114+ if (ruleInputHash != null ) {
115+ digest .update (ruleInputHash );
116116 }
117117 } else if (sourceFileDigest != null ) {
118118 digest .update (sourceFileDigest );
119119 }
120120 }
121- ruleHashes .put (rule .getName (), digest );
122- return digest ;
121+ byte [] finalHashValue = digest .digest ().clone ();
122+ ruleHashes .put (rule .getName (), finalHashValue );
123+ return finalHashValue ;
123124 }
124125
125126 private byte [] getDigestForSourceTargetName (
@@ -134,9 +135,9 @@ private byte[] getDigestForSourceTargetName(
134135 return null ;
135136 }
136137
137- private String digestToString ( MessageDigest digest ) {
138+ private String convertByteArrayToString ( byte [] bytes ) {
138139 StringBuilder result = new StringBuilder ();
139- for (byte aByte : digest . digest () ) {
140+ for (byte aByte : bytes ) {
140141 result .append (String .format ("%02x" , aByte ));
141142 }
142143 return result .toString ();
0 commit comments