Skip to content

Commit d54f2a7

Browse files
committed
Fix classcast exception due to short over integer
Hibernate 6 is stricter than previous versions.
1 parent 20b5aa2 commit d54f2a7

4 files changed

Lines changed: 17 additions & 17 deletions

File tree

src/main/java/com/faforever/api/deployment/LegacyFeaturedModDeploymentTask.java

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ public void run() {
9797
String branch = featuredMod.getGitBranch();
9898
boolean allowOverride = Optional.ofNullable(featuredMod.isAllowOverride()).orElse(false);
9999
String modFilesExtension = featuredMod.getFileExtension();
100-
Map<String, Integer> fileIds = featuredModService.getFileIds(modName);
100+
Map<String, Short> fileIds = featuredModService.getFileIds(modName);
101101

102102
log.info("Starting deployment of '{}' from '{}', branch '{}', allowOverride '{}', modFilesExtension '{}'",
103103
modName, repositoryUrl, branch, allowOverride, modFilesExtension);
@@ -147,9 +147,9 @@ void invokeDeploymentWebhook(FeaturedMod featuredMod) {
147147
* featured mod.
148148
*/
149149
@SneakyThrows
150-
private Optional<StagedFile> createPatchedExe(short version, Map<String, Integer> fileIds, Path targetFolder) {
150+
private Optional<StagedFile> createPatchedExe(short version, Map<String, Short> fileIds, Path targetFolder) {
151151
String clientFileName = "ForgedAlliance.exe";
152-
Integer fileId = fileIds.get(clientFileName);
152+
Short fileId = fileIds.get(clientFileName);
153153
if (fileId == null) {
154154
log.debug("Skipping '{}' because there's no file ID available", clientFileName);
155155
return Optional.empty();
@@ -211,7 +211,7 @@ private void updateStatus(String message) {
211211
*/
212212
@SneakyThrows
213213
@SuppressWarnings("unchecked")
214-
private List<StagedFile> packageFiles(Path repositoryDirectory, short version, Map<String, Integer> fileIds, Path targetFolder) {
214+
private List<StagedFile> packageFiles(Path repositoryDirectory, short version, Map<String, Short> fileIds, Path targetFolder) {
215215
updateStatus("Packaging files");
216216
try (Stream<Path> stream = Files.list(repositoryDirectory)) {
217217
return stream
@@ -248,14 +248,14 @@ private void finalizeFile(StagedFile file) {
248248
* content of the directory. If no file ID is available, an empty optional is returned.
249249
*/
250250
@SneakyThrows
251-
private Optional<StagedFile> packDirectory(Path directory, Short version, Path targetFolder, Map<String, Integer> fileIds) {
251+
private Optional<StagedFile> packDirectory(Path directory, Short version, Path targetFolder, Map<String, Short> fileIds) {
252252
String directoryName = directory.getFileName().toString();
253253
Path targetNxtFile = targetFolder.resolve(String.format("%s.%d.%s", directoryName, version, featuredMod.getFileExtension()));
254254
Path tmpNxtFile = toTmpFile(targetNxtFile);
255255

256256
// E.g. "effects.nx2"
257257
String clientFileName = String.format("%s.%s", directoryName, featuredMod.getFileExtension());
258-
Integer fileId = fileIds.get(clientFileName);
258+
Short fileId = fileIds.get(clientFileName);
259259
if (fileId == null) {
260260
log.debug("Skipping folder '{}' because there's no file ID available", directoryName);
261261
return Optional.empty();
@@ -275,14 +275,14 @@ private Optional<StagedFile> packDirectory(Path directory, Short version, Path t
275275
* content of the directory. If no file ID is available, an empty optional is returned.
276276
*/
277277
@SneakyThrows
278-
private Optional<StagedFile> packFile(Path file, Short version, Path targetFolder, Map<String, Integer> fileIds) {
278+
private Optional<StagedFile> packFile(Path file, Short version, Path targetFolder, Map<String, Short> fileIds) {
279279
String fullFileName = file.getFileName().toString();
280280
String baseName = FilenameUtils.getBaseName(fullFileName);
281281
String extension = FilenameUtils.getExtension(fullFileName);
282282
Path targetFile = targetFolder.resolve(String.format("%s_%d.%s", baseName, version, extension));
283283
Path tmpFile = toTmpFile(targetFile);
284284

285-
Integer fileId = fileIds.get(fullFileName);
285+
Short fileId = fileIds.get(fullFileName);
286286
if (fileId == null) {
287287
log.debug("Skipping file '{}' because there's no file ID available", fullFileName);
288288
return Optional.empty();

src/main/java/com/faforever/api/featuredmods/FeaturedModService.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ public void save(String modName, short version, List<FeaturedModFile> featuredMo
4040
legacyFeaturedModFileRepository.save(modName, version, featuredModFiles);
4141
}
4242

43-
public Map<String, Integer> getFileIds(String modName) {
43+
public Map<String, Short> getFileIds(String modName) {
4444
return legacyFeaturedModFileRepository.getFileIds(modName);
4545
}
4646

src/main/java/com/faforever/api/featuredmods/LegacyFeaturedModFileRepository.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -103,15 +103,15 @@ public void save(String modName, short version, List<FeaturedModFile> featuredMo
103103
}
104104

105105
@SuppressWarnings("unchecked")
106-
public Map<String, Integer> getFileIds(String modName) {
106+
public Map<String, Short> getFileIds(String modName) {
107107
// Please shoot me.
108108
String innerModName = "ladder1v1".equals(modName) ? "faf" : modName;
109109
verifyModName(innerModName);
110110

111111
Query query = entityManager.createNativeQuery(String.format("SELECT id, filename FROM updates_%s", innerModName));
112112

113113
return ((List<Object[]>) query.getResultList()).stream()
114-
.collect(Collectors.toMap(row -> (String) row[1], row -> (int) row[0]));
114+
.collect(Collectors.toMap(row -> (String) row[1], row -> (short) row[0]));
115115
}
116116

117117
private void verifyModName(String modName) {

src/test/java/com/faforever/api/deployment/LegacyFeaturedModDeploymentTaskTest.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -138,8 +138,8 @@ public void testRun() throws Exception {
138138
new FeaturedMod().setTechnicalName("faf")
139139
));
140140
when(featuredModService.getFileIds("faf")).thenReturn(Map.of(
141-
"ForgedAlliance.exe", 1,
142-
"someDir.nx3", 2
141+
"ForgedAlliance.exe", (short)1,
142+
"someDir.nx3", (short)2
143143
));
144144

145145
Path dummyExe = repositoriesFolder.resolve("TemplateForgedAlliance.exe");
@@ -203,8 +203,8 @@ public void testHashEquality() throws Exception {
203203
new FeaturedMod().setTechnicalName("faf")
204204
));
205205
when(featuredModService.getFileIds("faf")).thenReturn(Map.of(
206-
"ForgedAlliance.exe", 1,
207-
"someDir.nx3", 2
206+
"ForgedAlliance.exe", (short)1,
207+
"someDir.nx3", (short)2
208208
));
209209

210210
Path dummyExe = repositoriesFolder.resolve("TemplateForgedAlliance.exe");
@@ -245,8 +245,8 @@ public void testHashEquality() throws Exception {
245245
new FeaturedMod().setTechnicalName("faf")
246246
));
247247
when(featuredModService.getFileIds("faf")).thenReturn(Map.of(
248-
"ForgedAlliance.exe", 1,
249-
"someDir.nx3", 2
248+
"ForgedAlliance.exe", (short)1,
249+
"someDir.nx3", (short)2
250250
));
251251

252252
dummyExe = repositoriesFolder.resolve("TemplateForgedAlliance.exe");

0 commit comments

Comments
 (0)