Try this little trick borrowed from Netty.
So you have an exception:
- you don't want to check
- you don't want to swallow
- you don't want to pollute the method signature
Consider the following class Throw:
| java.lang.Exception: Stack trace | |
| at java.lang.Thread.dumpStack(Thread.java:1365) | |
| at com.liferay.ant.bnd.version.VersionVerifierPlugin.verify(VersionVerifierPlugin.java:43) | |
| at aQute.bnd.osgi.Verifier.doVerifierPlugins(Verifier.java:544) | |
| at aQute.bnd.osgi.Verifier.verify(Verifier.java:536) | |
| at aQute.bnd.osgi.Builder.doVerify(Builder.java:503) | |
| at aQute.bnd.osgi.Builder.build(Builder.java:152) | |
| at aQute.bnd.osgi.Builder$build$1.call(Unknown Source) | |
| at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48) | |
| at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113) |
| [rotty@rotty-XPS-15-9530 (pr-1030 *$) portal-rest-extender-test]$ ../../../gradlew clean deploy --stacktrace | |
| Configuration on demand is an incubating feature. | |
| :portal:portal-rest-extender-test:cleanBuildCSS UP-TO-DATE | |
| :portal:portal-rest-extender-test:cleanBuildXSD UP-TO-DATE | |
| :portal:portal-rest-extender-test:cleanCompileJSP | |
| :portal:portal-rest-extender-test:cleanCompileJava | |
| :portal:portal-rest-extender-test:cleanCompileTestIntegrationJava | |
| :portal:portal-rest-extender-test:cleanCompileTestJava UP-TO-DATE | |
| :portal:portal-rest-extender-test:cleanConfigJSModules UP-TO-DATE | |
| :portal:portal-rest-extender-test:cleanCopyLibs |
| /** | |
| * Copyright (c) 2000-present Liferay, Inc. All rights reserved. | |
| * | |
| * This library is free software; you can redistribute it and/or modify it under | |
| * the terms of the GNU Lesser General Public License as published by the Free | |
| * Software Foundation; either version 2.1 of the License, or (at your option) | |
| * any later version. | |
| * | |
| * This library is distributed in the hope that it will be useful, but WITHOUT | |
| * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS |
| #!/bin/bash | |
| spin() { | |
| local s=("|" "/" "-" '\x5C') | |
| local i=0 | |
| while kill -0 $1 2> /dev/null; do | |
| echo -en "[${s[$i]}]"\\r | |
| i=$(( $i == 3 ? 0 : $i + 1 )) | |
| sleep .1 | |
| done |
| #!/bin/bash | |
| checkoutMasterSubmodule() { | |
| ( | |
| local name=${1##*/} | |
| echo "[----> Initing Submodule '${name}']" | |
| git submodule update "${name}" 2>/dev/null | |
| cd "${name}" | |
| git checkout master 2>/dev/null | |
| )& |
| #!/bin/bash | |
| # Get it! | |
| wget http://sourceforge.net/projects/lportal/files/Liferay%20Portal/7.0.0%20M4/liferay-portal-tomcat-7.0-ce-m4-20150224120313668.zip/download -O liferay-portal-tomcat-7.0-ce-m4.zip | |
| # Unzip it! | |
| unzip liferay-portal-tomcat-7.0-ce-m4.zip | |
| # Trim off some legacy apps! | |
| rm -rf liferay-portal-7.0-ce-m4/tomcat-7.0.42/webapps/calendar-portlet liferay-portal-7.0-ce-m4/tomcat-7.0.42/webapps/marketplace-portlet liferay-portal-7.0-ce-m4/tomcat-7.0.42/webapps/opensocial-portlet liferay-portal-7.0-ce-m4/tomcat-7.0.42/webapps/web-form-portlet liferay-portal-7.0-ce-m4/tomcat-7.0.42/webapps/kaleo-web liferay-portal-7.0-ce-m4/tomcat-7.0.42/webapps/notifications-portlet liferay-portal-7.0-ce-m4/tomcat-7.0.42/webapps/resources-importer-web liferay-portal-7.0-ce-m4/tomcat-7.0.42/webapps/sync-web liferay-portal-7.0-ce-m4/tomcat-7.0.42/webapps/welcome-theme |
| @Component( | |
| property = { | |
| "osgi.http.whiteboard.resource.pattern=/kaleo/resources/*", | |
| "osgi.http.whiteboard.resource.prefix=/", | |
| "osgi.http.whiteboard.servlet.pattern=/kaleo/resources/*" // temporary since this was the old property | |
| }, | |
| service = Servlet.class | |
| ) | |
| public class DDMJsResources extends HttpServlet { | |
| } |
| Import-Package:\ | |
| !com.liferay.portal.tools.sql,\ | |
| !javax.activation.*,\ | |
| !javax.crypto.*,\ | |
| !javax.imageio.*,\ | |
| !javax.mail.*,\ | |
| !javax.naming.*,\ | |
| !javax.sql,\ | |
| !junit.framework.*,\ | |
| !net.sf.akismet.*,\ |
| @@ -23,8 +23,12 @@ import com.liferay.portal.kernel.dao.db.IndexMetadataFactoryUtil; | |
| import com.liferay.portal.kernel.dao.jdbc.DataAccess; | |
| import com.liferay.portal.kernel.io.unsync.UnsyncBufferedReader; | |
| import com.liferay.portal.kernel.io.unsync.UnsyncStringReader; | |
| +import com.liferay.portal.kernel.io.unsync.UnsyncStringWriter; | |
| import com.liferay.portal.kernel.log.Log; | |
| import com.liferay.portal.kernel.log.LogFactoryUtil; | |
| +import com.liferay.portal.kernel.template.StringTemplateResource; | |
| +import com.liferay.portal.kernel.template.Template; | |
| +import com.liferay.portal.kernel.template.TemplateManagerUtil; |
Try this little trick borrowed from Netty.
So you have an exception:
Consider the following class Throw: