This is an automated email from the ASF dual-hosted git repository.

solomax pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/openmeetings.git

commit 83d0ea33f697f7bef00ee637249b40aee86f349c
Author: Maxim Solodovnik <[email protected]>
AuthorDate: Thu Dec 5 16:24:21 2024 +0700

    [OPENMEETINGS-2783] some issues are addressed
---
 .../openmeetings/core/data/file/FileProcessor.java |  2 +-
 .../apache/openmeetings/db/dao/user/UserDao.java   |  2 +-
 .../openmeetings/db/entity/file/BaseFileItem.java  | 25 +++++++++-------------
 .../openmeetings/backup/converter/WbConverter.java |  2 +-
 .../openmeetings/mediaserver/BaseMockedTest.java   |  2 +-
 .../openmeetings/util/OMContextListener.java       |  2 +-
 .../org/apache/openmeetings/util/OmFileHelper.java | 14 +++++++++++-
 .../apache/openmeetings/util/mail/IcalHandler.java |  3 +--
 .../common/datetime/AbstractOmDateTimePicker.java  |  2 +-
 .../web/room/RoomResourceReference.java            |  2 +-
 .../apache/openmeetings/web/room/wb/WbPanel.java   |  2 +-
 .../openmeetings/core/file/TestFileProcessor.java  |  4 ++--
 .../openmeetings/web/AbstractOmServerTest.java     |  2 +-
 .../org/apache/openmeetings/web/TestCalendar.java  |  2 +-
 .../openmeetings/web/pages/auth/TestLoginUI.java   |  4 ++--
 .../webservice/AbstractWebServiceTest.java         |  2 +-
 .../webservice/TestCalendarService.java            |  4 ++--
 17 files changed, 41 insertions(+), 35 deletions(-)

diff --git 
a/openmeetings-core/src/main/java/org/apache/openmeetings/core/data/file/FileProcessor.java
 
