Java parse error - expecting EOF, found 'emailService'

Hello,
I am trying to send email from user account to xyz account. for that i have tried to get fromAddress from current logged in user’s session ID. I am getting "Java parse error - expecting EOF, found ‘emailService’"
Here is my code.


package com.company.userregistration.web.email;
import com.haulmont.cuba.gui.components.AbstractWindow;
import com.haulmont.cuba.core.global.*;
import com.haulmont.cuba.gui.components.TextField;
import com.haulmont.cuba.gui.components.RichTextArea;
import com.haulmont.cuba.security.entity.User;

import javax.inject.Inject;
import java.util.UUID;

public class EmailScreen extends AbstractWindow {

    @Inject
    private TextField subject;
    
    @Inject
    private RichTextArea message;

    @Inject
    private DataManager dataManager;

    @Inject
    private Metadata metadata;
    
    @Inject
    protected EmailService emailService;

    public void onCancleBtnClick() {
        close(CLOSE_ACTION_ID);
    }
    
    public void onSendemailBtnClick() {
    
        LoadContext loadContext = LoadContext.create(User.class)
        .setQuery(LoadContext.createQuery("select e from sec$User e where e.systemUser.id = :userId")
            .setParameter("userId", userSession.getUser().getId()));
    
        targetUser = (User)dataManager.load(loadContext);
        sendByEmail();
    
    }
    
    private void sendByEmail() {
        //NewsItem newsItem = getItem();
        EmailInfo emailInfo = new EmailInfo(
                xyz@gmail.com, // recipients
                subject.getValue(), // subject
                targetUser.getEmail(), // the "from" address will be taken from the "cuba.email.fromAddress" app property
                message.getValue(), // body template
                Collections.singletonMap("targetUser", targetUser) // template parameters
        );
        emailService.sendEmailAsync(emailInfo);
    }    
}

Kindly Help.
Thanks in advance.

Hi,

Do you use IDE for writing code? There are some typos in your code, userSession and targetUser are not injected, "xyz@gmail.com" is missing quotation marks. All these problems will be easily highlighted and solved in an IDE.

Hey Thanks a lot.
I resolved all the errors except targetUser . I dont know how to inject targetUser (its just a variable to store sessionID of user). can you suggest some resolution ?

Instantiate it as a class variable:

private User targetUser;

or inside a method:

User targetUser = userSession.getUser();

depending on your logic.

Done!!
After running application i am getting this exception
Unexpected error :

IllegalArgumentException: Can not set com.haulmont.cuba.gui.components.RichTextArea field com.company.userregistration.web.email.EmailScreen.message to com.haulmont.cuba.web.gui.components.WebLabel 
Details:
java.lang.IllegalArgumentException: Can not set com.haulmont.cuba.gui.components.RichTextArea field com.company.userregistration.web.email.EmailScreen.message to com.haulmont.cuba.web.gui.components.WebLabel
	at sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(UnsafeFieldAccessorImpl.java:167)
	at sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(UnsafeFieldAccessorImpl.java:171)
	at sun.reflect.UnsafeObjectFieldAccessorImpl.set(UnsafeObjectFieldAccessorImpl.java:81)
	at java.lang.reflect.Field.set(Field.java:764)
	at com.haulmont.cuba.gui.ControllerDependencyInjector.assignValue(ControllerDependencyInjector.java:235)
	at com.haulmont.cuba.gui.ControllerDependencyInjector.doInjection(ControllerDependencyInjector.java:141)
	at com.haulmont.cuba.gui.ControllerDependencyInjector.inject(ControllerDependencyInjector.java:77)
	at com.haulmont.cuba.gui.WindowManager.initWrapperFrame(WindowManager.java:1160)
	at com.haulmont.cuba.gui.WindowManager.createWindow(WindowManager.java:540)
	at com.haulmont.cuba.gui.WindowManager.openWindow(WindowManager.java:708)
	at com.haulmont.cuba.web.WebWindowManager.openWindow(WebWindowManager.java:144)
	at com.haulmont.cuba.gui.WindowManager.openWindow(WindowManager.java:732)
	at com.haulmont.cuba.gui.components.WindowDelegate.openWindow(WindowDelegate.java:227)
	at com.haulmont.cuba.web.gui.WebWindow.openWindow(WebWindow.java:439)
	at com.haulmont.cuba.gui.components.AbstractFrame.openWindow(AbstractFrame.java:452)
	at com.company.userregistration.web.testuser.TestUserBrowse.onContactBtnClick(TestUserBrowse.java:11)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at com.haulmont.cuba.gui.xml.DeclarativeAction.actionPerform(DeclarativeAction.java:92)
	at com.haulmont.cuba.web.gui.components.WebButton.performAction(WebButton.java:44)
	at com.haulmont.cuba.web.gui.components.WebButton.lambda$new$61446b05$1(WebButton.java:36)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at com.vaadin.event.ListenerMethod.receiveEvent(ListenerMethod.java:510)
	at com.vaadin.event.EventRouter.fireEvent(EventRouter.java:200)
	at com.vaadin.event.EventRouter.fireEvent(EventRouter.java:163)
	at com.vaadin.server.AbstractClientConnector.fireEvent(AbstractClientConnector.java:1037)
	at com.vaadin.ui.Button.fireClick(Button.java:377)
	at com.haulmont.cuba.web.toolkit.ui.CubaButton.fireClick(CubaButton.java:54)
	at com.vaadin.ui.Button$1.click(Button.java:54)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at com.vaadin.server.ServerRpcManager.applyInvocation(ServerRpcManager.java:158)
	at com.vaadin.server.ServerRpcManager.applyInvocation(ServerRpcManager.java:119)
	at com.vaadin.server.communication.ServerRpcHandler.handleInvocation(ServerRpcHandler.java:444)
	at com.vaadin.server.communication.ServerRpcHandler.handleInvocations(ServerRpcHandler.java:409)
	at com.vaadin.server.communication.ServerRpcHandler.handleRpc(ServerRpcHandler.java:274)
	at com.vaadin.server.communication.UidlRequestHandler.synchronizedHandleRequest(UidlRequestHandler.java:90)
	at com.vaadin.server.SynchronizedRequestHandler.handleRequest(SynchronizedRequestHandler.java:41)
	at com.vaadin.server.VaadinService.handleRequest(VaadinService.java:1436)
	at com.vaadin.server.VaadinServlet.service(VaadinServlet.java:385)
	at com.haulmont.cuba.web.sys.CubaApplicationServlet.serviceAppRequest(CubaApplicationServlet.java:301)
	at com.haulmont.cuba.web.sys.CubaApplicationServlet.service(CubaApplicationServlet.java:192)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at com.haulmont.cuba.web.sys.CubaHttpFilter.handleNotFiltered(CubaHttpFilter.java:108)
	at com.haulmont.cuba.web.sys.CubaHttpFilter.doFilter(CubaHttpFilter.java:95)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:478)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:80)
	at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:624)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:799)
	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
	at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:861)
	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1455)
	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
	at java.lang.Thread.run(Thread.java:748)

can you help me to solve this
Thanks.