[ 
https://issues.apache.org/jira/browse/SYNCOPE-808?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15715108#comment-15715108
 ] 

ASF GitHub Bot commented on SYNCOPE-808:
----------------------------------------

Github user ilgrosso commented on a diff in the pull request:

    https://github.com/apache/syncope/pull/39#discussion_r90640284
  
    --- Diff: 
ide/netbeans/src/main/java/org/apache/syncope/netbeans/plugin/connector/ResourceConnector.java
 ---
    @@ -0,0 +1,69 @@
    +/*
    + * Licensed to the Apache Software Foundation (ASF) under one
    + * or more contributor license agreements.  See the NOTICE file
    + * distributed with this work for additional information
    + * regarding copyright ownership.  The ASF licenses this file
    + * to you under the Apache License, Version 2.0 (the
    + * "License"); you may not use this file except in compliance
    + * with the License.  You may obtain a copy of the License at
    + *
    + *   http://www.apache.org/licenses/LICENSE-2.0
    + *
    + * Unless required by applicable law or agreed to in writing,
    + * software distributed under the License is distributed on an
    + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
    + * KIND, either express or implied.  See the License for the
    + * specific language governing permissions and limitations
    + * under the License.
    + */
    +package org.apache.syncope.netbeans.plugin.connector;
    +
    +import java.io.BufferedReader;
    +import java.io.File;
    +import java.io.FileNotFoundException;
    +import java.io.FileReader;
    +import java.io.IOException;
    +import org.apache.syncope.netbeans.plugin.entity.UserProperties;
    +import 
org.apache.syncope.netbeans.plugin.service.MailTemplateManagerService;
    +import 
org.apache.syncope.netbeans.plugin.service.ReportTemplateManagerService;
    +
    +public final class ResourceConnector {
    +
    +    private ResourceConnector() {
    +    }
    +
    +    private static MailTemplateManagerService 
MAIL_TTEMPLATE_MANAGER_SERVICE;
    +    private static ReportTemplateManagerService 
REPORT_TEMPLATE_MANAGER_SERVICE;
    +    
    +    public static MailTemplateManagerService 
getMailTemplateManagerService() throws IOException {
    +        if (MAIL_TTEMPLATE_MANAGER_SERVICE == null) {
    --- End diff --
    
    Static code can be accessed by multiple concurrent threads.
    I would:
     * declare a monitor object as class static field:
      ```java
    private static final Object MONITOR = new Object();
      ```
     * put the whole if block within a `synchronized` block, like as
      ```java
        synchronized(MONITOR) {
            if (MAIL_TTEMPLATE_MANAGER_SERVICE == null) {
                 UserProperties userProperties = getUserProperties();
                 MAIL_TTEMPLATE_MANAGER_SERVICE = new 
MailTemplateManagerService(
                         userProperties.getUrl(), userProperties.getUserName(),
                         userProperties.getPassword());
             }
        }
         return MAIL_TTEMPLATE_MANAGER_SERVICE;
      ```


> Netbeans plugin
> ---------------
>
>                 Key: SYNCOPE-808
>                 URL: https://issues.apache.org/jira/browse/SYNCOPE-808
>             Project: Syncope
>          Issue Type: Sub-task
>          Components: ide
>         Environment: Netbeans IDE
>            Reporter: Francesco Chicchiriccò
>            Assignee: Tushar Mishra
>              Labels: gsoc2016, netbeans
>             Fix For: 2.0.2, 2.1.0
>
>
> Develop a plug-in, according to what reported in SYNCOPE-770, working with 
> latest Netbeans version.
> See Google Summer of Code project proposal at 
> https://summerofcode.withgoogle.com/projects/#5722525799546880



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to