b/openmeetings-core/src/main/java/org/apache/openmeetings/core/data/file/FileProcessor.java
index 8358993d6..bf7867eb6 100644
--- 
a/openmeetings-core/src/main/java/org/apache/openmeetings/core/data/file/FileProcessor.java
+++ 
b/openmeetings-core/src/main/java/org/apache/openmeetings/core/data/file/FileProcessor.java
@@ -68,7 +68,7 @@ public class FileProcessor {
 
                File temp = null;
                try {
-                       temp = File.createTempFile(String.format("upload_%s", 
hash), ".tmp");
+                       temp = File.createTempFile("upload_" + hash, ".tmp");
                        copyInputStreamToFile(is, temp);
 
                        String ext = getFileExt(f.getName());
diff --git 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/UserDao.java
 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/UserDao.java
index 8341562a4..085a85cab 100644
--- 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/UserDao.java
+++ 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/UserDao.java
@@ -358,7 +358,7 @@ public class UserDao implements 
IGroupAdminDataProviderDao<User> {
                        u.setAddress(new Address());
                        u.setAge(LocalDate.now());
                        u.setExternalId(null);
-                       final String purged = String.format("Purged %s", 
randomUUID());
+                       final String purged = "Purged " + randomUUID();
                        u.setFirstname(purged);
                        u.setLastname(purged);
                        u.setLogin(purged);
diff --git 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/file/BaseFileItem.java
 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/file/BaseFileItem.java
index a03d09ca7..49afd8d85 100644
--- 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/file/BaseFileItem.java
+++ 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/file/BaseFileItem.java
@@ -25,7 +25,7 @@ import static 
org.apache.openmeetings.util.OmFileHelper.EXTENSION_MP4;
 import static org.apache.openmeetings.util.OmFileHelper.EXTENSION_PDF;
 import static org.apache.openmeetings.util.OmFileHelper.EXTENSION_PNG;
 import static org.apache.openmeetings.util.OmFileHelper.EXTENSION_WML;
-import static org.apache.openmeetings.util.OmFileHelper.FILE_NAME_FMT;
+import static org.apache.openmeetings.util.OmFileHelper.getFileSafe;
 import static org.apache.openmeetings.util.OmFileHelper.getStreamsHibernateDir;
 import static org.apache.openmeetings.util.OmFileHelper.getUploadFilesDir;
 import static org.apache.openmeetings.util.OmFileHelper.getUploadWmlDir;
@@ -259,7 +259,7 @@ public abstract class BaseFileItem extends HistoricalEntity 
{
        }
 
        public String getFileName(String ext) {
-               return ext == null ? name : String.format(FILE_NAME_FMT, name, 
ext);
+               return ext == null ? name : OmFileHelper.getName(name, ext);
        }
 
        public File getFile() {
@@ -304,35 +304,30 @@ public abstract class BaseFileItem extends 
HistoricalEntity {
                        File d = new File(getUploadFilesDir(), getHash());
                        switch (getType()) {
                                case WML_FILE:
-                                       f = new File(getUploadWmlDir(), 
String.format(FILE_NAME_FMT, getHash(), ext == null ? EXTENSION_WML : ext));
+                                       f = getFileSafe(getUploadWmlDir(), 
getHash(), ext, EXTENSION_WML);
                                        break;
                                case IMAGE:
                                        if (ext == null) {
-                                               f = new File(d, 
String.format(FILE_NAME_FMT, getHash(), EXTENSION_PNG));
+                                               f = getFileSafe(d, getHash(), 
EXTENSION_PNG);
                                                if (!f.exists()) {
-                                                       f = new File(d, 
String.format(FILE_NAME_FMT, getHash(), EXTENSION_JPG)); // backward 
compatibility
+                                                       f = getFileSafe(d, 
getHash(), EXTENSION_JPG); // backward compatibility
                                                }
                                        } else {
-                                               f = new File(d, 
String.format(FILE_NAME_FMT, getHash(), ext));
+                                               f = getFileSafe(d, getHash(), 
ext);
                                        }
                                        break;
                                case RECORDING:
-                                       f = new File(getStreamsHibernateDir(), 
String.format(FILE_NAME_FMT, getHash(), ext == null ? EXTENSION_MP4 : ext));
+                                       f = 
getFileSafe(getStreamsHibernateDir(), getHash(), ext, EXTENSION_MP4);
                                        break;
                                case VIDEO:
-                                       f = new File(d, 
String.format(FILE_NAME_FMT, getHash(), ext == null ? EXTENSION_MP4 : ext));
+                                       f = getFileSafe(d, getHash(), ext, 
EXTENSION_MP4);
                                        break;
                                case PRESENTATION:
-                                       int slide;
-                                       if (ext == null) {
-                                               slide = 0;
-                                       } else {
-                                               slide = toInt(ext, -1);
-                                       }
+                                       int slide = ext == null ? 0 : 
toInt(ext, -1);
                                        if (slide > -1) {
                                                f = new File(d, 
String.format("%1$s-%2$04d.%3$s", DOC_PAGE_PREFIX, slide, EXTENSION_PNG));
                                        } else {
-                                               f = new File(d, 
String.format(FILE_NAME_FMT, getHash(), ext == null ? EXTENSION_PDF : ext));
+                                               f = getFileSafe(d, getHash(), 
ext, EXTENSION_PDF);
                                        }
                                        break;
                                case POLL_CHART, FOLDER:
diff --git 
a/openmeetings-install/src/main/java/org/apache/openmeetings/backup/converter/WbConverter.java
 
b/openmeetings-install/src/main/java/org/apache/openmeetings/backup/converter/WbConverter.java
index e5decb667..cbff787a5 100644
--- 
a/openmeetings-install/src/main/java/org/apache/openmeetings/backup/converter/WbConverter.java
+++ 
b/openmeetings-install/src/main/java/org/apache/openmeetings/backup/converter/WbConverter.java
@@ -197,7 +197,7 @@ public class WbConverter {
                String src = (String)props.get(2);
                int idx = src.indexOf("cliparts");
                if (idx > -1) {
-                       src = String.format("./public/%s", src.substring(idx));
+                       src = "./public/" + src.substring(idx);
                }
                add(wb, init(wb, props)
                                .put(ATTR_TYPE, TYPE_IMAGE)
diff --git 
a/openmeetings-mediaserver/src/test/java/org/apache/openmeetings/mediaserver/BaseMockedTest.java
 
b/openmeetings-mediaserver/src/test/java/org/apache/openmeetings/mediaserver/BaseMockedTest.java
index ca7a77633..0c1dd10bf 100644
--- 
a/openmeetings-mediaserver/src/test/java/org/apache/openmeetings/mediaserver/BaseMockedTest.java
+++ 
b/openmeetings-mediaserver/src/test/java/org/apache/openmeetings/mediaserver/BaseMockedTest.java
@@ -136,7 +136,7 @@ public class BaseMockedTest {
                                        return null;
                                }
                        }).when(injector).inject(any());
-                       injectMock.when(() -> 
Injector.get()).thenReturn(injector);
+                       injectMock.when(Injector::get).thenReturn(injector);
                        task.run();
                }
        }
diff --git 
a/openmeetings-util/src/main/java/org/apache/openmeetings/util/OMContextListener.java
 
b/openmeetings-util/src/main/java/org/apache/openmeetings/util/OMContextListener.java
index 8d0f84eac..9122f2f75 100644
--- 
a/openmeetings-util/src/main/java/org/apache/openmeetings/util/OMContextListener.java
+++ 
b/openmeetings-util/src/main/java/org/apache/openmeetings/util/OMContextListener.java
@@ -42,7 +42,7 @@ public class OMContextListener implements 
ServletContextListener {
                if (Strings.isEmpty(System.getProperty(LOG_DIR_PROP))) {
                        System.setProperty(LOG_DIR_PROP, "logs");
                }
-               System.setProperty("webapp.contextPath", String.format("/%s", 
ctx));
+               System.setProperty("webapp.contextPath", "/" + ctx);
                try {
                        LoggerContext context = 
(LoggerContext)LoggerFactory.getILoggerFactory();
                        JoranConfigurator configurator = new 
JoranConfigurator();
diff --git 
a/openmeetings-util/src/main/java/org/apache/openmeetings/util/OmFileHelper.java
 
b/openmeetings-util/src/main/java/org/apache/openmeetings/util/OmFileHelper.java
index 2b82d394a..a28291157 100644
--- 
a/openmeetings-util/src/main/java/org/apache/openmeetings/util/OmFileHelper.java
+++ 
b/openmeetings-util/src/main/java/org/apache/openmeetings/util/OmFileHelper.java
@@ -26,6 +26,7 @@ import java.io.IOException;
 import java.io.InputStream;
 import java.io.InputStreamReader;
 import java.io.Reader;
+import java.nio.file.Path;
 import java.text.DecimalFormat;
 import java.util.Locale;
 import java.util.Properties;
@@ -232,7 +233,7 @@ public class OmFileHelper {
                } catch (IOException e) {
                        log.error("Unexpected error while getting canonical 
path", e);
                }
-               String uri = String.format("file://%s", furi);
+               String uri = "file://" + furi;
                log.info("Configured to record to {}", uri);
                return uri;
        }
@@ -323,6 +324,17 @@ public class OmFileHelper {
                return new File(parent, name + suffix + ext);
        }
 
+       public static File getFileSafe(File inDir, String inName, String inExt, 
String defaultExt) {
+               return getFileSafe(inDir, inName, inExt == null ? defaultExt : 
inExt);
+       }
+
+       public static File getFileSafe(File inDir, String inName, String ext) {
+               final String name = getName(inName, ext);
+               Path base = inDir.toPath();
+               Path file  = base.resolve(name);
+               return file.startsWith(base) ? file.toFile() : new File(inDir, 
inName);
+       }
+
        public static File getNewFile(File dir, String name, String ext) throws 
IOException {
                File f = new File(dir, getName(name, ext));
                int recursiveNumber = 0;
diff --git 
a/openmeetings-util/src/main/java/org/apache/openmeetings/util/mail/IcalHandler.java
 
b/openmeetings-util/src/main/java/org/apache/openmeetings/util/mail/IcalHandler.java
index 0bd234f34..83c0214d6 100644
--- 
a/openmeetings-util/src/main/java/org/apache/openmeetings/util/mail/IcalHandler.java
+++ 
b/openmeetings-util/src/main/java/org/apache/openmeetings/util/mail/IcalHandler.java
@@ -192,8 +192,7 @@ public class IcalHandler {
         *             - in case of error during writing to the file
         */
        public void toFile(String inFilerPath) throws Exception {
-               String filerPath = inFilerPath.endsWith(".ics") ? inFilerPath
-                               : String.format("%s.ics", inFilerPath);
+               String filerPath = inFilerPath.endsWith(".ics") ? inFilerPath : 
inFilerPath + ".ics";
 
                try (FileOutputStream fout = new FileOutputStream(filerPath)) {
                        CalendarOutputter outputter = new CalendarOutputter();
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/datetime/AbstractOmDateTimePicker.java
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/datetime/AbstractOmDateTimePicker.java
index 1a99992eb..cd57c82ca 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/datetime/AbstractOmDateTimePicker.java
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/datetime/AbstractOmDateTimePicker.java
@@ -67,7 +67,7 @@ public abstract class AbstractOmDateTimePicker<T extends 
Serializable> extends F
                                                
.withTodayIcon(FontAwesome6IconType.calendar_check_s)
                                                
.withClearIcon(FontAwesome6IconType.eraser_s)
                                                
.withCloseIcon(FontAwesome6IconType.xmark_s));
-               picker = new AbstractTempusDominusWithIcon<>("picker", new 
Model<T>(), patch(config)) {
+               picker = new AbstractTempusDominusWithIcon<>("picker", new 
Model<>(), patch(config)) {
                        private static final long serialVersionUID = 1L;
 
                        @Override
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomResourceReference.java
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomResourceReference.java
index 44d4a06bc..38f1381c2 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomResourceReference.java
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomResourceReference.java
@@ -119,7 +119,7 @@ public class RoomResourceReference extends 
FileItemResourceReference<FileItem> {
        protected File getFile(FileItem f, String ext) {
                File file = f.getFile(ext);
                if (file == null || !file.exists()) {
-                       file = new File(getImagesDir(), 
String.format("deleted.%s", EXTENSION_PNG));
+                       file = new File(getImagesDir(), "deleted." + 
EXTENSION_PNG);
                }
                return file;
        }
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/WbPanel.java
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/WbPanel.java
index be6765205..d95aed277 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/WbPanel.java
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/WbPanel.java
@@ -156,7 +156,7 @@ public class WbPanel extends AbstractWbPanel {
 
                                @Override
                                protected void populateItem(ListItem<String> 
item) {
-                                       String cls = 
String.format("clipart-%s", item.getIndex());
+                                       String cls = "clipart-" + 
item.getIndex();
                                        item.add(append(ATTR_CLASS, cls), 
append("data-mode", cls)
                                                        , append("data-image", 
item.getModelObject()).setSeparator(""));
                                }
diff --git 
a/openmeetings-web/src/test/java/org/apache/openmeetings/core/file/TestFileProcessor.java
 
b/openmeetings-web/src/test/java/org/apache/openmeetings/core/file/TestFileProcessor.java
index b25ee254c..d6a72d580 100644
--- 
a/openmeetings-web/src/test/java/org/apache/openmeetings/core/file/TestFileProcessor.java
+++ 
b/openmeetings-web/src/test/java/org/apache/openmeetings/core/file/TestFileProcessor.java
@@ -19,7 +19,7 @@
 package org.apache.openmeetings.core.file;
 
 import static java.util.UUID.randomUUID;
-import static org.apache.openmeetings.util.OmFileHelper.FILE_NAME_FMT;
+import static org.apache.openmeetings.util.OmFileHelper.getName;
 import static 
org.apache.openmeetings.util.OmFileHelper.getDefaultProfilePicture;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertFalse;
@@ -49,7 +49,7 @@ class TestFileProcessor extends AbstractOmServerTest {
        void testProcessPng() throws Exception {
                for (String ext : new String[] {null, "txt", "jpg"}) {
                        FileItem f = new FileItemDTO()
-                                       .setName(String.format(FILE_NAME_FMT, 
FILE_NAME, ext))
+                                       .setName(getName(FILE_NAME, ext))
                                        .setHash(randomUUID().toString())
                                        
.setType(BaseFileItem.Type.RECORDING).get();
                        try (InputStream is = new 
FileInputStream(getDefaultProfilePicture())) {
diff --git 
a/openmeetings-web/src/test/java/org/apache/openmeetings/web/AbstractOmServerTest.java
 
b/openmeetings-web/src/test/java/org/apache/openmeetings/web/AbstractOmServerTest.java
index fbe47be24..155fa6ef0 100644
--- 
a/openmeetings-web/src/test/java/org/apache/openmeetings/web/AbstractOmServerTest.java
+++ 
b/openmeetings-web/src/test/java/org/apache/openmeetings/web/AbstractOmServerTest.java
@@ -188,7 +188,7 @@ public abstract class AbstractOmServerTest {
        }
 
        protected static String getLogin(String uid) {
-               return String.format("login%s", uid);
+               return "login" + uid;
        }
 
        protected static String getEmail(String uid) {
diff --git 
a/openmeetings-web/src/test/java/org/apache/openmeetings/web/TestCalendar.java 
b/openmeetings-web/src/test/java/org/apache/openmeetings/web/TestCalendar.java
index a3c852e4d..9145c2e5d 100644
--- 
a/openmeetings-web/src/test/java/org/apache/openmeetings/web/TestCalendar.java
+++ 
b/openmeetings-web/src/test/java/org/apache/openmeetings/web/TestCalendar.java
@@ -63,7 +63,7 @@ class TestCalendar extends AbstractWicketTesterTest {
                        
tester.executeBehavior((AbstractAjaxBehavior)cal.get("form:calendar").getBehaviorById(0));
 //select-event
                        FormTester appTester = 
tester.newFormTester(PATH_APPOINTMENT_DLG_FRM);
                        //check inviteeType:groupContainer:groups is invisible 
for regular user
-                       String title = String.format("title%s", randomUUID());
+                       String title = "title" + randomUUID();
                        appTester.setValue("title", title);
                        AbstractAjaxBehavior save = 
getButtonBehavior(PATH_APPOINTMENT_DLG, 0);
                        tester.executeBehavior(save);
diff --git 
a/openmeetings-web/src/test/java/org/apache/openmeetings/web/pages/auth/TestLoginUI.java
 
b/openmeetings-web/src/test/java/org/apache/openmeetings/web/pages/auth/TestLoginUI.java
index fc9400a61..23e0b149e 100644
--- 
a/openmeetings-web/src/test/java/org/apache/openmeetings/web/pages/auth/TestLoginUI.java
+++ 
b/openmeetings-web/src/test/java/org/apache/openmeetings/web/pages/auth/TestLoginUI.java
@@ -158,8 +158,8 @@ class TestLoginUI extends AbstractWicketTesterTest {
                FormTester formTester = tester.newFormTester(PATH_REGISTER);
                formTester.setValue("login", getLogin(uid));
                formTester.setValue("email", getEmail(uid));
-               formTester.setValue("firstName", String.format("first%s", uid));
-               formTester.setValue("lastName", String.format("last%s", uid));
+               formTester.setValue("firstName", "first" + uid);
+               formTester.setValue("lastName", "last" + uid);
                formTester.setValue("password", userpass);
                formTester.setValue("confirmPassword", userpass);
                formTester.setValue("captcha:captchaText", 
getCaptcha("register:form:captcha:captcha"));
diff --git 
a/openmeetings-web/src/test/java/org/apache/openmeetings/webservice/AbstractWebServiceTest.java
 
b/openmeetings-web/src/test/java/org/apache/openmeetings/webservice/AbstractWebServiceTest.java
index a05a69f92..802c7a58b 100644
--- 
a/openmeetings-web/src/test/java/org/apache/openmeetings/webservice/AbstractWebServiceTest.java
+++ 
b/openmeetings-web/src/test/java/org/apache/openmeetings/webservice/AbstractWebServiceTest.java
@@ -127,7 +127,7 @@ public abstract class AbstractWebServiceTest {
                assertNotNull(room, "Valid room should be returned");
                assertNotNull(room.getId(), "Room ID should be not empty");
 
-               RoomDTO room1 = 
getClient(getRoomUrl()).path(String.format("/%s", room.getId()))
+               RoomDTO room1 = getClient(getRoomUrl()).path("/" + room.getId())
                                .query("sid", sid)
                                .get(RoomDTO.class);
                assertNotNull(room1, "Valid room should be returned");
diff --git 
a/openmeetings-web/src/test/java/org/apache/openmeetings/webservice/TestCalendarService.java
 
b/openmeetings-web/src/test/java/org/apache/openmeetings/webservice/TestCalendarService.java
index 515460c4c..2fd15d9ee 100644
--- 
a/openmeetings-web/src/test/java/org/apache/openmeetings/webservice/TestCalendarService.java
+++ 
b/openmeetings-web/src/test/java/org/apache/openmeetings/webservice/TestCalendarService.java
@@ -280,7 +280,7 @@ class TestCalendarService extends AbstractWebServiceTest {
                String sid = createApp(title);
                @SuppressWarnings("unchecked")
                List<AppointmentDTO> list = 
(List<AppointmentDTO>)getClient(getCalendarUrl())
-                       .path(String.format("/title/%s", title))
+                       .path("/title/" + title)
                        .query("sid", sid)
                        .getCollection(AppointmentDTO.class);
 
@@ -290,7 +290,7 @@ class TestCalendarService extends AbstractWebServiceTest {
                title = randomUUID().toString();
                @SuppressWarnings("unchecked")
                List<AppointmentDTO> list1 = 
(List<AppointmentDTO>)getClient(getCalendarUrl())
-                       .path(String.format("/title/%s", title))
+                       .path("/title/" + title)
                        .query("sid", sid)
                        .getCollection(AppointmentDTO.class);
                assertEquals(0, list1.size(), "None items should be returned");

Reply via email to