Skip to content

Commit

Permalink
Fix Spotbugs errors
Browse files Browse the repository at this point in the history
  • Loading branch information
NikitaShchienko authored Jun 20, 2023
1 parent 0033b2d commit bd2b8c5
Show file tree
Hide file tree
Showing 33 changed files with 170 additions and 269 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@
import io.jmix.core.Messages;
import io.jmix.core.Metadata;
import io.jmix.core.metamodel.model.MetaClass;
import io.jmix.flowui.Notifications;
import io.jmix.flowui.action.ActionType;
import io.jmix.flowui.action.view.DetailCloseAction;
import io.jmix.flowui.action.view.ViewAction;
Expand All @@ -37,8 +36,6 @@ public class RunSingleEntityReportAction<E> extends ViewAction<DetailCloseAction

protected String reportOutputName;
protected Metadata metadata;
protected Messages messages;
protected Notifications notifications;
protected ReportActionSupport reportActionSupport;

public RunSingleEntityReportAction() {
Expand All @@ -53,7 +50,6 @@ public RunSingleEntityReportAction(String id) {

@Autowired
public void setMessages(Messages messages) {
this.messages = messages;
this.text = messages.getMessage(getClass(), "actions.Report");
}

Expand All @@ -62,10 +58,6 @@ public void setMetadata(Metadata metadata) {
this.metadata = metadata;
}

@Autowired
public void setNotifications(Notifications notifications) {
this.notifications = notifications;
}

@Autowired
public void setPrintReport(ReportActionSupport reportActionSupport) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@
import com.vaadin.flow.component.Component;
import com.vaadin.flow.component.icon.VaadinIcon;
import io.jmix.core.Messages;
import io.jmix.core.Metadata;
import io.jmix.core.metamodel.model.MetaClass;
import io.jmix.flowui.DialogWindows;
import io.jmix.flowui.action.ActionType;
Expand Down Expand Up @@ -51,7 +50,6 @@ public class ShowExecutionReportHistoryAction<E> extends ListDataComponentAction
public static final String ID = "report_showExecutionReportHistory";

protected DialogWindows dialogWindows;
protected Metadata metadata;

public ShowExecutionReportHistoryAction() {
this(ID);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@
import io.jmix.reportsflowui.view.report.ReportDetailView;
import io.jmix.security.constraint.PolicyStore;
import io.jmix.security.constraint.SecureOperations;
import jakarta.annotation.Nullable;
import org.springframework.lang.Nullable;
import org.springframework.stereotype.Component;

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,13 +18,13 @@
import io.jmix.reports.ReportImportExport;
import io.jmix.reports.entity.ReportImportOption;
import io.jmix.reports.entity.ReportImportResult;
import jakarta.annotation.Nullable;
import org.apache.commons.io.FilenameUtils;
import org.apache.commons.lang3.BooleanUtils;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.lang.Nullable;

import java.io.IOException;
import java.util.EnumSet;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,9 +33,9 @@
@DialogMode(width = "40em")
public class ReportValueFormatDetailView extends StandardDetailView<ReportValueFormat> {

protected static final String RETURN_VALUE = "return value";
private static final String RETURN_VALUE = "return value";

protected static final String[] defaultFormats = new String[]{
private static final String[] DEFAULT_FORMATS = new String[]{
"#,##0",
"##,##0",
"#,##0.###",
Expand Down Expand Up @@ -142,7 +142,7 @@ protected void onGroovyCodeHelpIconClick() {
}

protected void initFormatComboBox() {
formatField.setItems(Arrays.asList(defaultFormats));
formatField.setItems(Arrays.asList(DEFAULT_FORMATS));

formatField.addCustomValueSetListener(event -> {
String text = event.getDetail();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ public class HtmlGenerator implements Generator {
@Autowired
protected Messages messages;

protected volatile static Configuration freeMarkerConfiguration;
protected volatile Configuration freeMarkerConfiguration;

@Override
public byte[] generate(ReportData reportData) throws TemplateException, IOException {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -263,7 +263,7 @@ protected boolean columnDownEnabledRule() {
public void setReportTemplate(@Nullable ReportTemplate reportTemplate) {
super.setReportTemplate(reportTemplate);

if (reportTemplate.getTemplateTableDescription() == null) {
if (reportTemplate == null || reportTemplate.getTemplateTableDescription() == null) {
templateTableDescriptionDc.setItem(createDefaultTemplateTableDescription());
} else {
templateTableDescriptionDc.setItem(reportTemplate.getTemplateTableDescription());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,25 +18,19 @@

import io.jmix.reports.yarg.structure.ReportOutputType;

import java.io.ObjectStreamException;

public class JmixReportOutputType extends ReportOutputType {

public final static JmixReportOutputType chart = new JmixReportOutputType("chart");
public final static JmixReportOutputType table = new JmixReportOutputType("table");
public final static JmixReportOutputType pivot = new JmixReportOutputType("pivot");

static {
values.put(chart.getId(), chart);
values.put(table.getId(), table);
values.put(pivot.getId(), pivot);
values.put(chart.getId(), chart);
values.put(table.getId(), table);
values.put(pivot.getId(), pivot);
}

public JmixReportOutputType(String id) {
super(id);
}

private Object readResolve() throws ObjectStreamException {
return getOutputTypeById(getId());
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
import io.jmix.reports.yarg.structure.ReportOutputType;

import java.io.*;
import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
Expand Down Expand Up @@ -54,7 +55,7 @@ public void renderDocument() {
protected void writeCsvDocument(BandData rootBand, OutputStream outputStream) {
try {
List<BandData> actualData = getActualData(rootBand);
CSVWriter writer = new CSVWriter(new OutputStreamWriter(outputStream), separator,
CSVWriter writer = new CSVWriter(new OutputStreamWriter(outputStream, StandardCharsets.UTF_8), separator,
CSVWriter.DEFAULT_QUOTE_CHARACTER, CSVWriter.DEFAULT_ESCAPE_CHARACTER, CSVWriter.DEFAULT_LINE_END);

writer.writeNext(header);
Expand Down Expand Up @@ -93,12 +94,12 @@ protected List<BandData> getActualData(BandData rootBand) {
protected void readTemplateData() {
checkThreadInterrupted();
InputStream documentContent = reportTemplate.getDocumentContent();
BufferedReader in = new BufferedReader(new InputStreamReader(documentContent));
BufferedReader in = new BufferedReader(new InputStreamReader(documentContent, StandardCharsets.UTF_8));

StringBuilder headerData = new StringBuilder();
try {
String line;
while((line = in.readLine()) != null) {
while ((line = in.readLine()) != null) {
checkThreadInterrupted();
Matcher matcher = UNIVERSAL_ALIAS_PATTERN.matcher(line);
if (!matcher.find())
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -198,7 +198,6 @@ protected void fillTable(String name, BandData parentBand, TableManager tableMan
throws com.sun.star.uno.Exception {
// Lock clipboard, cause uno uses it to grow tables, relevant for desktops
synchronized (clipboardLock) {
XTextTable xTextTable = tableManager.getXTextTable();
if (officeIntegration.isDisplayDeviceAvailable()) {
clearClipboard();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ public void renderDocument() {
ByteArrayOutputStream htmlOutputStream = new ByteArrayOutputStream();
writeHtmlDocument(rootBand, htmlOutputStream);

String htmlContent = new String(htmlOutputStream.toByteArray());
String htmlContent = htmlOutputStream.toString(StandardCharsets.UTF_8);
renderPdfDocument(htmlContent, outputStream);

} else {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,16 +18,16 @@
import com.google.common.collect.HashBiMap;
import com.google.common.collect.LinkedHashMultimap;
import com.opencsv.CSVWriter;
import io.jmix.reports.yarg.exception.ReportingException;
import io.jmix.reports.yarg.formatters.factory.FormatterFactoryInput;
import io.jmix.reports.yarg.formatters.impl.xls.DocumentConverter;
import io.jmix.reports.yarg.formatters.impl.xlsx.*;
import io.jmix.reports.yarg.formatters.impl.xlsx.hints.XslxHintProcessor;
import io.jmix.reports.yarg.util.docx4j.XmlCopyUtils;
import io.jmix.reports.yarg.exception.ReportingException;
import io.jmix.reports.yarg.formatters.factory.FormatterFactoryInput;
import io.jmix.reports.yarg.structure.BandData;
import io.jmix.reports.yarg.structure.BandOrientation;
import io.jmix.reports.yarg.structure.BandVisitor;
import io.jmix.reports.yarg.structure.ReportOutputType;
import io.jmix.reports.yarg.util.docx4j.XmlCopyUtils;
import jakarta.xml.bind.Marshaller;
import jakarta.xml.bind.Unmarshaller;
import org.apache.commons.collections4.CollectionUtils;
Expand Down Expand Up @@ -57,10 +57,14 @@
import org.xlsx4j.sml.*;

import java.io.*;
import java.nio.charset.StandardCharsets;
import java.util.*;
import java.util.regex.Matcher;

public class XlsxFormatter extends AbstractFormatter {

private static final Logger log = LoggerFactory.getLogger(XlsxFormatter.class);

private static final String TRUE_AS_STRING = "1";
private static final String FALSE_AS_STRING = "0";

Expand All @@ -87,8 +91,6 @@ public class XlsxFormatter extends AbstractFormatter {
protected Unmarshaller unmarshaller;
protected Marshaller marshaller;

protected static final Logger log = LoggerFactory.getLogger(XlsxFormatter.class);

public XlsxFormatter(FormatterFactoryInput formatterFactoryInput) {
super(formatterFactoryInput);
supportedOutputTypes.add(ReportOutputType.xlsx);
Expand Down Expand Up @@ -1041,7 +1043,8 @@ protected <T> T getLast(List<T> list) {
}

protected void saveXlsxAsCsv(Document document, OutputStream outputStream) throws IOException, Docx4JException {
CSVWriter writer = new CSVWriter(new OutputStreamWriter(outputStream), ';', CSVWriter.DEFAULT_QUOTE_CHARACTER,
CSVWriter writer = new CSVWriter(new OutputStreamWriter(outputStream, StandardCharsets.UTF_8),
';', CSVWriter.DEFAULT_QUOTE_CHARACTER,
CSVWriter.DEFAULT_ESCAPE_CHARACTER, CSVWriter.DEFAULT_LINE_END);

for (Document.SheetWrapper sheetWrapper : document.getWorksheets()) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,6 @@

package io.jmix.reports.yarg.formatters.impl.doc.connector;

import io.jmix.reports.yarg.formatters.impl.doc.connector.BootstrapException;
import io.jmix.reports.yarg.formatters.impl.doc.connector.OOServer;
import com.sun.star.bridge.UnoUrlResolver;
import com.sun.star.bridge.XUnoUrlResolver;
import com.sun.star.comp.helper.Bootstrap;
Expand All @@ -28,6 +26,8 @@
import com.sun.star.lang.XMultiComponentFactory;
import com.sun.star.uno.UnoRuntime;
import com.sun.star.uno.XComponentContext;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.util.function.Supplier;

Expand All @@ -52,20 +52,19 @@
*/
public class BootstrapConnector {

private static final Logger log = LoggerFactory.getLogger(BootstrapConnector.class);

protected static final int CONNECTION_RETRY_INTERVAL = 500;
protected Supplier<Integer> connectionTimeoutSupplier;
/**
* The OOo server.
*/
private OOServer oooServer;

/**
* The connection string which has ben used to establish the connection.
*/
private String oooConnectionString;

protected Supplier<Integer> connectionTimeoutSupplier;

protected static final int CONNECTION_RETRY_INTERVAL = 500;

/**
* Constructs a bootstrap connector which connects to the specified
* OOo server.
Expand Down Expand Up @@ -103,7 +102,7 @@ public BootstrapConnector(OOServer oooServer, Supplier<Integer> connectionTimeou
* @param oooConnectionString The connection string
* @return The component context
*/
public XComponentContext connect(String oooConnectionString) throws io.jmix.reports.yarg.formatters.impl.doc.connector.BootstrapException {
public XComponentContext connect(String oooConnectionString) throws BootstrapException {

this.oooConnectionString = oooConnectionString;

Expand All @@ -117,7 +116,7 @@ public XComponentContext connect(String oooConnectionString) throws io.jmix.repo
// initial service manager
XMultiComponentFactory xLocalServiceManager = xLocalContext.getServiceManager();
if (xLocalServiceManager == null)
throw new io.jmix.reports.yarg.formatters.impl.doc.connector.BootstrapException("no initial service manager!");
throw new BootstrapException("no initial service manager!");

// create a URL resolver
XUnoUrlResolver xUrlResolver = UnoUrlResolver.create(xLocalContext);
Expand All @@ -134,14 +133,14 @@ public XComponentContext connect(String oooConnectionString) throws io.jmix.repo
// Retry to connect after a short interval
Thread.sleep(CONNECTION_RETRY_INTERVAL);
} else {
throw new io.jmix.reports.yarg.formatters.impl.doc.connector.BootstrapException("Unable to connect to the OO process", ex);
throw new BootstrapException("Unable to connect to the OO process", ex);
}
}
}
} catch (RuntimeException e) {
throw e;
} catch (Exception e) {
throw new io.jmix.reports.yarg.formatters.impl.doc.connector.BootstrapException(e);
throw new BootstrapException(e);
}
return xContext;
}
Expand Down Expand Up @@ -174,10 +173,10 @@ public void disconnect() {
// get desktop to terminate office
Object desktop = xRemoteContext.getServiceManager().createInstanceWithContext(
"com.sun.star.frame.Desktop", xRemoteContext);
XDesktop xDesktop = (XDesktop) UnoRuntime.queryInterface(XDesktop.class, desktop);
XDesktop xDesktop = UnoRuntime.queryInterface(XDesktop.class, desktop);
xDesktop.terminate();
} catch (Exception e) {
// Bad luck, unable to terminate office
log.error("Unable to terminate office");
}

oooServer.kill();
Expand All @@ -189,11 +188,11 @@ public void disconnect() {
*
* @return The default local component context
*/
protected XComponentContext getLocalContext() throws io.jmix.reports.yarg.formatters.impl.doc.connector.BootstrapException, Exception {
protected XComponentContext getLocalContext() throws Exception {

XComponentContext xLocalContext = Bootstrap.createInitialComponentContext(null);
if (xLocalContext == null) {
throw new io.jmix.reports.yarg.formatters.impl.doc.connector.BootstrapException("no local component context!");
throw new BootstrapException("no local component context!");
}
return xLocalContext;
}
Expand All @@ -203,11 +202,11 @@ protected XComponentContext getLocalContext() throws io.jmix.reports.yarg.format
*
* @return The remote component context
*/
protected XComponentContext getRemoteContext(XUnoUrlResolver xUrlResolver) throws io.jmix.reports.yarg.formatters.impl.doc.connector.BootstrapException,
protected XComponentContext getRemoteContext(XUnoUrlResolver xUrlResolver) throws BootstrapException,
ConnectionSetupException, IllegalArgumentException, NoConnectException {

Object context = xUrlResolver.resolve(oooConnectionString);
XComponentContext xContext = (XComponentContext) UnoRuntime.queryInterface(XComponentContext.class, context);
XComponentContext xContext = UnoRuntime.queryInterface(XComponentContext.class, context);
if (xContext == null) {
throw new BootstrapException("no component context!");
}
Expand Down
Loading

0 comments on commit bd2b8c5

Please sign in to comment.